Example #1
0
        public async Task <bool> CreateOrderDataAsynq(OrderDataInputModel inputModel)
        {
            //get all orders
            var orders = await this.orderRepository
                         .All()
                         .Where(x => x.IsDeleted == false && x.UserId == inputModel.UserId)
                         .OrderBy(x => x.Quantity)
                         .ToListAsync();

            if (inputModel != null && orders.Count >= 1)
            {
                var data = new OrderData()
                {
                    FirstName             = inputModel.FirstName,
                    LastName              = inputModel.LastName,
                    Address               = inputModel.Address,
                    City                  = inputModel.City,
                    Phone                 = inputModel.Phone,
                    DeliveryType          = inputModel.DeliveryType,
                    PromoCode             = inputModel.PromoCode,
                    AdditionalInformation = inputModel.AdditionalInformation,
                    CreatedOn             = DateTime.Now,
                    Orders                = orders,
                    SubTotal              = orders.Sum(x => x.TotalPrice),
                    UserId                = inputModel.UserId
                };

                this.repository.Add(data);
                await this.repository.SaveChangesAsync();

                return(true);
            }

            throw new InvalidOperationException(GlobalConstants.FinishOrderError);
        }
        public async Task <IActionResult> Post([FromBody] OrderDataInputModel input)
        {
            if (this.ModelState.IsValid)
            {
                var result = await this.orderDataService.CreateOrderDataAsynq(input);

                if (result == true)
                {
                    return(this.Ok(result));
                }
            }

            return(this.BadRequest("Failed to create data"));
        }