Пример #1
0
        public int TakeCartOrder(OrderTimes orderDetails, string userId)
        {
            var cart = _dbContext.Carts.Where(c => c.ApplicationUserId == userId).SingleOrDefault();

            if (cart == null)
            {
                return(1);
            }
            int   price = 0;
            Order order = new Order
            {
                ReleaseTime       = orderDetails.ReleaseTime,
                Deadline          = orderDetails.Deadline,
                Status            = 0,
                ApplicationUserId = userId
            };
            var dbOrder = _dbContext.Add(order).Entity;

            foreach (var item in cart.Items)
            {
                OrderdItem orderdItem = new OrderdItem
                {
                    Quantity = item.Quantity,
                    ItemId   = item.ItemId,
                    OrderId  = order.Id
                };
                price += item.Quantity * item.Item.Price;
                _dbContext.Add(orderdItem);
                _dbContext.Remove(item);
            }
            _dbContext.Remove(cart);
            TimeSpan substract = orderDetails.Deadline.Subtract(orderDetails.ReleaseTime);

            dbOrder.Price = (substract.Days + (substract.Minutes > 0?1:0)) * price;
            _dbContext.SaveChanges();
            return(0);
        }
        public async Task <IActionResult> NewOrderedItem([FromBody] OrderedItemViewModel model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest("Error while recieving data"));
                }
                var userID = HttpContext.User.Identity.Name;
                if (userID == null)
                {
                    return(StatusCode(StatusCodes.Status401Unauthorized));
                }
                ApplicationUser user = await _Context.Set <ApplicationUser>().SingleOrDefaultAsync(x => x.UserName == userID);

                if (user == null)
                {
                    return(BadRequest("Token is not related to any Account"));
                }
                Account account = _Context.Set <Account>().Include(x => x.Cart)
                                  .ThenInclude(x => x.CartItems).FirstOrDefault(x => x.ID == user.AccountID);
                if (user == null || account == null)
                {
                    return(null);
                }

                OrderdItem Ordereditem = new OrderdItem()
                {
                    CreationDate = DateTime.Now,
                    NeededDate   = model.NeededDate,
                    Name         = model.Name,
                    Description  = model.Description,
                    AccountID    = account?.ID,
                };
                #region Save Other images
                if (model.Images != null && model.Images.Any(x => x.Length > 0))
                {
                    foreach (var file in model.Images.Where(x => x.Length > 0))
                    {
                        var itemImage = new OrderdItemImage()
                        {
                            OrderdItem = Ordereditem
                        };
                        itemImage.ImagePath = ImageOperations.SaveItemImage(file, itemImage);
                        if (!string.IsNullOrWhiteSpace(itemImage.ImagePath))
                        {
                            Ordereditem.OrderdItemImages.Add(itemImage);
                        }
                        else
                        {
                            itemImage.OrderdItem = null;
                        }
                    }
                }
                #endregion

                var data = _Context.Set <OrderdItem>().Add(Ordereditem);
                _Context.SaveChanges();
                return(Ok(Ordereditem.ID));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }