public OrderPlaceEditModel GetEventPackage(TempCart tempCart, long eventId, Roles role)
        {
            var model = new OrderPlaceEditModel();

            model = GetEventPackage(model, eventId, role, (tempCart != null && tempCart.CustomerId.HasValue ? tempCart.CustomerId.Value : 0), tempCart);

            //var defaultShippingId = model.AllShippingOptions != null && model.AllShippingOptions.Count() > 0
            //                            ? model.AllShippingOptions.OrderByDescending(m => m.Price).Last().
            //                            ShippingOptionId : 0;
            long defaultShippingId = model.AllShippingOptions != null && model.AllShippingOptions.Count() > 0 ? -1 : 0;

            if (tempCart != null)
            {
                model.SelectedPackageId        = tempCart.EventPackageId.HasValue ? tempCart.EventPackageId.Value : 0;
                model.SelectedShippingOptionId = tempCart.ShippingId.HasValue ? tempCart.ShippingId.Value : defaultShippingId;

                model.SelectedTestIds = !string.IsNullOrEmpty(tempCart.TestId)
                                            ? tempCart.TestId.Split(new[] { ',' }).Select(t => Convert.ToInt64(t.Trim()))
                                            : new long[0];

                model.SelectedProductIds = !string.IsNullOrEmpty(tempCart.ProductId)
                                            ? tempCart.ProductId.Split(new[] { ',' }).Select(t => Convert.ToInt64(t.Trim()))
                                            : new long[0];
            }
            else
            {
                model.SelectedShippingOptionId = defaultShippingId;
            }

            return(model);
        }
示例#2
0
 public ActionResult Login(string Username, string Password)
 {
     //if brought to this page without username or password input, login.
     if (Username == null)
     {
         ViewData["WrongPassword"] = false;
         return(View());
     }
     //if not, check if password is correct. If yes, succssfully login and create a session for customer
     else
     {
         //If password don't match username in database, incorrect, throw to login again.
         if (!Util.PasswordIsRight(Username, Password))
         {
             ViewData["WrongPassword"] = true;
             return(View());
         }
         //if successfully login, create sessionId for customer and send to shop. Using Session Object, do not need to pass Session around.
         else
         {
             //Creat and store Session in database and Session Object, for checking purposes
             string SessionId = Util.CreateSession(Username);
             //In new session, create a temporary cart for that session to use, mapped by SessionId
             Session[SessionId] = new TempCart();
             return(RedirectToAction("Gallery", "Shop", new { SessionId }));
         }
     }
 }
示例#3
0
        public ActionResult PrivateSearch(string invitationCode, string zipcode, long?customerId = null, string corpCode = "")
        {
            //string url;

            if (customerId.HasValue && customerId.Value > 0)
            {
                var guid = Guid.NewGuid().ToString();

                var tempCart = new TempCart
                {
                    CustomerId         = customerId,
                    ZipCode            = zipcode,
                    IsExistingCustomer = true,
                    InvitationCode     = invitationCode,
                    EntryPage          = Request.UrlReferrer.PathAndQuery,
                    ExitPage           = Request.UrlReferrer.PathAndQuery,
                    Guid        = guid,
                    DateCreated = DateTime.Now,
                    CorpCode    = corpCode,
                    Version     = 1
                };

                SaveTempCart(tempCart);

                //url = "/Scheduling/Online/LocationAndAppointmentSlot?guid=" + guid;
                return(RedirectToAction("LocationAndAppointmentSlot", "Online", new { Area = "Scheduling", guid = guid }));
            }
            else
            {
                //url = "/Scheduling/Online/LocationAndAppointmentSlot?InvitationCode=" + invitationCode + "&ZipCode=" + zipcode;
                return(RedirectToAction("LocationAndAppointmentSlot", "Online", new { Area = "Scheduling", InvitationCode = invitationCode, ZipCode = zipcode }));
            }

            //return Redirect(url);
        }
        public ActionResult List(int?ID)
        {
            TempCart tCart  = new TempCart();
            var      svCart = new CartService();

            RememberURL();
            if (!CheckIsLogin())
            {
                return(Redirect(res.Pageviews.PvMemberSignIn)); //Redirct กลับไปหน้า Login
            }
            else
            {
                CommonService svCommon = new CommonService();
                ViewBag.EnumServiceType = svCommon.SelectEnum(CommonService.EnumType.SearchByServiceType);
                GetStatusUser();

                #region SelectProduct
                var svProduct = new ProductService();
                var Products  = svProduct.SelectData <view_Product>("*", "ProductID = " + ID, null, 1, 0, false).First();
                int CompID    = Convert.ToInt32(Products.CompID);
                ViewBag.ProductDetail = Products;
                ViewBag.ProductID     = ID;
                #endregion
                AddTemp(Convert.ToString(ID));
                return(RedirectToAction("Index"));
            }
        }
示例#5
0
        public ActionResult Checkout(string SessionId)
        {
            if (!Util.SessionExist(SessionId))
            {
                return(RedirectToAction("Login", "Login"));
            }

            //get current time
            int      curUnix  = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
            Customer customer = Util.GetCustomerBySessionId(SessionId);

            //For each item in the cart, add to customer purchased under the user
            TempCart Cart = (TempCart)Session[SessionId];

            using (var db = new ShoppingCartDbContext())
            {
                foreach (CartItem item in Cart.Items)
                {
                    for (int i = 0; i < item.Quantity; i++)
                    {
                        CustomerPurchase purchase = new CustomerPurchase();
                        purchase.CustomerId     = customer.Id;
                        purchase.ProductId      = item.Id;
                        purchase.DatePurchased  = curUnix;
                        purchase.ActivationCode = Guid.NewGuid().ToString();
                        db.CustomerPurchase.Add(purchase);
                    }
                }
                db.SaveChanges();
            }

            //Cart has been checked out, remove old cart, reset cart and redirect to view purchase
            Session[SessionId] = new TempCart();
            return(RedirectToAction("MyPurchase", "ViewPurchase", new { SessionId }));
        }
示例#6
0
        public OnlineSchedulingProcessAndCartViewModel GetOnlineCart(TempCart tempCart)
        {
            var customer    = tempCart.CustomerId == null ? null : _customerRepository.GetCustomer(tempCart.CustomerId.Value);
            var appointment = tempCart.AppointmentId.HasValue
                                      ? _slotRepository.GetbyId(tempCart.AppointmentId.Value)
                                      : null;

            string sponsoredBy         = "";
            var    checkoutPhoneNumber = string.Empty;

            if (tempCart.EventId.HasValue)
            {
                var hospitalPartnerId = _hospitalPartnerRepository.GetHospitalPartnerIdForEvent(tempCart.EventId.Value);
                if (hospitalPartnerId > 0)
                {
                    var hospitalPartner =
                        _organizationRepository.GetOrganizationbyId(hospitalPartnerId);
                    sponsoredBy = hospitalPartner.Name;
                }
                var account = _corporateAccountRepository.GetbyEventId(tempCart.EventId.Value);
                if (account != null && account.CheckoutPhoneNumber != null && !string.IsNullOrWhiteSpace(PhoneNumber.ToNumber(account.CheckoutPhoneNumber.ToString())))
                {
                    checkoutPhoneNumber = account.CheckoutPhoneNumber.FormatPhoneNumber;
                }
            }

            return(_onlineSchedulingDataFactory.Create(tempCart, customer, appointment, sponsoredBy, checkoutPhoneNumber));
        }
示例#7
0
        public ActionResult Cart(string SessionId, string Id, string cmd)
        {
            if (!Util.SessionExist(SessionId))
            {
                return(RedirectToAction("Login", "Login"));
            }

            if (Id != null)
            {
                Product  product = Util.GetProductById(int.Parse(Id));
                CartItem item    = product.ConvertToCartItem();
                TempCart Cart    = (TempCart)Session[SessionId];
                if (cmd == "minus")
                {
                    Cart.Minus(item);
                }
                else if (cmd == "plus")
                {
                    Cart.Add(item);
                }
                Session[SessionId] = Cart;
            }
            ViewData["SessionId"] = SessionId;
            return(View());
        }
        public GoogleAnalyticsEnableReportingDataModel GetGoogleAnalyticsViewModel(TempCart tempCart)
        {
            if (tempCart == null || !tempCart.IsCompleted)
            {
                return(new GoogleAnalyticsEnableReportingDataModel());
            }

            var model = new GoogleAnalyticsEnableReportingDataModel();

            if (tempCart.EventPackageId.HasValue)
            {
                model.EventPackage = _eventPackageRepository.GetById(tempCart.EventPackageId.Value);
            }

            if (!string.IsNullOrEmpty(tempCart.TestId))
            {
                var testIdStrings = tempCart.TestId.Split(new[] { ',' });
                if (testIdStrings.Any())
                {
                    long id;
                    var  testIds = testIdStrings.Where(p => long.TryParse(p, out id)).Select(p => Convert.ToInt64(p)).ToArray();
                    if (testIds.Count() > 0)
                    {
                        model.EventTests = _eventTestRepository.GetbyIds(testIds);
                    }
                }
            }

            if (!string.IsNullOrEmpty(tempCart.ProductId))
            {
                var productIdStrings = tempCart.ProductId.Split(new[] { ',' });
                if (productIdStrings.Any())
                {
                    long id;
                    var  productIds = productIdStrings.Where(p => long.TryParse(p, out id)).Select(p => Convert.ToInt64(p)).ToArray();
                    if (productIds.Count() > 0)
                    {
                        model.Products = _productRepository.GetByIds(productIds);
                    }
                }
            }

            if (tempCart.ShippingId.HasValue && tempCart.ShippingId.Value > 0)
            {
                model.Shipping = _shippingOptionRepository.GetById(tempCart.ShippingId.Value).Price;
            }

            Order order = _orderRepository.GetOrder(tempCart.CustomerId.Value, tempCart.EventId.Value);

            model.TotalPrice = order.DiscountedTotal;

            model.CustomerId = tempCart.CustomerId.Value;

            var customer = _customerRepository.GetCustomer(tempCart.CustomerId.Value);

            model.Address = _addressService.GetAddress(customer.Address.Id);

            return(model);
        }
示例#9
0
        public EventCustomerOrderSummaryModel GetEventCustomerOrderSummaryModel(TempCart tempCart, OrderPlaceEditModel orderPlaceEditModel, SourceCodeApplyEditModel sourceCodeModel)
        {
            if (tempCart == null)
            {
                return(new EventCustomerOrderSummaryModel());
            }

            Event theEvent  = null;
            Host  eventHost = null;

            if (tempCart.EventId.HasValue)
            {
                theEvent  = _eventRepository.GetById(tempCart.EventId.Value);
                eventHost = _hostRepository.GetHostForEvent(tempCart.EventId.Value);
            }

            EventSchedulingSlot appointment = null;

            if (tempCart.AppointmentId.HasValue)
            {
                appointment = _slotRepository.GetbyId(tempCart.AppointmentId.Value);
            }

            EventPackage eventPackage = null;

            if (orderPlaceEditModel.SelectedPackageId > 0)
            {
                eventPackage = _eventPackageRepository.GetById(orderPlaceEditModel.SelectedPackageId);
            }

            IEnumerable <EventTest> eventTests = null;

            if (orderPlaceEditModel.SelectedTestIds != null && orderPlaceEditModel.SelectedTestIds.Count() > 0)
            {
                eventTests = _eventTestRepository.GetbyIds(orderPlaceEditModel.SelectedTestIds);
            }

            IEnumerable <ElectronicProduct> products = null;

            if (orderPlaceEditModel.SelectedProductIds != null && orderPlaceEditModel.SelectedProductIds.Count() > 0)
            {
                products = _productRepository.GetByIds(orderPlaceEditModel.SelectedProductIds);
            }

            ShippingOption shippingOption = null;

            if (orderPlaceEditModel.SelectedShippingOptionId > 0)
            {
                shippingOption = _shippingOptionRepository.GetById(orderPlaceEditModel.SelectedShippingOptionId);
            }

            Order order = null;

            if (tempCart.IsCompleted)
            {
                order = _orderRepository.GetOrder(tempCart.CustomerId.Value, tempCart.EventId.Value);
            }
            return(_eventCustomerSummaryModelFactory.Create(theEvent, eventHost, appointment, eventPackage, eventTests, products, shippingOption, sourceCodeModel, order, tempCart.ShippingId));
        }
示例#10
0
 public AppointmentSelectionEditModel GetAppointmentmentSelectionEditModel(TempCart tempcart)
 {
     if (tempcart.EventId.HasValue && tempcart.EventId.Value > 0 && !tempcart.InChainAppointmentSlotIds.IsNullOrEmpty())
     {
         return(_slotService.GetAppointmentSelectionModel(tempcart.EventId.Value, 0, tempcart.InChainAppointmentSlotIds, 0, null));
     }
     return(null);
 }
示例#11
0
        public AddToBasket(Item item, int count, ApplicationDbContext db, HttpContext context, ClaimsIdentity claimIdentity)
        {
            var claim = claimIdentity.FindFirst(ClaimTypes.NameIdentifier);

            if (claim == null)
            {
                if (context.Session.GetString("ssShoppingCart") == null)
                {
                    var cart    = new List <TempCart>();
                    var cartObj = new TempCart()
                    {
                        Item   = item,
                        ItemId = item.Id,
                        Count  = count
                    };
                    cart.Add(cartObj);
                    context.Session.SetString("ssShoppingCart", JsonConvert.SerializeObject(cart));
                }
                else
                {
                    var cart    = JsonConvert.DeserializeObject <List <TempCart> >("ssShoppingCart");
                    var cartObj = new TempCart()
                    {
                        Item   = item,
                        ItemId = item.Id,
                        Count  = count
                    };
                    cart.Add(cartObj);
                    context.Session.SetString("ssShoppingCart", JsonConvert.SerializeObject(cart));
                }
            }

            if (claim != null)
            {
                ShoppingCart cart = new ShoppingCart()
                {
                    Item   = item,
                    ItemId = item.Id
                };
                cart.Id = 0;
                cart.ApplicationUserId = claim.Value;

                ShoppingCart cartDb = db.ShoppingCart.Where(c => c.ApplicationUserId == cart.ApplicationUserId &&
                                                            c.ItemId == cart.ItemId).FirstOrDefault();
                if (cartDb == null)
                {
                    db.ShoppingCart.Add(cart);
                }
                else
                {
                    cartDb.Count = cartDb.Count + cart.Count;
                }
                db.SaveChangesAsync();

                var Counter = db.ShoppingCart.Where(c => c.ApplicationUserId == cart.ApplicationUserId).ToList().Count();
                context.Session.SetInt32("ssCartCount", Counter);
            }
        }
示例#12
0
        public ActionResult SendDel(int ID)
        {
            TempCart tCart  = new TempCart();
            var      svCart = new CartService();

            Deletet(ID);
            ViewBag.Message = "ลบสินค้าในตะกร้าของคุณเรียบร้อยแล้ว";
            return(RedirectToAction("Index"));
        }
示例#13
0
        public void ReleaseSlotsOnScreeningtimeChanged(TempCart tempCart, long newEventPackageId, string newEventTestIds)
        {
            var newEvenTestIds = new List <long>();

            if (!string.IsNullOrEmpty(newEventTestIds))
            {
                newEventTestIds.Split(',').ToList().ForEach(t => newEvenTestIds.Add(Convert.ToInt64(t)));
                newEvenTestIds.RemoveAll(t => t == 0);
            }

            //var existingEventTestIds = new List<long>();
            //if (!string.IsNullOrEmpty(tempCart.TestId))
            //{
            //    tempCart.TestId.Split(',').ToList().ForEach(t => existingEventTestIds.Add(Convert.ToInt64(t)));
            //    existingEventTestIds.RemoveAll(t => t == 0);
            //}

            //var isOrderChanged = newEventPackageId != tempCart.EventPackageId || (!newEvenTestIds.All(existingEventTestIds.Contains) || !existingEventTestIds.All(newEvenTestIds.Contains));

            var screeningTime = _eventPackageSelectorService.GetScreeningTime(tempCart.EventPackageId.Value, newEvenTestIds);

            if (!tempCart.InChainAppointmentSlotIds.IsNullOrEmpty())//&& isOrderChanged
            {
                var testIds = new List <long>();
                if (newEvenTestIds != null && newEvenTestIds.Any())
                {
                    var eventTests = _eventTestRepository.GetbyIds(newEvenTestIds);
                    if (eventTests != null && !eventTests.IsNullOrEmpty())
                    {
                        eventTests.ForEach(et => testIds.Add(et.TestId));
                    }
                }

                var newPackageId = _eventPackageRepository.GetById(newEventPackageId).PackageId;

                var theEvent = _eventRepository.GetById(tempCart.EventId.Value);

                var slots = _eventSchedulingSlotService.AdjustAppointmentSlot(tempCart.EventId.Value, screeningTime, tempCart.InChainAppointmentSlotIds, newPackageId, testIds, theEvent.LunchStartTime, theEvent.LunchDuration);

                if (slots == null)
                {
                    _eventSchedulingSlotRepository.ReleaseSlots(tempCart.InChainAppointmentSlotIds);
                    tempCart.AppointmentId           = null;
                    tempCart.InChainAppointmentSlots = null;
                    tempCart.PreliminarySelectedTime = null;
                }
                else
                {
                    var eventSchedulingSlots = slots as EventSchedulingSlot[] ?? slots.ToArray();
                    tempCart.AppointmentId           = eventSchedulingSlots.OrderBy(s => s.StartTime).First().Id;
                    tempCart.PreliminarySelectedTime = eventSchedulingSlots.OrderBy(s => s.StartTime).First().StartTime;
                    tempCart.InChainAppointmentSlots = string.Join(",", eventSchedulingSlots.Select(s => s.Id.ToString()).ToArray());
                }

                _tempcartService.SaveTempCart(tempCart);
            }
        }
示例#14
0
        public void UpdateTestPurchased(TempCart tempCart)
        {
            if (tempCart.EventPackageId.HasValue)
            {
                var userGender   = !string.IsNullOrEmpty(tempCart.Gender) ? ((long)(Gender)Enum.Parse(typeof(Gender), tempCart.Gender, true)) : (long)Gender.Unspecified;
                var theEvent     = _eventRepository.GetById(tempCart.EventId.Value);
                var eventPackage = _eventPackageRepository.GetById(tempCart.EventPackageId.Value);
                var eventTests   = theEvent.EnableAlaCarteOnline ? _eventTestRepository.GetTestsForEventByRole(tempCart.EventId.Value, (long)Roles.Customer, userGender) : null;

                if (eventPackage.Tests.Any())
                {
                    var  packageTestIds      = eventPackage.Tests.Select(x => x.Id).ToList();
                    var  panelTestId         = (long)(userGender == (long)Gender.Male ? TestType.MenBloodPanel : TestType.WomenBloodPanel);
                    var  panelTestGroup      = (panelTestId == (long)TestType.MenBloodPanel ? TestGroup.MensBloodPanelTestIds : TestGroup.WomenBloodPanelTestIds);
                    long panelEventTestId    = 0;
                    var  panelEventTestGroup = new List <long>();

                    if (!eventTests.IsNullOrEmpty())
                    {
                        panelEventTestId = eventTests.Any(x => x.TestId == panelTestId) ? eventTests.First(x => x.TestId == panelTestId).Id : 0;

                        panelEventTestGroup = eventTests.Where(et => panelTestGroup.Contains(et.TestId)).Select(x => x.Id).ToList();
                    }


                    var seletectedTests = new List <long>();

                    var purchasedPanelTest = false;


                    if (!string.IsNullOrWhiteSpace(tempCart.TestId))
                    {
                        seletectedTests.AddRange(tempCart.TestId.Split(',').Select(long.Parse).ToList());
                    }

                    if (seletectedTests.Any() && packageTestIds.Any() && panelEventTestId > 0)
                    {
                        seletectedTests    = seletectedTests.Where(x => !packageTestIds.Contains(x)).ToList();
                        purchasedPanelTest = packageTestIds.Any(x => x == panelEventTestId);
                    }

                    if (purchasedPanelTest)
                    {
                        seletectedTests = seletectedTests.Where(x => !panelEventTestGroup.Contains(x)).ToList();
                    }

                    tempCart.TestId = null;
                    if (seletectedTests.Any())
                    {
                        var selectedTestIds = string.Join(",", seletectedTests);
                        tempCart.TestId = selectedTestIds;
                    }
                }
            }
        }
示例#15
0
 public void SaveTempCart(TempCart tempCart)
 {
     if (tempCart.Id > 0)
     {
         tempCart.DateModified = DateTime.Now;
     }
     else
     {
         tempCart.DateCreated = DateTime.Now;
     }
     _tempCartRepository.Save(tempCart);
 }
示例#16
0
        public bool SaveaAlacarteTestIds(TempCart tempCart, string selectedTestIds, bool saveBloodPanel)
        {
            if (tempCart.EventId.HasValue && tempCart.EventId > 0 && !string.IsNullOrEmpty(tempCart.Gender) && tempCart.EventPackageId.HasValue)
            {
                Gender gender;
                Enum.TryParse(tempCart.Gender, out gender);
                var upsellTests = UpsaleTest(tempCart.EventId.Value, tempCart.EventPackageId.Value, gender);
                var testIds     = new List <long>();

                if (!string.IsNullOrWhiteSpace(tempCart.TestId) && !upsellTests.IsNullOrEmpty())
                {
                    var upsellTestIds = upsellTests.Select(x => x.EventTestId).Distinct().ToList();
                    testIds = tempCart.TestId.Split(',').Select(long.Parse).ToList();
                    testIds = testIds.Where(upsellTestIds.Contains).ToList();
                }

                if (!string.IsNullOrWhiteSpace(selectedTestIds))
                {
                    var selectedEventTestIds = selectedTestIds.Split(',').Select(long.Parse).Distinct().ToList();
                    testIds.AddRange(selectedEventTestIds);
                }
                if (saveBloodPanel)
                {
                    var panelTestId    = (long)(gender == Gender.Male ? TestType.MenBloodPanel : TestType.WomenBloodPanel);
                    var panelTestGroup = (panelTestId == (long)TestType.MenBloodPanel ? TestGroup.MensBloodPanelTestIds : TestGroup.WomenBloodPanelTestIds);

                    var theEvent   = _eventRepository.GetById(tempCart.EventId.Value);
                    var eventTests = theEvent.EnableAlaCarteOnline ? _eventTestRepository.GetTestsForEventByRole(tempCart.EventId.Value, (long)Roles.Customer, (long)gender) : null;
                    if (eventTests != null)
                    {
                        var eventtestIds = eventTests.Where(x => panelTestGroup.Contains(x.TestId)).Select(x => x.Id);
                        testIds = testIds.Where(x => !eventtestIds.Contains(x)).ToList();
                    }
                    var paneltestEventetstId = eventTests.Where(x => x.TestId == panelTestId);

                    if (paneltestEventetstId != null && paneltestEventetstId.Count() > 0 && !testIds.Contains(paneltestEventetstId.First().Id))
                    {
                        testIds.Add(paneltestEventetstId.First().Id);
                    }
                }

                tempCart.TestId = null;

                if (testIds.Any())
                {
                    tempCart.TestId = string.Join(",", testIds);
                }

                _tempcartService.SaveTempCart(tempCart);
            }
            return(true);
        }
示例#17
0
        public bool IsUpsellTestAvailable(TempCart tempCart)
        {
            var account = _corporateAccountRepository.GetbyEventId(tempCart.EventId.Value);

            if (account == null || account.UpsellTest)
            {
                Gender gender;
                Enum.TryParse(tempCart.Gender, out gender);
                var upsellTests = UpsaleTest(tempCart.EventId.Value, tempCart.EventPackageId.Value, gender);
                return(upsellTests != null && upsellTests.Any());
            }

            return(false);
        }
示例#18
0
        public bool InserTempCart(TempCart temp)
        {
            temp.CreatedDate  = DateTime.Now;
            temp.ModifiedDate = DateTime.Now;

            using (var trans = new TransactionScope())
            {
                qDB.TempCarts.InsertOnSubmit(temp); //insertTempOrder
                qDB.SubmitChanges();
                trans.Complete();
                IsResult = true;
            }

            return(IsResult);
        }
示例#19
0
        public ActionResult AddTemp(string ProductID)
        {
            TempCart tCart     = new TempCart();
            var      svCart    = new CartService();
            var      svProduct = new ProductService();

            try
            {
                string TempData = string.Empty;

                var Temp       = svCart.SelectData <TempCart>("*", " IsDelete = 0 and TempIDLogon = " + LogonCompID + " and TempProdcutID = " + ProductID);
                var getProduct = svProduct.SelectData <view_Product>("*", " IsDelete = 0 and ProductID = " + ProductID, null, 1, 0, false).First();
                //int countProduct = Temp.Count + 1;
                if (Temp.Count > 0) //ถ้ามีสินค้าให้ให้อัพเดท countProduct
                {
                    var getProductCount = svProduct.SelectData <TempCart>("*", " IsDelete = 0 and TempProdcutID = " + ProductID + " and TempIDLogon = " + LogonCompID, null, 1, 0, false).First();
                    var countProduct    = getProductCount.TempCountProduct + 1;
                    int LogOnuser       = 0;
                    int TempProductID   = 0;
                    LogOnuser     = LogonCompID;
                    TempProductID = int.Parse(ProductID);
                    svCart.UpdateTempCart(LogOnuser, TempProductID, countProduct);
                    ViewBag.Message = "อัพเดทสินค้าในตะกร้าของคุณเรียบร้อยแล้ว";
                }
                else   //ถ้ามีสินค้าให้ insertTempCart

                {
                    #region Set TempCart
                    tCart.TempProdcutID    = getProduct.ProductID;
                    tCart.TempPrice        = getProduct.Price_One;
                    tCart.TempQua          = 1;
                    tCart.TempCountProduct = 1;
                    tCart.TempIDLogon      = LogonCompID;
                    tCart.IsShow           = true;
                    tCart.IsDelete         = false;
                    #endregion

                    svCart.InserTempCart(tCart);
                    ViewBag.Message = "เพิ่มสินค้าในตะกร้าของคุณเรียบร้อยแล้ว";
                }
            }
            catch (Exception ex)
            {
                return(Json(new { IsSuccess = false }));
            }

            return(Json(new { IsSuccess = true }));
        }
示例#20
0
        public TempCart Save(TempCart domainObject)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var entity = Mapper.Map <TempCart, TempCartEntity>(domainObject);
                entity.Fields["IsUsedAppointmentSlotExpiryExtension"].IsChanged = true;
                entity.Fields["InChainAppointmentSlots"].IsChanged = true;

                if (!adapter.SaveEntity(entity, true))
                {
                    throw new PersistenceFailureException();
                }

                return(Mapper.Map <TempCartEntity, TempCart>(entity));
            }
        }
示例#21
0
        private void SaveTempCart(TempCart tempCart)
        {
            tempCart.IPAddress = Request.UserHostAddress;
            tempCart.Browser   = Request.Browser.Type;

            if (tempCart.Id > 0)
            {
                tempCart.DateModified = DateTime.Now;
            }
            else
            {
                tempCart.DateCreated = DateTime.Now;
            }

            _tempCartRepository.Save(tempCart);
        }
示例#22
0
        public ActionResult PlusCount(int ID)
        {
            TempCart tCart     = new TempCart();
            var      svCart    = new CartService();
            var      svProduct = new ProductService();

            var getProductCount = svProduct.SelectData <TempCart>("*", " IsDelete = 0 and TempID = " + ID + " and TempIDLogon = " + LogonCompID, null, 1, 0, false).First();
            var countProduct    = getProductCount.TempCountProduct + 1;
            int LogOnuser       = 0;
            int TempProductID   = 0;

            LogOnuser     = LogonCompID;
            TempProductID = Convert.ToInt32(getProductCount.TempProdcutID);
            svCart.MinusTempCart(LogOnuser, TempProductID, countProduct);
            return(RedirectToAction("Index"));
        }
        public IActionResult AddToCart(int beerId, int amount)
        {
            var      userId   = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var      customer = _context.Customers.Where(x => x.IdentityUserId == userId).FirstOrDefault();
            var      beer     = _context.Beers.Where(br => br.BeerId == beerId).FirstOrDefault();
            TempCart cart     = new TempCart();

            cart.Amount     = amount;
            cart.BeerId     = beerId;
            cart.Customer   = customer;
            cart.CustomerId = customer.Id;
            cart.Beer       = beer;
            //_context.
            //_context.SaveChanges();

            return(View());
        }
示例#24
0
        public async Task <IActionResult> AddtoCart(int id,
                                                    int quantity,
                                                    int color,
                                                    int size)
        {
            var user = await _userManager.GetUserAsync(User);

            var isAdmin = await _userManager.IsInRoleAsync(user, "Admin");

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }
            if (isAdmin)
            {
                return(BadRequest("Admin can't buy product"));
            }
            if (id <= 0 || quantity <= 0)
            {
                TempData["message"] = "Something error happened";
                return(RedirectToAction("Product", new { id }));
            }
            var product = _db.Products.First(o => o.ProductId == id && o.ProductStock >= quantity);

            if (product == null)
            {
                TempData["message"] = "Out of Stock Recently";
                return(RedirectToAction("Product", new { id }));
            }

            var tempCart = new TempCart
            {
                ProductID  = id,
                CustomerID = user.Id,
                Quantity   = quantity,
                Color      = color,
                Size       = size
            };
            await _db.TempCarts.AddAsync(tempCart);

            await _db.SaveChangesAsync();

            TempData["success message"] = "Product added to Cart";
            return(RedirectToAction("Product", new { id }));
        }
示例#25
0
        public PackageSelectionInfoEditModel GetPackageSelectionInfoEditModel(TempCart tempCart, PreQualificationResult preQualificationResult)
        {
            var model = new PackageSelectionInfoEditModel
            {
                Gender                       = !string.IsNullOrEmpty(tempCart.Gender) ? ((int)(Gender)Enum.Parse(typeof(Gender), tempCart.Gender, true)) : (int?)null,
                Dob                          = tempCart.Dob,
                ChestPain                    = preQualificationResult.ChestPain ?? 0,
                Diabetic                     = preQualificationResult.Diabetic ?? 0,
                HeartDisease                 = preQualificationResult.HeartDisease ?? 0,
                HighBloodPressure            = preQualificationResult.HighBloodPressure ?? 0,
                Smoker                       = preQualificationResult.Smoker ?? 0,
                DiagnosedHeartProblem        = preQualificationResult.DiagnosedHeartProblem ?? 0,
                HighCholestrol               = preQualificationResult.HighCholestrol ?? 0,
                OverWeight                   = preQualificationResult.OverWeight ?? 0,
                SkipPreQualificationQuestion = preQualificationResult.SkipPreQualificationQuestion
            };

            return(model);
        }
示例#26
0
        public ActionResult DelProduct(int id)
        {
            var             CartService = new CartService();
            OuikumTempOrder model       = new OuikumTempOrder();

            try
            {
                TempCart tCart  = new TempCart();
                var      svCart = new CartService();
                Deletet(id);
            }
            catch (Exception ex)
            {
                CreateLogFiles(ex);
            }


            return(Json(new { IsResult = svCart.IsResult, MsgError = GenerateMsgError(svCart.MsgError), ID = model.TOrderID }));
        }
示例#27
0
        private static OnlineSchedulingEventListModelFilter CompleteFilter(TempCart tempCart, OnlineSchedulingEventListModelFilter filter)
        {
            if (tempCart == null)
            {
                return(filter);
            }
            if (filter == null)
            {
                filter = new OnlineSchedulingEventListModelFilter();
            }


            filter.ZipCode        = !string.IsNullOrEmpty(filter.ZipCode) ? filter.ZipCode : tempCart.ZipCode;
            filter.Radius         = (int?)tempCart.Radius;
            filter.EventId        = tempCart.EventId.HasValue ? tempCart.EventId.Value : 0;
            filter.InvitationCode = !string.IsNullOrEmpty(filter.InvitationCode) ? filter.InvitationCode : tempCart.InvitationCode;

            return(filter);
        }
示例#28
0
        public ActionResult BuyNow(int id, double price)
        {
            var tempCart      = new TempCart();
            var tempCartCount = _context.TempCarts.Count();
            var isProduct     = _context.TempCarts.Count(p => p.ProductId == id);

            // var productQuantity = _context.TempCarts.Where(p => p.ProductId == id);
            if (tempCartCount < 1)
            {
                if (isProduct == 0)
                {
                    tempCart.ProductId    = id;
                    tempCart.Quantity     = 1;
                    tempCart.ProductPrice = price;
                    _context.TempCarts.Add(tempCart);
                    _context.SaveChanges();
                }
            }

            return(RedirectToAction("Cart"));
        }
        public ActionResult BuyNow(int id, double price)
        {
            var tempCart = new TempCart();

            var isProduct = _context.TempCarts.Count(p => p.ProductId == id);

            if (isProduct == 0)
            {
                tempCart.ProductId    = id;
                tempCart.Quantity     = 1;
                tempCart.ProductPrice = price;
                _context.TempCarts.Add(tempCart);
            }
            else
            {
                tempCart.Quantity++;
            }

            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#30
0
        public PreQualificationViewModel GetPreQualificationAnswer(TempCart tempCart)
        {
            var preQualification = _preQualificationResultRepository.Get(tempCart.Id);

            if (preQualification != null)
            {
                return(new PreQualificationViewModel()
                {
                    HighBloodPressure = preQualification.HighBloodPressure,
                    Smoker = preQualification.Smoker,
                    HeartDisease = preQualification.HeartDisease,
                    Diabetic = preQualification.Diabetic,
                    ChestPain = preQualification.ChestPain,
                    DiagnosedHeartProblem = preQualification.DiagnosedHeartProblem,
                    HighCholestrol = preQualification.HighCholestrol,
                    OverWeight = preQualification.OverWeight,
                    AgreedWithPrequalificationQuestion = preQualification.AgreedWithPrequalificationQuestion,
                    SkipPreQualificationQuestion = preQualification.SkipPreQualificationQuestion
                });
            }
            return(null);
        }