/// <summary> /// Generates the body of the email when the order is submitted to the user and is marked as completed /// </summary> /// <param name="order"><The details of the order/param> /// <returns></returns> private string GenerateOrderSendEmailBody(Models.OrderDetails order) { //TODO: add item images and ENTI LOGO string body = @"<!DOCTYPE html> <html xmlns=""http://www.w3.org/1999/xhtml""> <head> <meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8"" /> <title>Изпратена поръчка от Enti Tree Bonsai</title> <meta name=""viewport"" content=""width=device-width, initial-scale=1.0"" /> </head> </body>" + "Здравейте, " + order.customer.name + "!<br/><br/>" + "Вашата поръчка #" + order.orderId + " е изпратена успешно и пътува към вас.<br/>" + "Адрес на доставка: " + order.customer.address + "<br/><br/><h3> Детайли за поръчката: </h3><br/>"; body += @"<table style=""width:100%;border-spacing:0;border: 1px solid #eee;border-radius: 10px;padding: 5px;line-height: 20px;""> <thead> <tr style=""background-color: #eee;""> <th style=""text-align: left; padding: 5px;"">Продукт </th> <th style=""text-align: right; padding: 5px;"">Количество </th> <th style=""text-align: right; padding: 5px;"">Цена </th> </tr> </thead> <tbody>"; double?total = 0; double?itemPrice = 0; for (int i = 0; i < order.items.Count; i++) { itemPrice = (order.items[i].itemPrice * order.items[i].quantity); body += "<tr><td>" + order.items[i].title + "</td><td style=\"text-align: right;\">" + order.items[i].quantity + "</td><td style=\"text-align: right;\">" + itemPrice.Value.ToString() + " лв. </td></tr>"; total += itemPrice; } string contactsUrl = System.Web.Configuration.WebConfigurationManager.AppSettings.Get("entiTreesUrl") + "contacts"; body += @"<tfoot><tr><td colspan=""3""><hr style=""border-top: 1px solid #eee;""></td></tr> <tr style=""border-top: 1px solid #eee""><td colspan=""2"">Обща цена на поръчката:</td><td style=""text-align: right;"">" + total.ToString() + @" лв. </td></tr> </tfoot> </tbody> </table> <br/><br/> Детайли за доставката можете да откриете на страницата <a href=""" + contactsUrl + @""">Контакти</a> на нашия сайт. <br/> Благодарим Ви, че избрахте нас! </body> </html>"; return(body); }
public IActionResult AddToCart(System.Guid Id) { var theUser = UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.GetUserByUsername(User.Identity.Name); var theOrder = UnitOfWork.BethanyPieShopUnitOfWork.OrderRepository.GetOrderByUserId(theUser.Id); var selectedPie = UnitOfWork.BethanyPieShopUnitOfWork.PieRepository.GetById(Id); if (theOrder == null) { Models.Order newOrder = new Models.Order() { UserId = theUser.Id, IsFinaly = false, Sum = 0, }; Models.OrderDetails newOrderDetails = new Models.OrderDetails() { OrderId = newOrder.Id, PieId = selectedPie.Id, Price = selectedPie.Price, Amount = 1, }; UnitOfWork.BethanyPieShopUnitOfWork.OrderRepository.Insert(newOrder); UnitOfWork.BethanyPieShopUnitOfWork.OrderDetailsRepository.Insert(newOrderDetails); UnitOfWork.BethanyPieShopUnitOfWork.OrderDetailsRepository.Save(); UnitOfWork.BethanyPieShopUnitOfWork.OrderRepository.Save(); } else { var theOrderDetails = UnitOfWork.BethanyPieShopUnitOfWork.OrderDetailsRepository.GetOrderDetailsByPieIdAndOrderId(selectedPie.Id, theOrder.Id); if (theOrderDetails == null) { Models.OrderDetails orderDetails = new Models.OrderDetails() { OrderId = theOrder.Id, PieId = selectedPie.Id, Price = selectedPie.Price, Amount = 1, }; UnitOfWork.BethanyPieShopUnitOfWork.OrderDetailsRepository.Insert(orderDetails); } else { ++theOrderDetails.Amount; UnitOfWork.BethanyPieShopUnitOfWork.OrderDetailsRepository.Update(theOrderDetails); } UnitOfWork.BethanyPieShopUnitOfWork.OrderDetailsRepository.Save(); } UnitOfWork.BethanyPieShopUnitOfWork.OrderRepository.UpdateSumOfOrder(theOrder); return(RedirectToAction(actionName: nameof(Index), controllerName: "Home", routeValues: new { area = "" })); }
private List <Models.OrderDetails> mapOrderDetails(List <DAL.Entities.OrderDetails> list) { List <Models.OrderDetails> result = new List <Models.OrderDetails>(); foreach (var item in list) { Models.OrderDetails or = new Models.OrderDetails() { Id = item.Id, Date = item.Date.ToString("yyyy-MM-dd"), Quantity = item.Quantity, Prod_Id = item.Prod_Id }; result.Add(or); } return(result); }
public Models.OrderDetails Get(int orderId) { var order = new Models.OrderDetails(); using (var db = new EntiTreesEntities()) { var query = db.SelectOrderByID(orderId); foreach (var item in query) { order.orderId = item.OrderId; order.shoppingCartId = item.ShoppingCartId; order.customerId = item.CustomerId; order.orderDate = item.Date; order.isCompleted = item.IsCompleted; order.orderCompletedDate = item.DateCompleted; order.customer = new Models.Customer { message = item.Message, name = item.Name, phone = item.Phone, email = item.Email, address = item.Address }; } var query2 = db.SelectOrderItemsByOrderID(orderId); order.items = new List <Models.OrderDetails.OrderItem>(); foreach (var item in query2) { order.items.Add(new Models.OrderDetails.OrderItem { shoppingItemId = item.ShoppingItemId, categoryName = item.Name, discount = item.Discount == null ? 0 : item.Discount.Value, imageSrc = item.ImageSrc, itemPrice = item.SinglePrice == null ? 0 : item.SinglePrice.Value, quantity = item.Quantity, sellPrice = item.Price, title = item.Title }); } } return(order); }
public Models.ReturnValue <string> Put([FromUri] bool isCompleted, [FromBody] Models.OrderDetails order) { using (var db = new EntiTreesEntities()) { try { db.UpdateOrder(order.orderId, isCompleted); if (isCompleted) { Utils.SendMail("ИЗПРАТЕНА ПОРЪЧКА #" + order.orderId.ToString() + ": Вашата поръчка пътува към вас!", GenerateOrderSendEmailBody(order), order.customer.email, order.customer.name); } return(new Models.ReturnValue <string>(Models.Codes.OK, "Order send successfully")); } catch (Exception ex) { return(new Models.ReturnValue <string>(Models.Codes.Error, ex.Message)); } } }
public async Task <Microsoft.AspNetCore.Mvc.IActionResult> ShowProfileInformation() { System.Collections.Generic.List <Models.OrderDetails> orderDetailsList = new System.Collections.Generic.List <Models.OrderDetails>(); ViewModels.ShowProfileInformationViewModel viewModel = new ViewModels.ShowProfileInformationViewModel(); var theUser = UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.GetUserByUsername(User.Identity.Name); var theOrder = UnitOfWork.BethanyPieShopUnitOfWork.OrderRepository.GetAllOrdersByUserId(theUser.Id); var roleSelectList = await roleManager.Roles.ToListAsync(); theUser.Role = roleSelectList.Where(current => Guid.Parse(current.Id) == theUser.RoleId).FirstOrDefault(); viewModel.User = theUser; viewModel.UserOrders = theOrder; foreach (var item in theOrder) { if (item != null) { var details = UnitOfWork.BethanyPieShopUnitOfWork.OrderDetailsRepository.GetOrderDetailsByOrderId(item.Id); foreach (var detail in details) { Models.OrderDetails orderDetails = new Models.OrderDetails() { Id = detail.Id, Amount = detail.Amount, Price = detail.Price, PieId = detail.PieId, OrderId = detail.OrderId, Pie = UnitOfWork.BethanyPieShopUnitOfWork.PieRepository.GetById(detail.PieId) }; orderDetailsList.Add(orderDetails); } viewModel.UserOrderDetails = orderDetailsList; } } ViewBag.FullAdress = $"{viewModel.User.Country},{viewModel.User.State},{viewModel.User.City},{viewModel.User.Address},{viewModel.User.ZipCode}"; return(View(viewModel)); }