using System; using System.Collections.Generic; using System.Web.Script.Serialization; namespace Retailcrm.Versions.V5 { public partial class Client { /// /// Costs groups /// /// public Response CostGroups() { return Request.MakeRequest( "/reference/cost-groups", Request.MethodGet ); } /// /// Costs /// /// public Response CostItems() { return Request.MakeRequest( "/reference/cost-items", Request.MethodGet ); } /// /// Legal entities /// /// public Response LegalEntities() { return Request.MakeRequest( "/reference/legal-entities", Request.MethodGet ); } /// /// Cost group edit /// /// /// public Response CostGroupsEdit(Dictionary group) { if (!group.ContainsKey("code")) { throw new ArgumentException("Parameter `code` is missing"); } if (!group.ContainsKey("name")) { throw new ArgumentException("Parameter `name` is missing"); } if (!group.ContainsKey("color")) { throw new ArgumentException("Parameter `color` is missing"); } return Request.MakeRequest( $"/reference/cost-groups/{group["code"].ToString()}/edit", Request.MethodPost, new Dictionary { { "costGroup", new JavaScriptSerializer().Serialize(group) } } ); } /// /// Cost items edit /// /// /// public Response CostItemsEdit(Dictionary item) { if (!item.ContainsKey("code")) { throw new ArgumentException("Parameter `code` is missing"); } if (!item.ContainsKey("name")) { throw new ArgumentException("Parameter `name` is missing"); } if (!item.ContainsKey("group")) { throw new ArgumentException("Parameter `group` is missing"); } List types = new List { "const", "var" }; if (item.ContainsKey("type") && !types.Contains(item["type"].ToString())) { throw new ArgumentException("Parameter `type` should be one of `const|var`"); } return Request.MakeRequest( $"/reference/cost-items/{item["code"].ToString()}/edit", Request.MethodPost, new Dictionary { { "costItem", new JavaScriptSerializer().Serialize(item) } } ); } /// /// Legal entities edit /// /// /// public Response LegalEntitiesEdit(Dictionary entity) { if (!entity.ContainsKey("code")) { throw new ArgumentException("Parameter `code` is missing"); } if (!entity.ContainsKey("legalName")) { throw new ArgumentException("Parameter `legalName` is missing"); } if (!entity.ContainsKey("countryIso")) { throw new ArgumentException("Parameter `countryIso` is missing"); } if (!entity.ContainsKey("contragentType")) { throw new ArgumentException("Parameter `contragentType` is missing"); } return Request.MakeRequest( $"/reference/legal-entities/{entity["code"].ToString()}/edit", Request.MethodPost, new Dictionary { { "legalEntity", new JavaScriptSerializer().Serialize(entity) } } ); } } }