예제 #1
0
        protected void UpdateButton_Click(object sender, EventArgs e)
        {
            bool allDataSaved = true;
            var  selectedRows = GetSelectedRows();

            foreach (var row in selectedRows)
            {
                if (row != null)
                {
                    var shippingDetailIdLiteral = row.FindControl("ShippingDetailIdLiteral") as Literal;
                    if (shippingDetailIdLiteral != null && !string.IsNullOrEmpty(shippingDetailIdLiteral.Text))
                    {
                        long shippingDetailId;
                        if (Int64.TryParse(shippingDetailIdLiteral.Text, out shippingDetailId))
                        {
                            ShippingDetail shippingDetail = UpdateShippingDetail(row, shippingDetailId, true);
                            if (shippingDetail != null)
                            {
                                _shippingDetailRepository.Save(shippingDetail);
                            }
                            else
                            {
                                allDataSaved = false;
                                break;
                            }
                        }
                    }
                }
            }
            if (allDataSaved)
            {
                MessageBox.ShowSuccessMessage("Shipping Detail(s) updated successfully.");
                BindDataForFilters();
            }
        }
예제 #2
0
        private void SaveProductShippingDetail(long productId, Order order, Address shippingAddress, long customerId)
        {
            var shippingOption = _shippingOptionRepository.GetShippingOptionByProductId(productId);

            if (shippingOption == null)
            {
                return;
            }

            OrderDetail orderDetail           = _orderController.GetActiveOrderDetail(order);
            var         productShippingDetail = new ShippingDetail
            {
                ShippingOption       = shippingOption,
                ActualPrice          = shippingOption.Price,
                Status               = ShipmentStatus.Processing,
                ShippingAddress      = shippingAddress,
                DataRecorderMetaData = new DataRecorderMetaData(customerId, DateTime.Now, null)
            };

            if (orderDetail != null)
            {
                productShippingDetail = _shippingController.OrderShipping(productShippingDetail);

                var shippingDetailOrderDetail = new ShippingDetailOrderDetail
                {
                    Amount           = productShippingDetail.ActualPrice,
                    IsActive         = true,
                    OrderDetailId    = orderDetail.Id,
                    ShippingDetailId = productShippingDetail.Id
                };

                _shipingDetailOrderDetailRepository.Save(shippingDetailOrderDetail);
            }
        }
예제 #3
0
 public IActionResult Order(ShippingDetail shippingDetail)
 {
     if (Carte.Lines.Count() == 0)
     {
         ModelState.AddModelError("Empty", "Sorry, your carte is empty!");
     }
     if (ModelState.IsValid)
     {
         shippingDetail.FullName  = _dBaseTechProduct.dbUsers.FirstOrDefault(user => user.FullName == User.FindFirst("FullName").Value).FullName;
         shippingDetail.orderDate = System.DateTime.Now;
         shippingDetail.buyer     = _dBaseTechProduct.dbUsers.FirstOrDefault(user => user.FullName == User.FindFirst("FullName").Value);
         shippingDetail.state     = false;
         shippingDetail.orders    = (List <CarteLine>)Carte.Lines;
         _dBaseTechProduct.dbOrders.Add(shippingDetail);
         _dBaseTechProduct.SaveChanges();
         Carte.Clear();
         ViewData.Add("CitiesList", getCitiesList());
         return(RedirectToAction(nameof(Complited)));
     }
     else
     {
         ModelState.AddModelError("Empty", "Gov =" + shippingDetail.Gouvernerat);
     }
     ViewData.Add("CitiesList", getCitiesList());
     return(View(shippingDetail));
 }
        public ShippingDetail GetShippingDetailData(CustomerOrderDetail customerOrderDetail)
        {
            var option = customerOrderDetail.ShippingOptions.FirstOrDefault();

            if (option == null)
            {
                return(null);
            }

            var shippingDetail = new ShippingDetail
            {
                ShippingOption       = new ShippingOption(option.Id),
                DataRecorderMetaData =
                    new DataRecorderMetaData
                {
                    DataRecorderCreator = _organizationRoleUserRepository.GetOrganizationRoleUser(_creatorOrganizationRoleUser),
                    DateCreated         = DateTime.Now,
                    DateModified        = DateTime.Now
                },
                Status          = ShipmentStatus.Processing,
                ShippingAddress = GetShippinAddress(customerOrderDetail),
                ActualPrice     = option.Price
            };

            return(shippingDetail);
        }
예제 #5
0
        public ActionResult Checkout(ShippingDetail detail, HoaDon hoaDon)
        {
            if (hoaDon.ChiTietHoaDons.Count() == 0)
            {
                ModelState.AddModelError("", "Sorry, your cart is empty!");
            }
            if (ModelState.IsValid)
            {
                StringBuilder body = new StringBuilder()
                                     .AppendLine("A new order has been submitted")
                                     .AppendLine("---")
                                     .AppendLine("Items:");
                foreach (var hoaDonChiTiet in hoaDon.ChiTietHoaDons)
                {
                    var subtotal = hoaDonChiTiet.MovieObj.Price * hoaDonChiTiet.SoLuong;
                    body.AppendFormat("{0} x {1} (subtotal: {2:c}", hoaDonChiTiet.SoLuong,
                                      hoaDonChiTiet.MovieObj.Title,
                                      subtotal);
                }
                body.AppendFormat("Total order value: {0:c}", hoaDon.TongTien)
                .AppendLine("---")
                .AppendLine("Ship to:")
                .AppendLine(detail.Name)
                .AppendLine(detail.Address)
                .AppendLine(detail.Mobile.ToString());

                HttpContext.Session.Set <HoaDon>("HoaDon", null);
                return(View("CheckoutCompleted"));
            }
            else
            {
                return(View(new ShippingDetail()));
            }
        }
예제 #6
0
        private IEnumerable <ShippingDetailViewData> GetShippingDetailUserPair(long orderDetailId)
        {
            var shippingDetailViewDatas = new List <ShippingDetailViewData>();
            var shippingDetails         = _shippingDetailRepository.GetCancelledShippingDetailsForOrder(orderDetailId);

            foreach (var shippingDetail in shippingDetails)
            {
                ShippingDetail detail = shippingDetail;
                var            organizationRoleUserCreator = GetOrganizationRoleUser(detail,
                                                                                     sd => sd.DataRecorderMetaData.DataRecorderCreator.Id);

                // Add a new entry for the cancelled status.
                if (detail.Status == ShipmentStatus.Cancelled && organizationRoleUserCreator != null)
                {
                    var shippingDetailViewData = GetShippingDetailViewData(detail, organizationRoleUserCreator);
                    shippingDetailViewData.Status = ShipmentStatus.Processing.ToString();

                    shippingDetailViewDatas.Add(shippingDetailViewData);
                }

                if (organizationRoleUserCreator != null)
                {
                    var shippingDetailViewData = GetShippingDetailViewData(detail, organizationRoleUserCreator);
                    shippingDetailViewData.Status = detail.Status.ToString();
                    shippingDetailViewDatas.Add(shippingDetailViewData);
                }
            }
            return(shippingDetailViewDatas);
        }
예제 #7
0
        private ShippingDetail SaveShippingDetail(Address address, OrganizationRoleUser createdByOrgRoleUser)
        {
            var shippingOptions = _shippingOptionRepository.GetAllShippingOptionsForBuyingProcess();

            if (shippingOptions != null && shippingOptions.Count > 0)
            {
                var shippingOption = shippingOptions.Where(so => so.Price == 0).Select(so => so).FirstOrDefault();
                if (shippingOption != null)
                {
                    address = _addressService.SaveAfterSanitizing(address);
                    var shippingDetail = new ShippingDetail
                    {
                        ShippingOption       = new ShippingOption(),
                        DataRecorderMetaData =
                            new DataRecorderMetaData
                        {
                            DataRecorderCreator = createdByOrgRoleUser,
                            DateCreated         = DateTime.Now,
                            DateModified        = DateTime.Now
                        },
                        Status          = ShipmentStatus.Processing,
                        ShippingAddress = address
                    };


                    shippingDetail.ShippingOption.Id = shippingOption.Id;
                    shippingDetail.ActualPrice       = shippingOption.Price;

                    shippingDetail = _shippingController.OrderShipping(shippingDetail);
                    return(shippingDetail);
                }
                return(null);
            }
            return(null);
        }
        public IHttpActionResult PostShippingDetail(ShippingDetail shippingDetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.ShippingDetails.Add(shippingDetail);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (ShippingDetailExists(shippingDetail.ShippingID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = shippingDetail.ShippingID }, shippingDetail));
        }
예제 #9
0
        public ActionResult CompleteOrder(FormCollection frm)
        {
            List <Order> siparisler = db.Orders.Where(x => x.CustomerID == TemporaryUserData.UserID && x.IsCompleted == false).ToList();

            Payment odeme = new Payment();

            odeme.Type            = int.Parse(frm["PaymentType"]);
            odeme.PaymentDateTime = DateTime.Now;
            db.Payments.Add(odeme);

            ShippingDetail spd = new ShippingDetail();

            spd.Address   = frm["Adres1"];
            spd.Mobile    = frm["Mobile1"];
            spd.FirstName = db.Customers.Find(TemporaryUserData.UserID).FirstName;
            spd.LastName  = db.Customers.Find(TemporaryUserData.UserID).LastName;
            db.ShippingDetails.Add(spd);

            db.SaveChanges();

            foreach (var urun in siparisler)
            {
                urun.IsCompleted  = true;
                urun.ShippingID   = spd.ShippingID;
                urun.Shipped      = true;
                urun.ShippingDate = DateTime.Now;
                urun.PaymentID    = odeme.PaymentID;
            }

            db.SaveChanges();
            //TODO: bütün ürünlerden satın alınan miktar kadar UnitInStock değerinden düşme yapılacak


            return(RedirectToAction("Index", "Home"));
        }
        private void SaveOrder(Cart cart, ShippingDetail entity)
        {
            var order = new Order();

            order.OrderNumber           = "A" + (new Random()).Next(11111, 99999).ToString();
            order.Total                 = cart.Total;
            order.OrderDate             = DateTime.Now;
            order.OrderState            = EnumOrderState.Waiting;
            order.ShippingDetail        = entity;
            order.ShippingDetail.UserId = !User.Identity.IsAuthenticated ? "0" : entity.UserId;
            order.UserId                = entity.UserId;


            var orderLine = new OrderLine();

            orderLine.Order = order;

            order.OrderLines = new List <OrderLine>();

            foreach (var cartLine in cart.CartLines)
            {
                order.OrderLines.Add(new OrderLine()
                {
                    Price = Convert.ToInt32(cartLine.Product.UnitPrice) * cartLine.Quantity, Quantity = cartLine.Quantity, ProductId = cartLine.Product.ProductId
                });
            }

            _orderService.AddOrder(order);
            _cartService.ClearCartLine(cart);
            _cartSessionService.SetCart(cart);
        }
예제 #11
0
        public ActionResult CompleteShopping(FormCollection frm)
        {
            Payment payment = new Payment();

            payment.Type            = int.Parse(frm["paymentType"]);
            payment.CreditAmount    = 25000;
            payment.DebitAmount     = 25000;
            payment.Balance         = 25000;
            payment.PaymentDateTime = DateTime.Now;

            db.Payments.Add(payment);
            db.SaveChanges();

            if (frm["update"] == "on")
            {
                Customer customer = db.Customers.Find(TemporaryUserData.UserID);
                customer.FirstName = frm["FirstName"];
                customer.LastName  = frm["LastName"];
                customer.Address   = frm["Address"];
                customer.City      = frm["City"];
            }
            ShippingDetail sp = new ShippingDetail();

            sp.FirstName = frm["FirstName"];
            sp.LastName  = frm["LastName"];
            sp.Address   = frm["Address"];
            sp.City      = frm["City"];

            db.ShippingDetails.Add(sp);
            db.SaveChanges();


            List <OrderDetail> cart = db.OrderDetails.Where(x => x.CustomerID == TemporaryUserData.UserID && x.IsCompleted == false).ToList();

            foreach (var item in cart)
            {
                item.IsCompleted          = true;
                item.Product.UnitInStock -= item.Quantity;
                Order order = new Order()
                {
                    PaymentID      = payment.PaymentID,
                    ShippingID     = sp.ShippingID,
                    OrderDetailID  = item.OrderDetailID,
                    Discount       = item.Discount,
                    TotalAmount    = item.TotalAmount,
                    IsCompleted    = true,
                    OrderDate      = DateTime.Now,
                    Dispatched     = false,
                    DispatchedDate = DateTime.Now.AddDays(4),
                    Shipped        = false,
                    ShippedDate    = DateTime.Now.AddDays(5),
                    Deliver        = false,
                    DeliveryDate   = DateTime.Now.AddDays(5),
                    CancelOrder    = false
                };
                db.SaveChanges();
            }

            return(RedirectToAction("FinishedShopping", "Shopping"));
        }
 public int SaveShippingDetails(ShippingDetailsDTO shippingDetailsDTO)
 {
     try
     {
         using (nareshkartEntities dbContext = new nareshkartEntities())
         {
             var entity = new ShippingDetail()
             {
                 Country         = shippingDetailsDTO.Country,
                 Email           = shippingDetailsDTO.Email,
                 FirstName       = shippingDetailsDTO.FirstName,
                 LandMark        = shippingDetailsDTO.LandMark,
                 LastName        = shippingDetailsDTO.LastName,
                 PhoneNumber     = shippingDetailsDTO.PhoneNumber,
                 ShippingAddress = shippingDetailsDTO.Address,
                 State           = shippingDetailsDTO.State,
                 Street          = shippingDetailsDTO.Street,
                 Zipcode         = shippingDetailsDTO.Zip,
                 UserId          = shippingDetailsDTO.UserId
             };
             dbContext.ShippingDetails.Add(entity);
             dbContext.SaveChanges();
             return(entity.Id);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #13
0
        protected void ShippingDetailsGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            var updateButton = (e.CommandSource as Button);

            if (updateButton != null)
            {
                var currentGridRow = (updateButton.NamingContainer as GridViewRow);
                if (currentGridRow != null)
                {
                    switch (e.CommandName)
                    {
                    case "UpdateShippingStatus":
                        long shippingDetailId;
                        if (e.CommandArgument != null && !string.IsNullOrEmpty(e.CommandArgument.ToString()) &&
                            Int64.TryParse(e.CommandArgument.ToString(), out shippingDetailId))
                        {
                            ShippingDetail shippingDetail = UpdateShippingDetail(currentGridRow, shippingDetailId,
                                                                                 false);
                            if (shippingDetail != null)
                            {
                                shippingDetail = _shippingDetailRepository.Save(shippingDetail);
                                if (shippingDetail.Id > 0)
                                {
                                    MessageBox.ShowSuccessMessage("Shipping Detail updated successfully.");
                                    BindDataForFilters();
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
예제 #14
0
        public ActionResult Checkout(ShippingDetail detail)
        {
            var hoaDon = this.Session["HoaDon"] as HoaDon;

            if (hoaDon.ChiTietHoaDons.Count() == 0)
            {
                ModelState.AddModelError("", "Sorry, your cart isempty!");
            }
            if (ModelState.IsValid)
            {
                StringBuilder body = new StringBuilder().AppendLine("A new order has been submitted").AppendLine("---").AppendLine("Items:");
                foreach (var hoaDonChiTiet in hoaDon.ChiTietHoaDons)
                {
                    var subtotal = hoaDonChiTiet.MovieObj.Price * hoaDonChiTiet.SoLuong;
                    body.AppendFormat("{0} x {1} (subtotal: {2:c}", hoaDonChiTiet.SoLuong, hoaDonChiTiet.MovieObj.Title, subtotal);
                }
                body.AppendFormat("Total order value: {0:c}", hoaDon.TongTien).AppendLine("---").AppendLine("Ship to:").AppendLine(detail.Name).AppendLine(detail.Address).AppendLine(detail.Mobile.ToString());
                EmailServiceNew.SendEmail(new IdentityMessage()
                {
                    Destination = detail.Email,
                    Subject     = "New order submitted!",
                    Body        = body.ToString()
                });
                this.Session["HoaDon"] = null;
                return(View("CheckoutCompleted"));
            }
            else
            {
                return(View(new ShippingDetail()));
            }
        }
        public IHttpActionResult PutShippingDetail(int id, ShippingDetail shippingDetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != shippingDetail.ShippingID)
            {
                return(BadRequest());
            }

            db.Entry(shippingDetail).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ShippingDetailExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #16
0
        private ShippingDetail GetShippingDetailData(long shippingOptionId, long shippingAddressId)
        {
            IOrganizationRoleUserRepository organizationRoleUserRepository = new OrganizationRoleUserRepository();
            var addressRepository = IoC.Resolve <IAddressRepository>();

            var shippingDetail = new ShippingDetail
            {
                ShippingOption       = new ShippingOption(),
                DataRecorderMetaData =
                    new DataRecorderMetaData
                {
                    DataRecorderCreator =
                        organizationRoleUserRepository.GetOrganizationRoleUser(IoC.Resolve <ISessionContext>().UserSession.CurrentOrganizationRole.OrganizationRoleUserId)
                    ,
                    DateCreated  = DateTime.Now,
                    DateModified = DateTime.Now
                },
                Status          = ShipmentStatus.Processing,
                ShippingAddress = addressRepository.GetAddress(shippingAddressId)
            };
            var shippingOptionRepository = IoC.Resolve <IShippingOptionRepository>();
            var shippingOption           = shippingOptionRepository.GetById(shippingOptionId);

            shippingDetail.ShippingOption.Id = shippingOption.Id;
            shippingDetail.ActualPrice       = shippingOption.Price;

            return(shippingDetail);
        }
예제 #17
0
        public ShippingDetail GetShippingCharges(List <Cart> carts)
        {
            ShippingDetail detail = new ShippingDetail();

            double     maxCharge  = 0;
            List <int> productIds = new List <int>();

            foreach (var cart in carts)
            {
                productIds.Add(cart.ProductId);
            }

            foreach (var productId in productIds)
            {
                var shippingdetail = _context.ShippingDetail.Find(productId);

                if (maxCharge < shippingdetail.ShippingCharges)
                {
                    maxCharge = shippingdetail.ShippingCharges;
                }
            }

            detail.ShippingCharges = maxCharge;
            if (maxCharge == 0)
            {
                detail.IsFree = true;
            }
            else
            {
                detail.IsFree = false;
            }
            return(detail);
        }
        public ActionResult ShippingDetails(ShippingDetail shippingDetail)
        {
            if (ModelState.IsValid)
            {
                var cart = _cartSessionService.GetCart();
                if (_cartService.List(cart).Count <= 0)
                {
                    return(RedirectToAction("Index", "Product"));
                }
                if (User.Identity.IsAuthenticated)
                {
                    var user = User.FindFirst(ClaimTypes.NameIdentifier);
                    shippingDetail.UserId = user.Value;

                    shippingDetail.ShippingId = _cartService.GetAdress(user.Value).ShippingId;
                }



                SaveOrder(cart, shippingDetail);
                TempData.Add("message", "Başarılı");
                return(View("Completed"));
            }

            return(RedirectToAction("ShippingDetails"));
        }
예제 #19
0
        private String getShippingDetailsJson()
        {
            ShippingDetail shippingDetails = new ShippingDetail();

            shippingDetails                            = new ShippingDetail();
            shippingDetails.homeAddress                = new Address();
            shippingDetails.homeAddress.country        = "country";
            shippingDetails.homeAddress.streetAddress1 = "StAddr1";
            shippingDetails.homeAddress.streetAddress2 = "StAddr2";
            shippingDetails.homeAddress.streetAddress3 = "StAddr3";
            shippingDetails.homeAddress.zip            = "zip";
            shippingDetails.homeAddress.city           = "city";

            //shippingDetails.officeAddress = new Address();
            //shippingDetails.officeAddress.country = "country";
            //shippingDetails.officeAddress.streetAddress1 = "StAddr1" ;
            //shippingDetails.officeAddress.streetAddress2 = "StAddr2";
            //shippingDetails.officeAddress.streetAddress3 = "StAddr3" ;
            //shippingDetails.officeAddress.zip = "zip" ;
            //shippingDetails.officeAddress.city = "city";

            var json = JsonConvert.SerializeObject(shippingDetails);

            return(json);
        }
예제 #20
0
        //[HttpPost]
        public async Task <IActionResult> Checkout(ShippingDetail detail, HoaDon hoaDon)
        {
            string cookie = Request.Cookies[CartId];

            hoaDon = _context.HoaDons.Include(x => x.ChiTietHoaDons).ThenInclude(x => x.MovieObj).FirstOrDefault(x => x.MaHoaDonTam == cookie);
            //var hoaDon = HttpContext.Session.Get<HoaDon>("HoaDon");
            if (hoaDon.ChiTietHoaDons.Count() == 0)
            {
                ModelState.AddModelError("", "Sorry, your cart is empty!");
            }
            if (ModelState.IsValid)
            {
                StringBuilder body = new StringBuilder()
                                     .AppendLine("A new order has been submitted")
                                     .AppendLine("---")
                                     .AppendLine("Items:")
                                     .AppendLine("");
                foreach (var hoaDonChiTiet in hoaDon.ChiTietHoaDons)
                {
                    var subtotal = hoaDonChiTiet.MovieObj.Price * hoaDonChiTiet.SoLuong;
                    body.AppendFormat("{0} x {1} (subtotal: {2:c})", hoaDonChiTiet.SoLuong,
                                      hoaDonChiTiet.MovieObj.Title,
                                      subtotal);
                    body.AppendLine("");
                }
                body.AppendFormat("Total order value: {0:c}", hoaDon.TongTien)
                .AppendLine("---")
                .AppendLine("Ship to:")
                .AppendLine(detail.Name)
                .AppendLine(detail.Address)
                .AppendLine(detail.Mobile.ToString())
                .AppendLine("");
                body.AppendFormat("Ngày giao hàng: {0}", detail.ReleaseDate);

                var message = new MimeMessage();
                message.From.Add(new MailboxAddress("nguyen luan", "*****@*****.**"));
                message.To.Add(new MailboxAddress("NGUYEN PHUC LUAN", detail.Email));
                message.Subject = "Test email shipping detail";
                message.Body    = new TextPart("plain")
                {
                    Text = body.ToString()
                };
                using (var client = new SmtpClient())
                {
                    client.Connect("smtp.gmail.com", 587, false);
                    client.Authenticate("*****@*****.**", "NguyenPhucLuan@0988004673");
                    client.Send(message);
                    client.Disconnect(true);
                }
                _context.ShippingDetails.Add(detail);
                await _context.SaveChangesAsync();

                return(View("CheckoutCompleted", detail));
            }
            else
            {
                return(View(new ShippingDetail()));
            }
        }
예제 #21
0
        //PLACE ORDER--LAST STEP
        public ActionResult PlaceOrder(FormCollection getCheckoutDetails)
        {
            var shpID   = Guid.NewGuid();
            var payID   = Guid.NewGuid();
            var orderID = Guid.NewGuid();

            var shpDetails = new ShippingDetail();

            shpDetails.ShippingID = shpID;
            shpDetails.FirstName  = getCheckoutDetails["FirstName"];
            shpDetails.LastName   = getCheckoutDetails["LastName"];
            shpDetails.Email      = getCheckoutDetails["Email"];
            shpDetails.Mobile     = getCheckoutDetails["Mobile"];
            shpDetails.Address    = getCheckoutDetails["Address"];
            shpDetails.Province   = getCheckoutDetails["Province"];
            shpDetails.City       = getCheckoutDetails["City"];
            shpDetails.PostalCode = getCheckoutDetails["PostCode"];
            db.ShippingDetails.Add(shpDetails);
            db.SaveChanges();

            var o = new Transaction();

            o.TransactionID   = orderID;
            o.ConsumerID      = TempShpData.UserID.ToString();
            o.CashChannel     = (CashChannelType)Convert.ToInt32(getCheckoutDetails["PaymentMethod"]);
            o.ShippingID      = shpID;
            o.TotalAmount     = Convert.ToInt32(getCheckoutDetails["totalAmount"]);
            o.TransactionDate = DateTime.Now;
            db.Transactions.Add(o);
            db.SaveChanges();

            foreach (var OD in TempShpData.items)
            {
                OD.TransactionDetailID = Guid.NewGuid();
                OD.Transaction         = db.Transactions.Find(orderID);
                OD.Product             = db.Products.Find(OD.ProductID);
                db.TransactionDetails.Add(OD);
                db.SaveChanges();
            }

            // SEND MESSAGE TO TOTEM
            //serviceClient = ServiceClient.CreateFromConnectionString(connectionString);
            //var commandMessage = new Microsoft.Azure.Devices.Message(Encoding.ASCII.GetBytes("Cloud to device message."));
            //serviceClient.SendAsync("raspberry", commandMessage);

            // Invoke the direct method on the device, passing the payload
            serviceClient = ServiceClient.CreateFromConnectionString(connectionString);
            var methodInvocation = new CloudToDeviceMethod("stop")
            {
                ResponseTimeout = TimeSpan.FromSeconds(30)
            };

            methodInvocation.SetPayloadJson("10");

            // Invoke the direct method asynchronously and get the response from the simulated device.
            var response = serviceClient.InvokeDeviceMethodAsync("raspberry", methodInvocation);

            return(RedirectToAction("Index", "ThankYou"));
        }
예제 #22
0
        public ActionResult DeleteConfirmed(int id)
        {
            ShippingDetail shippingDetail = db.ShippingDetails.Find(id);

            db.ShippingDetails.Remove(shippingDetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #23
0
        public IActionResult Delete(ShippingDetail shippingDetail)
        {
            _dBaseTechProduct.CarteLine.RemoveRange(_dBaseTechProduct.CarteLine.Where(e => e.ShippingDetailid == shippingDetail.id));
            _dBaseTechProduct.dbOrders.Remove(shippingDetail);
            _dBaseTechProduct.SaveChanges();

            return(RedirectToAction("Index", "Order"));
        }
예제 #24
0
        public void AddItem(IOrderable itemToOrder, int quantity, long forOrganizationRoleUserId,
                            long dataRecorderCreatorId, SourceCode sourceCode, EventCustomer eventCustomer,
                            ShippingDetail shippingDetail, OrderStatusState orderStatusState, long?sourceId = null)
        {
            if (sourceId == null && (itemToOrder is EventPackage || itemToOrder is EventTest))
            {
                var customerId = forOrganizationRoleUserId;
                if (itemToOrder is EventTest)
                {
                    var preApprovedTestList = _preApprovedTestRepository.GetByCustomerId(customerId).Select(x => x.TestId);
                    if (preApprovedTestList.Contains(((EventTest)itemToOrder).TestId))
                    {
                        sourceId = (long)OrderSource.PreApproved;
                    }
                }
                else if (itemToOrder is EventPackage)
                {
                    var preApprovedPackageList = _preApprovedPackageRepository.GetByCustomerId(customerId).Select(x => x.PackageId);
                    if (preApprovedPackageList.Contains(((EventPackage)itemToOrder).PackageId))
                    {
                        sourceId = (long)OrderSource.PreApproved;
                    }
                }
                if (sourceId == null)
                {
                    var oru = _organizationRoleUserRepository.GetOrganizationRoleUser(dataRecorderCreatorId);
                    if (oru.RoleId == (long)Roles.FranchiseeAdmin)
                    {
                        sourceId = (long)OrderSource.Admin;
                    }
                    else if (oru.RoleId == (long)Roles.CallCenterRep)
                    {
                        sourceId = (long)OrderSource.CallCenter;
                    }
                    else if (oru.RoleId == (long)Roles.Technician)
                    {
                        sourceId = (long)OrderSource.Technician;
                    }
                    else if (oru.RoleId == (long)Roles.NursePractitioner)
                    {
                        sourceId = (long)OrderSource.NursePractioner;
                    }
                }
            }


            OrderDetail orderDetail = _orderDetailFactory.CreateNewOrderDetail(itemToOrder, quantity,
                                                                               forOrganizationRoleUserId,
                                                                               dataRecorderCreatorId,
                                                                               sourceCode, eventCustomer, shippingDetail, sourceId);

            orderDetail.OrderItemStatus = _orderItemStatusFactory.CreateOrderItemStatus(itemToOrder.OrderItemType,
                                                                                        (int)orderStatusState);

            var pair = new OrderedPair <OrderDetail, IOrderable>(orderDetail, itemToOrder);

            _lineItems.Add(pair);
        }
예제 #25
0
        public async Task <ActionResult> DeleteConfirmed(string id)
        {
            ShippingDetail shippingDetail = await db.ShippingDetails.FindAsync(id);

            db.ShippingDetails.Remove(shippingDetail);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #26
0
 public IActionResult Complete(ShippingDetail shippingDetail)
 {
     if (!ModelState.IsValid)
     {
         return(View());
     }
     TempData.Add("message", "Your order has been successfully completed");
     _cartSessionHelper.Clear();
     return(RedirectToAction("Index", "Cart"));
 }
예제 #27
0
 public IActionResult Complete(ShippingDetail shippingDetail)
 {
     if (!ModelState.IsValid)
     {
         return(View());
     }
     TempData.Add("message", "Siparişiniz başarıyla tamamlandı.");
     cartSessionHelper.Clear();
     return(RedirectToAction("Index", "Cart"));
 }
예제 #28
0
 public IActionResult Complete(ShippingDetail shippingDetail)
 {
     if (!ModelState.IsValid)
     {
         return(View());
     }
     ShowInlineMessage("Sipiraşiniz başarı ile teslim edildi.", MessageType.Success);
     _cartSessionHelper.Clear();
     return(RedirectToAction("Index", "Cart"));
 }
예제 #29
0
        public IResult Add(ShippingDetail shippingDetail, Cart cart)
        {
            decimal            totalPrice   = 0;
            var                now          = DateTime.Now;
            List <OrderDetail> orderDetails = new List <OrderDetail>();

            foreach (var cartLine in cart.CartLines)
            {
                totalPrice += cartLine.Quantity * cartLine.Product.UnitPrice;
                orderDetails.Add(new OrderDetail
                {
                    ProductId = cartLine.Product.ProductId,
                    UnitPrice = cartLine.Product.UnitPrice,
                    Quantity  = (short)cartLine.Quantity
                });
            }
            Random r = new Random();
            var    trackingNumber = r.Next(111111, 1999999999);
            var    order          = new Order
            {
                ShippingDetailId = shippingDetail.ShippingDetailId,
                CustomerId       = shippingDetail.CustomerId,
                Delivered        = false,
                OrderDate        = now,
                Price            = totalPrice,
                ShippedDate      = now,
                TrackingNumber   = trackingNumber
            };

            try
            {
                _orderDal.Add(order);
                Thread.Sleep(100);
                var orderId = _orderDal.Get(o => o.CustomerId == shippingDetail.CustomerId &&
                                            o.ShippingDetailId == shippingDetail.ShippingDetailId &&
                                            o.Price == totalPrice &&
                                            o.TrackingNumber == trackingNumber).OrderId;
                foreach (var orderDetail in orderDetails)
                {
                    orderDetail.OrderId = orderId;
                    _orderDetailDal.Add(orderDetail);
                }

                foreach (var cartLine in cart.CartLines)
                {
                    _productService.Sell(cartLine.Product.ProductId, cartLine.Quantity);
                }

                return(new SuccessResult());
            }
            catch (Exception)
            {
                return(new ErrorResult(Messages.ErrorWhileAddingEntity));
            }
        }
예제 #30
0
        public void ProcessOrder(Cart cart, ShippingDetail shippingDetail)
        {
            using (var smtpClient = new SmtpClient())
            {
                smtpClient.EnableSsl             = emailSettings.UseSsl;
                smtpClient.Host                  = emailSettings.ServerName;
                smtpClient.Port                  = emailSettings.ServerPort;
                smtpClient.UseDefaultCredentials = false;
                smtpClient.Credentials           = new NetworkCredential(
                    emailSettings.UserName, emailSettings.Password);

                if (emailSettings.WriteAsFile)
                {
                    smtpClient.DeliveryMethod          = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                    smtpClient.PickupDirectoryLocation = emailSettings.FileLocation;
                    smtpClient.EnableSsl = false;
                }
                StringBuilder body = new StringBuilder()
                                     .Append("You have a new order:")
                                     .AppendLine("OrderId: " + shippingDetail.OrderId)
                                     .AppendLine("##################")
                                     .AppendLine("Items:");
                foreach (var line in cart.LinesCollection)
                {
                    var lineTotal = line.Product.Price * line.Quantity;
                    body.AppendFormat("{0} x {1} (subTotal: {2:c}", line.Product.Name, line.Quantity, lineTotal);
                }

                body.AppendFormat("Total order value:" /*{0:c}", cart.ComputeTotalValue()*/)
                .AppendLine("##########")
                .AppendLine("Ship to:")
                .AppendLine(shippingDetail.Name)
                .AppendLine(shippingDetail.Country)
                .AppendLine(shippingDetail.City)
                .AppendLine(shippingDetail.State)
                .AppendLine(shippingDetail.Street)
                .AppendLine(shippingDetail.StreetNumber)
                .AppendLine(shippingDetail.Zip);

                MailMessage mailMessage = new MailMessage(

                    emailSettings.MailFromAddress,
                    cart.Client?.ApplicationUser.Email ?? emailSettings.MailToAddress,
                    "You made a new order on BookStore.com",
                    body.ToString()
                    );

                if (emailSettings.WriteAsFile)
                {
                    mailMessage.BodyEncoding = Encoding.ASCII;
                }

                smtpClient.Send(mailMessage);
            }
        }
예제 #31
0
 private void detach_ShippingDetails(ShippingDetail entity)
 {
     this.SendPropertyChanging("ShippingDetails");
     entity.ShippingHeader = null;
 }
예제 #32
0
 private void attach_ShippingDetails(ShippingDetail entity)
 {
     this.SendPropertyChanging("ShippingDetails");
     entity.Item = this;
 }
예제 #33
0
 private void detach_ShippingDetails(ShippingDetail entity)
 {
     this.SendPropertyChanging("ShippingDetails");
     entity.ItemInstance = null;
 }