コード例 #1
0
        public async Task <IActionResult> NewOrderNoCustomer([FromBody] OrderNoCustomerView orderView)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(CustomResponse(ModelState));
                }

                await _orderRepository.Save(orderView);
            }
            catch (Exception ex)
            {
                NotifyError(ex.Message);
            }
            return(CustomResponse());
        }
コード例 #2
0
        private async Task Validation(OrderNoCustomerView order)
        {
            if (!_baseService.ViewValidation(new OrderValidation(), order))
            {
                return;
            }

            var customers = await _customerRepository.Query <Customer>("Select * from Customer nolock where email =@email", new { email = order.Email });

            if (customers.Any())
            {
                _customer = customers.FirstOrDefault();
            }

            var selectFlavors = order.Items.Select(src => src.Flavors);

            await PrepareFlavors(selectFlavors);
        }
コード例 #3
0
        public async Task Save(OrderNoCustomerView orderView)
        {
            try
            {
                await Validation(orderView);

                if (_notifier.HasNotification())
                {
                    return;
                }
                _context.Begin();

                //Create customer
                if (_customer == null)
                {
                    var customer = _mapper.Map <Customer>(orderView);
                    await _customerRepository.Insert(customer);

                    _customer = customer;
                }
                else
                {
                    // The customer exists, but the delivery can be in another location
                    var id   = _customer.Id;
                    var name = _customer.Name;
                    _customer = _mapper.Map <Customer>(orderView);
                    _customer.UpdateId(id);
                    _customer.Name = name;
                }
                await Save(orderView.DateCreate, orderView.Items);

                _context.Commit();
            }
            catch (Exception ex)
            {
                _context.Rollback();
                _notifier.SetNotification(new Notification("Não foi possível salvar esse registro, veja o erro:" + ex.Message));
            }
        }
コード例 #4
0
        public async Task CreateOrderNoCustomer()
        {
            var entry = new OrderNoCustomerView
            {
                DateCreate   = DateTime.Now,
                Name         = "Ingrid Guimarães Martins Leandro",
                Email        = "*****@*****.**",
                Street       = "Rua Jurupira",
                Number       = "724",
                Complement   = "",
                Neighborhood = "Barra Funda",
                City         = "São Paulo",
                PostalCode   = "02714-000",
                UF           = "SP",
                Items        = new List <OrderItemView>()
            };

            entry.Items.Add(new OrderItemView
            {
                Flavors = new List <long> {
                    3
                },
            });

            entry.Items.Add(new OrderItemView
            {
                Flavors = new List <long> {
                    1, 2
                },
            });
            var payload = System.Text.Json.JsonSerializer.Serialize(entry);
            var client  = new SaleProvider()._client;

            var response = await client.PostAsync("/api/v1/Order/new/no/customer", new StringContent(payload, Encoding.UTF8, "application/json"));

            response.EnsureSuccessStatusCode();
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }