예제 #1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (currentmember == null)
     {
         link_login.InnerText = "ورود";
         link_register.Text   = "ثبت نام";
     }
     else
     {
         link_login.InnerText = currentmember.Name.ToString();
         link_register.Text   = "خروج";
         //link_register.
     }
     //////Show Cart Details
     if (Session["CartId"] != null && Session["Cart"] != null)
     {
         int            number = 0;
         CartCollection temp   = (CartCollection)Session["Cart"];
         for (int i = 0; i < temp.Count; i++)
         {
             number += (int)temp[i].Quantity;
         }
         Link_cart.Text = "سبد کالا(" + number.ToString() + "مورد)";
     }
     else
     {
         Link_cart.Text = "سبد کالا(0 مورد)";
     }
 }
예제 #2
0
        public CompleteOrder SaveCurrentOrderInDb(CartCollection cartCollection, ShipmentInfo shipmentInfo)
        {
            if (shipmentInfo.ShipmentOption == null)
            {
                Console.WriteLine("empty shipment option");
            }

            var currentOrder = GetCurrentCompleteOrder(cartCollection, shipmentInfo);
            var baseOrder    = BaseOrder.CreateBaseOrder(currentOrder);

            baseOrder = _baseOrderRepository.SaveAndFlush(baseOrder);

            currentOrder.OrderId = baseOrder.Id;

            var orderEventList = OrderEvent.createOrderEventList(currentOrder);

            _orderEventRepository.SaveAll(orderEventList);
            if (VerifyOrder(orderEventList))
            {
                baseOrder.OrderStatus = OrderProcessingStatus.Verified.ToString();
            }
            else
            {
                baseOrder.OrderStatus = OrderProcessingStatus.VerificationFailed.ToString();
            }

            baseOrder = _baseOrderRepository.Update(baseOrder);

            return(currentOrder);
        }
예제 #3
0
        private CartCollection GetBaskedSetFromCookie(string cookieName)
        {
            var basketSet = new CartCollection();
            var itemsJson = _httpContextAccessor.HttpContext.Request.Cookies[cookieName];

            if (!string.IsNullOrEmpty(itemsJson))
            {
                var itemsInCart = JsonConvert.DeserializeObject <List <string> >(itemsJson);

                foreach (var item in itemsInCart)
                {
                    if (int.TryParse(item, out var eventId))
                    {
                        var temp = _eventRepository.FindById(eventId);
                        if (temp != null)
                        {
                            basketSet.AddToBasket(temp);
                        }
                    }
                }
            }

            foreach (var cartPosition in basketSet.BasketPositions)
            {
                cartPosition.CurrentlyAvailableTickets = cartPosition.Event.NumberOfAvailableTickets -
                                                         _orderEventRepository.CountSoldTickets(cartPosition.Event.Id);
            }

            return(basketSet);
        }
예제 #4
0
        private CompleteOrder GetCurrentCompleteOrder(CartCollection cartCollection, ShipmentInfo shipmentInfo)
        {
//            var shipmentInfo = GetShipmentInfoFromSession();
//            var basket = _basketService.GetItemsInBasket();
            var currentUser = _userService.GetCurrentUser();

            return(new CompleteOrder(currentUser, shipmentInfo, cartCollection));
        }
예제 #5
0
 public CustomerController(UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager, RoleManager <IdentityRole> roleManager, IRepositoryWrapper context, IConfiguration configuration)
 {
     CartCollection = new CartCollection();
     _userManager   = userManager;
     _signInManager = signInManager;
     _roleManager   = roleManager;
     this.context   = context;
     _configuration = configuration;
 }
예제 #6
0
        private void SaveEventsIdInCookie(CartCollection cartCollection, string cookieName)
        {
            _httpContextAccessor.HttpContext.Response.Cookies.Delete(cookieName);
            var           itemsInCart = JsonConvert.SerializeObject(cartCollection.GetEventsIdList());
            CookieOptions option      = new CookieOptions();

            option.Expires = DateTime.Now.AddDays(30);
            _httpContextAccessor.HttpContext.Response.Cookies.Append(cookieName, itemsInCart, option);
        }
예제 #7
0
        public IActionResult OnGet()
        {
            CartCollection = _basketService.GetOrderItems();
            ShipmentInfo   = _orderService.GetShipmentInfoFromSession() ?? new ShipmentInfo();

            var initResult = InitializeLayout();

            return(initResult is RedirectResult ? initResult : Page());
        }
예제 #8
0
 private void ADDToCart(string productId)
 {
     if (Session["User"] != null)
     {
         if (Session["CartId"] == null)
         {
             CartCollection carts   = new CartCollection();
             Cart           newcart = new Cart();
             Session["CartId"] = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +
                                 DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() +
                                 DateTime.Now.Millisecond.ToString();
             ProductCollection temp = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                                                            productId));
             newcart.ProductId = temp[0].ProductId;
             newcart.Cost      = temp[0].Price;
             newcart.Date      = DateTime.Now.ToString();
             newcart.CartId    = Session["CartId"].ToString();
             newcart.UserId    = currentmember.UserId;
             newcart.Quantity  = 1;
             carts.Add(newcart);
             Session["Cart"] = carts;
         }
         else
         {
             CartCollection    carts   = (CartCollection)Session["Cart"];
             Cart              newcart = new Cart();
             ProductCollection temp    = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                                                            productId));
             //carts.ReadList(Cruder.Core.Criteria.NewCriteria(Cart.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
             //    temp[0].ProductId) & Cruder.Core.Criteria.NewCriteria(Cart.Columns.CartId,
             //    Cruder.Core.CriteriaOperators.Like, Session["CartId"].ToString()));
             //if (carts.Count != 0)
             //{
             //    carts[0].Quantity += 1;
             //    carts.UpdateList(true);
             //}
             //else
             //{
             newcart.ProductId = temp[0].ProductId;
             newcart.Cost      = temp[0].Price;
             newcart.Date      = DateTime.Now.ToString();
             newcart.CartId    = Session["CartId"].ToString();
             newcart.UserId    = currentmember.UserId;
             newcart.Quantity  = 1;
             carts.Add(newcart);
             //}
             Session["Cart"] = carts;
         }
     }
     else
     {
         //Session["URLReferer"] = "Default.aspx";
         Response.Redirect("Login.aspx");
     }
 }
예제 #9
0
        public IActionResult OnGet()
        {
            var initResult = InitializeLayout();

//            ItemsInCartCount = "?";
            if (initResult is RedirectResult)
            {
                return(initResult);
            }

            CartCollection = _basketService.GetItemsInBasket();
            return(Page());
        }
예제 #10
0
파일: Cart.cs 프로젝트: ThreeHeadz/Bam.Net
 public ActionResult Save(Bam.Net.Data.Tests.Cart[] values)
 {
     try
     {
         CartCollection saver = new CartCollection();
         saver.AddRange(values);
         saver.Save();
         return(Json(new { Success = true, Message = "", Dao = "" }));
     }
     catch (Exception ex)
     {
         return(GetErrorResult(ex));
     }
 }
예제 #11
0
 private void ADDToCart(string productId)
 {
     if (Session["User"] != null)
     {
         if (Session["CartId"] == null)
         {
             CartCollection carts   = new CartCollection();
             Cart           newcart = new Cart();
             Session["CartId"] = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +
                                 DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() +
                                 DateTime.Now.Millisecond.ToString();
             ProductCollection temp = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                                                            productId));
             newcart.ProductId = temp[0].ProductId;
             newcart.Cost      = temp[0].Price;
             newcart.Date      = DateTime.Now.ToString();
             newcart.CartId    = Session["CartId"].ToString();
             newcart.UserId    = currentmember.UserId;
             newcart.Quantity  = 1;
             carts.Add(newcart);
             Session["Cart"] = carts;
         }
         else
         {
             CartCollection    carts   = (CartCollection)Session["Cart"];
             Cart              newcart = new Cart();
             ProductCollection temp    = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                                                            productId));
             newcart.ProductId = temp[0].ProductId;
             newcart.Cost      = temp[0].Price;
             newcart.Date      = DateTime.Now.ToString();
             newcart.CartId    = Session["CartId"].ToString();
             newcart.UserId    = currentmember.UserId;
             newcart.Quantity  = 1;
             carts.Add(newcart);
             Session["Cart"] = carts;
         }
     }
     else
     {
         Response.Redirect("Login.aspx");
     }
 }
예제 #12
0
        protected override void Load(ContainerBuilder builder)
        {
            //Instantiate the Client
            builder.RegisterType <AzureDocClient>().As <IAzureDocClient>().SingleInstance();

            //Instantiate the DB
            builder.Register <AzureDocDatabase>(c =>
            {
                var docClient = c.Resolve <IAzureDocClient>();
                docClient.InitializeClient(); //Initialize the client before IAzureDocDatabase is available

                return(new AzureDocDatabase(docClient, c.Resolve <DocumentDbConfig>()));
            }).As <IAzureDocDatabase>().SingleInstance();

            //Register a Task<IAzureDocDatabase> that will run it's InitializeDatabaseAsync method
            builder.Register(c => c.Resolve <IAzureDocDatabase>().InitializeDatabaseAsync());

            //Register a Task<ProductCollection> that will resolve Task<IAzureDocDatabase> and Initialize the collection
            builder.Register(async c =>
            {
                var collection = new ProductCollection(await c.Resolve <Task <IAzureDocDatabase> >(), ProductCollectionName);
                await collection.InitializeAsync();

                return(collection);
            });

            //Register a Task<CartCollection> that will resolve Task<IAzureDocDatabase> and Initialize the collection
            builder.Register(async c =>
            {
                var collection = new CartCollection(await c.Resolve <Task <IAzureDocDatabase> >(), CartCollectionName);
                await collection.InitializeAsync();

                return(collection);
            });

            builder.Register(c => c.Resolve <Task <ProductCollection> >().Result).As <IProductCollection>().SingleInstance();
            builder.Register(c => c.Resolve <Task <CartCollection> >().Result).As <ICartCollection>().SingleInstance();

            builder.RegisterType <ProductStorageManager>().As <IProductStorage>().SingleInstance();
            builder.RegisterType <CartStorageManager>().As <ICartStorage>().SingleInstance();
        }
예제 #13
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Session["User"] != null)
     {
         CartCollection lists = (CartCollection)Session["Cart"];
         if (Session["Cart"] != null)
         {
             lbl_CartId.Text = "کد سبد کالا:" + lists[0].CartId;
             if (ViewState["CartDT"] == null)
             {
                 CartDT.Columns.Add("کد کالا", System.Type.GetType("System.String"));
                 CartDT.Columns.Add("نام کالا", System.Type.GetType("System.String"));
                 CartDT.Columns.Add("قیمت واحد", System.Type.GetType("System.String"));
                 CartDT.Columns.Add("تعداد", System.Type.GetType("System.Int32"));
                 CartDT.Columns.Add("مبلغ نهایی", System.Type.GetType("System.Int32"));
                 Fillgrid(lists);
             }
             else
             {
                 CartDT = (DataTable)ViewState["CartDT"];
                 Fillgrid(lists);
             }
             //GridView1.DataSource = lists;
             GridView1.DataSource = CartDT;
             GridView1.DataBind();
             ViewState["CartDT"] = CartDT;
             lbl_Totalcost.Text  = "جمع خرید شما:" + totalcost.ToString();
         }
         else
         {
             lbl_error.Text = "سبد کالا شما خالی می باشد!";
         }
     }
     else
     {
         Response.Redirect("Login.aspx");
         Session["URLReferer"] = "Login.aspx";
     }
 }
예제 #14
0
    protected void btn_submit_Click(object sender, EventArgs e)
    {
        CartCollection lists = (CartCollection)Session["Cart"];

        for (int i = 0; i < lists.Count; i++)
        {
            lists[i].Create();
        }
        Invoice inv = new Invoice();

        inv.CartId        = lists[0].CartId;
        inv.UserId        = currentmember.UserId;
        inv.TotalCost     = totalcost.ToString();
        inv.Date          = DateTime.Now.ToShortDateString();
        inv.User_Submit   = true;
        inv.Admin_Submit  = false;
        inv.PayOff_Submit = false;
        inv.Create();
        Session["Cart"]   = null;
        Session["CartId"] = null;
        Response.Redirect("SubmitCart.aspx");
    }
예제 #15
0
 private void Fillgrid(CartCollection lists)
 {
     for (int i = 0; i < lists.Count; i++)
     {
         int     cost   = 0;
         int     number = 0;
         int     price  = 0;
         Product temp   = Product.callbackProductName(lists[i].ProductId);
         price         = int.Parse(temp.Price);
         number        = int.Parse(lists[i].Quantity.ToString());
         cost          = price * number;
         CartDR        = CartDT.NewRow();
         CartDR[0]     = lists[i].ProductId;
         CartDR[1]     = temp.ProductName;
         CartDR[2]     = temp.Price;
         CartDR[3]     = lists[i].Quantity;
         CartDR[4]     = cost;
         lists[i].Cost = cost.ToString();
         totalcost    += cost;
         CartDT.Rows.Add(CartDR);
     }
 }
예제 #16
0
 private void Fillgrid(CartCollection lists)
 {
     for (int i = 0; i < lists.Count; i++)
     {
         int cost = 0;
         int number = 0;
         int price = 0;
         Product temp = Product.callbackProductName(lists[i].ProductId);
         price = int.Parse(temp.Price);
         number = int.Parse(lists[i].Quantity.ToString());
         cost = price * number;
         CartDR = CartDT.NewRow();
         CartDR[0] = lists[i].ProductId;
         CartDR[1] = temp.ProductName;
         CartDR[2] = temp.Price;
         CartDR[3] = lists[i].Quantity;
         CartDR[4] = cost;
         lists[i].Cost = cost.ToString();
         totalcost += cost;
         CartDT.Rows.Add(CartDR);
     }
 }
예제 #17
0
 private void ADDToCart(string productId)
 {
     if (Session["User"] != null)
     {
         if (Session["CartId"] == null)
         {
             CartCollection carts = new CartCollection();
             Cart newcart = new Cart();
             Session["CartId"] = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +
                 DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() +
                 DateTime.Now.Millisecond.ToString();
             ProductCollection temp = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                 productId));
             newcart.ProductId = temp[0].ProductId;
             newcart.Cost = temp[0].Price;
             newcart.Date = DateTime.Now.ToString();
             newcart.CartId = Session["CartId"].ToString();
             newcart.UserId = currentmember.UserId;
             newcart.Quantity = 1;
             carts.Add(newcart);
             Session["Cart"] = carts;
         }
         else
         {
             CartCollection carts = (CartCollection)Session["Cart"];
             Cart newcart = new Cart();
             ProductCollection temp = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                 productId));
             //carts.ReadList(Cruder.Core.Criteria.NewCriteria(Cart.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
             //    temp[0].ProductId) & Cruder.Core.Criteria.NewCriteria(Cart.Columns.CartId,
             //    Cruder.Core.CriteriaOperators.Like, Session["CartId"].ToString()));
             //if (carts.Count != 0)
             //{
             //    carts[0].Quantity += 1;
             //    carts.UpdateList(true);
             //}
             //else
             //{
                 newcart.ProductId = temp[0].ProductId;
                 newcart.Cost = temp[0].Price;
                 newcart.Date = DateTime.Now.ToString();
                 newcart.CartId = Session["CartId"].ToString();
                 newcart.UserId = currentmember.UserId;
                 newcart.Quantity = 1;
                 carts.Add(newcart);
             //}
             Session["Cart"] = carts;
         }
     }
     else
     {
         //Session["URLReferer"] = "Default.aspx";
         Response.Redirect("Login.aspx");
     }
 }
예제 #18
0
 private void ADDToCart(string productId)
 {
     if (Session["User"] != null)
     {
         if (Session["CartId"] == null)
         {
             CartCollection carts = new CartCollection();
             Cart newcart = new Cart();
             Session["CartId"] = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +
                 DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() +
                 DateTime.Now.Millisecond.ToString();
             ProductCollection temp = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                 productId));
             newcart.ProductId = temp[0].ProductId;
             newcart.Cost = temp[0].Price;
             newcart.Date = DateTime.Now.ToString();
             newcart.CartId = Session["CartId"].ToString();
             newcart.UserId = currentmember.UserId;
             newcart.Quantity = 1;
             carts.Add(newcart);
             Session["Cart"] = carts;
         }
         else
         {
             CartCollection carts = (CartCollection)Session["Cart"];
             Cart newcart = new Cart();
             ProductCollection temp = new ProductCollection();
             temp.ReadList(Cruder.Core.Criteria.NewCriteria(Product.Columns.ProductId, Cruder.Core.CriteriaOperators.Equal,
                 productId));
             newcart.ProductId = temp[0].ProductId;
             newcart.Cost = temp[0].Price;
             newcart.Date = DateTime.Now.ToString();
             newcart.CartId = Session["CartId"].ToString();
             newcart.UserId = currentmember.UserId;
             newcart.Quantity = 1;
             carts.Add(newcart);
             Session["Cart"] = carts;
         }
     }
     else
     {
         Response.Redirect("Login.aspx");
     }
 }
        public async Task <IActionResult> AddToCart(CartItemDto cartItemDto)
        {
            var cartOrder = await _context.Cart.FirstOrDefaultAsync(c =>
                                                                    c.UserId == cartItemDto.UserId && c.Placed == false);

            var movie = await _context.Movies.SingleOrDefaultAsync(m => m.Id == cartItemDto.MovieId);

            float moviePrice = 0;

            if (movie == null)
            {
                return(NotFound("Requested movie does not exist"));
            }
            else
            {
                moviePrice = movie.MoviePrice;
            }

            if (cartOrder == null)
            {
                var cart = new Cart
                {
                    CartCollectionId = Guid.NewGuid().ToString(),
                    DateStamp        = DateTime.Now,
                    Placed           = false,
                    UserId           = cartItemDto.UserId,
                    TotalPrice       = moviePrice
                };
                var cartCollection = new CartCollection
                {
                    CartCollectionId = cart.CartCollectionId,
                    MovieId          = cartItemDto.MovieId
                };
                await _context.Cart.AddAsync(cart);

                await _context.CartCollection.AddAsync(cartCollection);

                await _context.SaveChangesAsync();
            }
            else
            {
                var cartCollectionItem = await _context.CartCollection.SingleOrDefaultAsync(cc =>
                                                                                            cc.CartCollectionId == cartOrder.CartCollectionId && cc.MovieId == cartItemDto.MovieId);

                if (cartCollectionItem != null)
                {
                    return(StatusCode(403, "Item already exists in cart"));
                }

                await _context.Cart.ForEachAsync(c => {
                    if (c.CartCollectionId == cartOrder.CartCollectionId)
                    {
                        c.TotalPrice += moviePrice;
                    }
                });

                var cartCollection = new CartCollection
                {
                    CartCollectionId = cartOrder.CartCollectionId,
                    MovieId          = cartItemDto.MovieId
                };

                await _context.CartCollection.AddAsync(cartCollection);

                await _context.SaveChangesAsync();
            }

            return(StatusCode(201));
        }
예제 #20
0
 public void SaveBasketInCookie(CartCollection cartCollection)
 {
     SaveEventsIdInCookie(cartCollection, ItemsInCartCookieName);
     SaveEventsIdInCookie(cartCollection.GetBasketWithCheckedPositions(), EventsInOrderCookieName);
 }