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)); } }