public string Execute(CreateReceipt cmd)
        {
            var client  = new RestClient(_endpoint);
            var request = new RestRequest(Method.POST);
            var token   = _tokenHandler.Execute(new GetToken());

            request.AddParameter("AuthToken", token, ParameterType.QueryString);
            var jsonContent = JsonConvert.SerializeObject(cmd);

            request.AddHeader("Accept", "application/json");
            request.RequestFormat = DataFormat.Json;
            request.AddParameter("application/json", jsonContent, ParameterType.RequestBody);
            var response = client.Execute(request);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception(response.StatusDescription);
            }

            var fermaResponse = JsonConvert.DeserializeObject <CreateReceiptResponse>(response.Content);

            if (!String.Equals(fermaResponse.Status, "Success", StringComparison.OrdinalIgnoreCase))
            {
                Log.ErrorFormat("... {error}", fermaResponse.Error);
                throw new Exception(fermaResponse.Status);
            }

            return(fermaResponse.Data.ReceiptId);
        }
Example #2
0
        public void Save(CreateReceipt cmd, Guid guid)
        {
            using (var connection = _connectionFactory.Create())
            {
                var receiptDto = _mapper.ReceiptDtoFromJson(cmd);
                receiptDto.UID = guid;
                var id = connection.Insert(receiptDto);

                var listItemsDto = _mapper.ListItemsDtoFromJson(cmd.Request.CustomerReceipt.Items, id);
                connection.Insert(listItemsDto);
            }
        }
Example #3
0
            public ReceiptDto ReceiptDtoFromJson(CreateReceipt cmd)
            {
                var dto = new ReceiptDto()
                {
                    InvoiceId = cmd.Request.InvoiceId,
                    Type      = cmd.Request.Type,
                    Email     = cmd.Request.CustomerReceipt.Email,
                    Phone     = cmd.Request.CustomerReceipt.Phone,
                    Inn       = cmd.Request.Inn,
                    TaxSystem = cmd.Request.CustomerReceipt.TaxationSystem
                };

                return(dto);
            }