/// <summary> /// Place order /// </summary> /// <param name="cartEntity">Order details</param> /// <returns>order id</returns> public int AddToCart(AddToCartEntity cartEntity) { try { DataLayer.Context.TblFoodCart tblFoodCart = _mapper.Map <DataLayer.Context.TblFoodCart>(cartEntity); tblFoodCart.UserCreated = cartEntity.CustomerId; //calculate total price tblFoodCart.TotalPrice = TotalPrice(cartEntity); var OrderID = _addToCartDbAccess.AddToCart(tblFoodCart); List <DataLayer.Context.TblFoodCartMapping> tblFoodCartMappings = new List <DataLayer.Context.TblFoodCartMapping>(); foreach (OrderMenus orderMenu in cartEntity.OrderMenuDetails) { tblFoodCartMappings.Add(new DataLayer.Context.TblFoodCartMapping() { TblFoodCartId = OrderID, TblMenuId = orderMenu.MenuId, Price = orderMenu.Price, UserCreated = cartEntity.CustomerId, RecordTimeStampCreated = DateTime.Now }); } return(_addToCartDbAccess.AddToCartMappingTable(tblFoodCartMappings)); } catch (Exception ex) { return(-1); } }
public async Task <IActionResult> AddToCart([FromBody] AddToCartEntity addToCartEntity) { _logService.LogMessage("AddToCart Entity received at endpoint : api/AddToCart, User ID : " + addToCartEntity.CustomerId); int UserId = (Request.Headers.ContainsKey("CustomerId") ? int.Parse(HttpContext.Request.Headers["CustomerId"]) : 0); string UserToken = (Request.Headers.ContainsKey("AuthToken") ? Convert.ToString(HttpContext.Request.Headers["AuthToken"]) : ""); AddToCartEntityValidator orderEntityValidator = new AddToCartEntityValidator(UserId, UserToken, _addToCartActions); ValidationResult validationResult = orderEntityValidator.Validate(addToCartEntity); if (!validationResult.IsValid) { return(BadRequest(validationResult.ToString("; "))); } else { var result = await Task <int> .Run(() => _addToCartActions.AddToCart(addToCartEntity)); if (result <= 0) { return(BadRequest("Failed to add to cart, Please try again later.")); } } return(Ok("Items Added to Cart successfully")); }
private decimal TotalPrice(AddToCartEntity cartEntity) { decimal sum = 0; foreach (OrderMenus orderMenu in cartEntity.OrderMenuDetails) { sum += orderMenu.Price; } return(sum); }
public async Task <bool> IsValidRestaurantAsync(AddToCartEntity cartEntity, int UserId, string UserToken) { using (HttpClient httpClient = WebAPIClient.GetClient(UserToken, UserId, _connectionStrings.Value.RestaurantApiUrl)) { HttpResponseMessage httpResponseMessage = await httpClient.GetAsync("api/ResturantDetail?RestaurantID=" + cartEntity.RestaurantId); if (httpResponseMessage.IsSuccessStatusCode) { string json = await httpResponseMessage.Content.ReadAsStringAsync(); RestaurantInformation restaurantInformation = JsonConvert.DeserializeObject <RestaurantInformation>(json); if (restaurantInformation != null) { return(true); } } } return(false); }