/// <summary> /// This validates the input and if OK creates /// an order and calls the _dbAccess to add to orders /// </summary> /// <param name="dto"></param> /// <returns>returns an Order. Will be null if there are errors</returns> public Order BizAction(PlaceOrderInDto dto) { if (!dto.AcceptTAndCs) { AddError("You must accept the T&Cs to place an order."); return(null); } if (!dto.LineItems.Any()) { AddError("No items in your basket."); return(null); } var booksDict = _dbAccess.FindBooksByIdsWithPriceOffers (dto.LineItems.Select(x => x.BookId)); var order = new Order { CustomerName = dto.UserId, ExpectedDeliveryDate = DateTime.Today.AddDays(5), LineItems = FormLineItemsWithErrorChecking(dto.LineItems, booksDict) }; if (!HasErrors) { _dbAccess.Add(order); } return(HasErrors ? null : order); }
/// <summary> /// This validates the input and if OK creates /// an order and calls the _dbAccess to add to orders /// </summary> /// <param name="dto"></param> /// <returns>returns an Order. Will be null if there are errors</returns> public Order Action(PlaceOrderInDto dto) //#D { if (!dto.AcceptTAndCs) //#E { //#E AddError( //#E "You must accept the T&Cs to place an order."); //#E return(null); //#E } //#E if (!dto.LineItems.Any()) //#E { //#E AddError("No items in your basket."); //#E return(null); //#E } //#E var booksDict = //#F _dbAccess.FindBooksByIdsWithPriceOffers //#F (dto.LineItems.Select(x => x.BookId)); //#F var order = new Order //#G { //#G CustomerName = dto.UserId, //#G LineItems = //#G FormLineItemsWithErrorChecking //#G (dto.LineItems, booksDict) //#G }; //#G if (!HasErrors) //#H { _dbAccess.Add(order); //#H } return(HasErrors ? null : order); //#I }
public Order Action(PlaceOrderInDto dto) { if (!dto.AcceptTAndCs) { AddError("You must accept the T&Cs to place an order."); return(null); } if (dto.LineItems.Count == 0) { AddError("No items in your basket."); return(null); } var bookIds = dto.LineItems.Select(lineItem => lineItem.BookId); //to present the data as an in-memory set(in this case, a dictionary) var booksDict = dbAccess.FindBooksByIdsWithPriceOffers(bookIds); var order = new Order { CustomerName = dto.UserId, LineItems = FormLineItemsWithErrorChecking(dto.LineItems, booksDict) }; if (!HasErrors) { dbAccess.Add(order); } return(HasErrors ? null : order); }
public Order Action(Part1ToPart2Dto dto) { var bookIds = dto.LineItems.Select(lineItem => lineItem.BookId); var booksDict = dbAccess.FindBooksByIdsWithPriceOffers(bookIds); dto.Order.LineItems = FormLineItemsWithErrorChecking(dto.LineItems, booksDict); return(HasErrors ? null : dto.Order); }