Пример #1
0
        /// <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 = "" }));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
 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));
         }
     }
 }
Пример #6
0
        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));
        }