Esempio n. 1
0
        public ActionResult PaymentSuccess(Shippingdetail shippingDetails)
        {
            int memberid = Convert.ToInt32(User.FindFirstValue(ClaimTypes.Sid));
            IEnumerable <Tbl_Cart> carts = null;

            carts = Cart_repository.GetListByParameter(j => j.MemberId == memberid);
            foreach (var item in carts)
            {
                Tbl_ShippingDetails sd = new Tbl_ShippingDetails();
                sd.ProductId    = item.ProductId;
                sd.AmountPaid   = prod_repository.GetByParameter(i => i.ProductId == item.ProductId).PriceSale;
                sd.MemberId     = item.MemberId;
                sd.RecieverName = shippingDetails.RecieverName;
                sd.Mobile       = shippingDetails.Mobile;
                sd.AddressLine  = shippingDetails.Adress;
                sd.City         = shippingDetails.City;
                sd.State        = shippingDetails.State;
                sd.Country      = shippingDetails.Country;
                sd.ZipCode      = shippingDetails.ZipCode;
                sd.OrderId      = Guid.NewGuid().ToString();
                sd.PaymentType  = shippingDetails.PaymentType;
                sd.OrderDate    = shippingDetails.OrderDate;
                Shippingrepository.Insert(sd);
                Cart_repository.RemovebyWhereClause(i => i.MemberId == memberid && i.ProductId == item.ProductId);
                //prod_repository.UpdateByWhereClause(i => i.ProductId==item.ProductId, (j => j. = 3));
            }
            return(RedirectToAction("Orders"));
        }
Esempio n. 2
0
 public ActionResult ShippingDetails(Tbl_ShippingDetails tbl, HttpPostedFileBase file)
 {
     if (ModelState.IsValid)
     {
         _unitOfWork.GetRepositoryInstance <Tbl_ShippingDetails>().Add(tbl);
         return(RedirectToAction("ShippingDetails"));
     }
     return(View(tbl));
 }
Esempio n. 3
0
        /// <summary>
        /// Payment Success
        /// </summary>
        /// <param name="shippingDetails"></param>
        /// <returns></returns>
        public ActionResult PaymentSuccess(ShippingDetails shippingDetails)
        {
            Tbl_ShippingDetails sd = new Tbl_ShippingDetails();

            sd.MemberId    = memberId;
            sd.AddressLine = shippingDetails.Address;
            sd.City        = shippingDetails.City;
            sd.State       = shippingDetails.State;
            sd.Country     = shippingDetails.Country;
            sd.ZipCode     = shippingDetails.ZipCode;
            sd.OrderId     = Guid.NewGuid().ToString();
            sd.AmountPaid  = shippingDetails.TotalPrice;
            sd.PaymentType = shippingDetails.PaymentType;
            _unitOfWork.GetRepositoryInstance <Tbl_ShippingDetails>().Add(sd);
            _unitOfWork.GetRepositoryInstance <Tbl_Cart>().UpdateByWhereClause(i => i.MemberId == memberId && i.CartStatusId == 1, (j => j.CartStatusId = 3));
            _unitOfWork.SaveChanges();
            if (!string.IsNullOrEmpty(Request["CartIds"]))
            {
                int[] cartIdsToUpdate = Request["CartIds"].Split(',').Select(Int32.Parse).ToArray();
                _unitOfWork.GetRepositoryInstance <Tbl_Cart>().UpdateByWhereClause(i => cartIdsToUpdate.Contains(i.CartId), (j => j.ShippingDetailId = sd.ShippingDetailId));
                _unitOfWork.SaveChanges();
            }
            return(View(sd));
        }
Esempio n. 4
0
        public ActionResult CreateOrder(CreateOrderViewModel orderViewModel)
        {
            if (orderViewModel != null && ModelState.IsValid)
            {
                dbMyOnlineShoppingEntities db = new dbMyOnlineShoppingEntities();
                var mem         = _unitOfWork.GetRepositoryInstance <Tbl_Members>().GetAllRecords();
                var maxMemberId = 0;

                foreach (var item in mem)
                {
                    if (item.MemberId > maxMemberId)
                    {
                        maxMemberId = item.MemberId + 1;
                    }
                }
                Tbl_Members person = new Tbl_Members();
                person.FristName  = orderViewModel.Member.FristName;
                person.LastName   = orderViewModel.Member.LastName;
                person.MemberId   = maxMemberId;
                person.CreatedOn  = DateTime.Now;
                person.EmailId    = orderViewModel.Member.EmailId;
                person.IsActive   = true;
                person.IsDelete   = false;
                person.Password   = "******";
                person.ModifiedOn = DateTime.Now;
                _unitOfWork.GetRepositoryInstance <Tbl_Members>().Add(person);


                var shippingDet = _unitOfWork.GetRepositoryInstance <Tbl_ShippingDetails>().GetAllRecords();
                var maxShipId   = 0;
                foreach (var item in shippingDet)
                {
                    if (item.ShippingDetailId > maxShipId)
                    {
                        maxShipId = item.ShippingDetailId + 1;
                    }
                }

                var orders     = _unitOfWork.GetRepositoryInstance <Tbl_Orders>().GetAllRecords();
                var maxOrderId = 0;
                foreach (var item in orders)
                {
                    if (item.OrderId > maxOrderId)
                    {
                        maxOrderId = item.OrderId + 1;
                    }
                }

                Tbl_ShippingDetails shippingDetails = new Tbl_ShippingDetails();
                shippingDetails.ShippingDetailId = maxShipId;
                shippingDetails.Adress           = orderViewModel.ShippingDetails.Adress;
                shippingDetails.City             = orderViewModel.ShippingDetails.City;
                shippingDetails.ZipCode          = orderViewModel.ShippingDetails.ZipCode;
                shippingDetails.Country          = orderViewModel.ShippingDetails.Country;
                shippingDetails.State            = orderViewModel.ShippingDetails.State;
                shippingDetails.MemberId         = maxMemberId;
                string AmountPaid = Session["SesTotal"].ToString();
                shippingDetails.AmountPaid = Decimal.Parse(AmountPaid);
                orderViewModel.ShippingDetails.AmountPaid = shippingDetails.AmountPaid;
                shippingDetails.PaymentType = "Cash";
                _unitOfWork.GetRepositoryInstance <Tbl_ShippingDetails>().Add(shippingDetails);

                Tbl_Orders order = new Tbl_Orders();
                order.MemberId          = person.MemberId;
                order.OrderStatus       = "First Step";
                order.ShippingDetailsId = shippingDetails.ShippingDetailId;
                order.OrderId           = maxOrderId;

                _unitOfWork.GetRepositoryInstance <Tbl_Orders>().Add(order);

                List <Item> cart = (List <Item>)Session["cart"];
                foreach (var item in cart)
                {
                    if (item.Quantity > 0)
                    {
                        Tbl_OrderProducts orderProducts = new Tbl_OrderProducts();
                        orderProducts.ProductId = item.Product.ProductId;
                        orderProducts.Quantity  = item.Quantity;
                        orderProducts.OrderId   = order.OrderId;
                        _unitOfWork.GetRepositoryInstance <Tbl_OrderProducts>().Add(orderProducts);
                    }
                }

                //The string with the products that will be sent to the customer
                string products = "------------------------------------------------------------------------------------------\n" +
                                  "|Qty.x Price|                  Name                                                       \n" +
                                  "------------------------------------------------------------------------------------------\n"
                ;

                foreach (Item item in (List <Item>)Session["cart"])
                {
                    int lineTotal = Convert.ToInt32(item.Quantity * item.Product.Price);

                    string product = "|   " + item.Quantity + " x " + item.Product.Price + "  |  " + item.Product.ProductName + ":\n " +
                                     "------------------------------------------------------------------------------------------\n";
                    products = string.Concat(products, product);
                }

                Gmail.SendEmail(orderViewModel, products);
                return(RedirectToAction("PayOrder", "Home"));
            }

            //if the Model was not valid render again the page
            return(RedirectToAction("CreateOrder", "Home"));
        }