Ejemplo n.º 1
0
        public async Task <IActionResult> Post([FromBody] AddUpdateOderApiModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(await manager.Add(model)));
        }
Ejemplo n.º 2
0
        public async Task <OrderARModel> Update(int orderId, AddUpdateOderApiModel model)
        {
            var order = await this.orderRepository.GetById(orderId);

            if (order != null && !order.Status.Equals("Completed"))
            {
                order.CustomerName = model.CustomerName;
                foreach (var item in model.Items)
                {
                    var foodExists = order.Items.FirstOrDefault(c => c.FoodItemId == item.FoodItemId);
                    if (foodExists != null)
                    {
                        if (item.Quantity <= 0)
                        {
                            foodExists.IsActive  = false;
                            foodExists.IsDeleted = true;
                            foodExists.Quantity  = 0;
                        }
                        else
                        {
                            foodExists.IsActive  = true;
                            foodExists.IsDeleted = false;
                            foodExists.Quantity  = item.Quantity.Value;
                        }
                    }
                    else
                    {
                        order.Items.Add(new Models.Data.OrderItem()
                        {
                            FoodItemId = item.FoodItemId.Value, Quantity = item.Quantity.Value, IsActive = true, IsDeleted = false
                        });
                    }
                }

                foreach (var item in order.Items)
                {
                    var foodExists = model.Items.FirstOrDefault(c => c.FoodItemId == item.FoodItemId);
                    if (foodExists == null)
                    {
                        item.IsActive  = false;
                        item.IsDeleted = true;
                        item.Quantity  = 0;
                    }
                }

                await this.orderRepository.Update(order);
            }

            order = await this.orderRepository.GetById(orderId);

            return(ContructOrderReponseModel(order));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Put(int id, [FromBody] AddUpdateOderApiModel model)
        {
            if (id <= 0)
            {
                ModelState.AddModelError("", "Invalid Id");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(await manager.Update(id, model)));
        }
Ejemplo n.º 4
0
        public async Task <OrderARModel> Add(AddUpdateOderApiModel model)
        {
            var order = new Models.Data.Order()
            {
                CustomerName = model.CustomerName,
                Status       = "On-going",
                Items        = model.Items.Where(c => c.Quantity > 0).Select(c => new Models.Data.OrderItem()
                {
                    FoodItemId = c.FoodItemId.Value, Quantity = c.Quantity.Value, IsActive = true, IsDeleted = false
                }).ToList()
            };

            await this.orderRepository.Add(order);

            order = await this.orderRepository.GetById(order.Id);

            return(ContructOrderReponseModel(order));
        }