Example #1
0
        static void Main(string[] args)
        {
            //Создаём объект класса Response для того, чтобы записать туда ответ.
            Response <AccountModel> response = new Response <AccountModel>();
            //Создаём объект класса HttpClient.
            HttpClient client = CreateClient();
            //Создаём объект класса RequestExample для того, чтобы через него вызывать методы, которые выполняют запросы
            RequestExample request = new RequestExample();
            //Создаём список частей операций.
            List <OperationItemRequest> items = new List <OperationItemRequest>();

            //Заполняем список частей операции
            items.Add(new OperationItemRequest {
                CalculationDate = "2020-02-25", ContrAgentId = null, Value = 123, IsCalculationCommitted = false, OperationCategoryId = null, ProjectId = null
            });
            //Создаём объект класса AccountCreationRequest и заполняем его данными для добавления счёта.
            AccountCreationRequest dataForPost = new AccountCreationRequest {
                Title = "test", AccountBank = null, AccountBik = null, AccountType = "Cash", AccountAcct = null, Active = true, CompanyId = 41104, CurrencyCode = "USD", Description = null, LongTitle = "", Remainder = 0, RemainderDate = "2020-03-02"
            };
            //Создаём объект класса OperationModificationRequest и заполняем его данными для изменнения операции.
            OperationModificationRequest dataForPut = new OperationModificationRequest {
                AccountId = 106080, Comment = "", IsCommitted = false, OperationDate = "2020-02-25", Items = items
            };
            //Создаём переменую для хранения api-ключа.
            string apiKey = "Ваш api-ключ";

            //Вызываем метод Delete для удаления операции и передаём ему в виде параметров api-ключ, id операции и объект класса HttpClient.
            request.Delete(apiKey, 16367698, client);
            //Вызываем метод Get для получения списка счетов и передаём ему в виде параметров api-ключ и объект класса HttpClient.
            request.Get(apiKey, client);
            //Выводим в консоль результат метода Post для добавления счёта. В параметрах этого метода передаём api-ключ, данные счёта, который мы хотим добавить, объект класса HttpClient.
            Console.WriteLine(request.Post(apiKey, dataForPost, client).GetAwaiter().GetResult());
            //Выводим в консоль результат метода Put для изменения операции. В параметрах этого метода передаём api-ключ, id операции, изменённые данные операции, объект класса HttpClient.
            Console.WriteLine(request.Put(apiKey, 16367698, dataForPut, client).GetAwaiter().GetResult());
        }
Example #2
0
        /// <summary>
        /// PUT-запрос для изменения операции
        /// </summary>
        /// <param name="apiKey">Ваш api-ключ</param>
        /// <param name="operationId">Id операции, которую хотем изменить</param>
        /// <param name="data">Данные операции для изменения (данные хранятся в объекте класса OperationModificationRequest</param>
        /// <param name="client">Объект класса HttpClient</param>
        /// <returns>Возвращает строку с ответом</returns>
        public async Task <string> Put(string apiKey, int operationId, OperationModificationRequest data, HttpClient client)
        {
            client.DefaultRequestHeaders.Add("X-ApiKey", apiKey);
            var request = new HttpRequestMessage(HttpMethod.Put,
                                                 "https://api.planfact.io/api/v1/operations/income/" + operationId.ToString());
            var json          = JsonConvert.SerializeObject(data);
            var stringContent = new StringContent(json, Encoding.UTF8, "application/json");

            request.Content = stringContent;
            var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

            response.EnsureSuccessStatusCode();
            return(await response.Content.ReadAsStringAsync());
        }