示例#1
0
        public IActionResult IndexPost()
        {
            List <int> lstShoppingCart = HttpContext.Session.Get <List <int> >("ssShoppingCart");

            ShoppingCartVM.Appointments.AppointmentDate = ShoppingCartVM.Appointments.AppointmentDate
                                                          .AddHours(ShoppingCartVM.Appointments.AppointmentTime.Hour)
                                                          .AddMinutes(ShoppingCartVM.Appointments.AppointmentTime.Minute);

            Appointments appointments = ShoppingCartVM.Appointments;

            _db.Appointments.Add(appointments);
            _db.SaveChanges();

            int appointmentId = appointments.Id;

            foreach (var productId in lstShoppingCart)
            {
                ProductSelectedForAppointment productSelectedForAppointment = new ProductSelectedForAppointment()
                {
                    AppointmentsId = appointmentId,
                    ProductsId     = productId
                };
                _db.ProductSelectedForAppointments.Add(productSelectedForAppointment);
            }
            _db.SaveChanges();
            lstShoppingCart = new List <int>();
            HttpContext.Session.Set("ssShoppingCart", lstShoppingCart);

            return(RedirectToAction("AppointmentConfirmation", "ShoppingCart", new { Id = appointmentId }));
        }
        public async Task <IActionResult> IndexPost()
        {
            List <int> lstCartItems = HttpContext.Session.Get <List <int> >("ssShoppingCart");

            ShoppingCartVM.Appointments.AppointmentDate = ShoppingCartVM.Appointments.AppointmentDate
                                                          .AddHours(ShoppingCartVM.Appointments.AppointmentTime.Hour)
                                                          .AddMinutes(ShoppingCartVM.Appointments.AppointmentTime.Minute);

            Appointments appointments = ShoppingCartVM.Appointments;
            await db.Appointments.AddAsync(appointments);

            await db.SaveChangesAsync();

            int appointmentId = appointments.Id;

            foreach (int cart in lstCartItems)
            {
                ProductSelectedForAppointment productAppointments = new ProductSelectedForAppointment()
                {
                    AppointmentId = appointmentId,
                    ProductId     = cart
                };

                await db.ProductSelectedForAppointment.AddAsync(productAppointments);
            }

            await db.SaveChangesAsync();

            lstCartItems = new List <int>();
            HttpContext.Session.Set("ssShoppingCart", lstCartItems);
            return(RedirectToAction("AppointmentDetails", "ShoppingCart", new { id = appointmentId }));
        }
示例#3
0
        public IActionResult IndexPost()
        {
            List <int> lstCartItems = HttpContext.Session.Get <List <int> >("ssShoppingCart");

            Appointments appointments = ShoppingCartVM.Appointments;

            appointments.BillDate = DateTime.Now;
            _db.Appointments.Add(appointments);
            _db.SaveChanges();

            int appointmentId = appointments.Id;

            foreach (int productId in lstCartItems)
            {
                ProductSelectedForAppointment ProductSelectedForAppointment = new ProductSelectedForAppointment()
                {
                    AppointmentId = appointmentId,
                    ProductId     = productId
                };
                _db.ProductSelectedForAppointment.Add(ProductSelectedForAppointment);
            }
            _db.SaveChanges();
            lstCartItems = new List <int>();
            HttpContext.Session.Set("ssShoppingCart", lstCartItems);

            return(RedirectToAction("AppointmentConfirmation", "ShoppingCart", new { Id = appointmentId }));
        }
        public IActionResult ScheduleAppointment()
        {
            List <int> listItems = HttpContext.Session.Get <List <int> >("ssShoppingCart");

            shoppingCartViewModel.Appointment.AppointmentDate = shoppingCartViewModel.Appointment.AppointmentDate //Workaround to push appointment date time in a single column appointment date
                                                                .AddHours(shoppingCartViewModel.Appointment.AppointmentTime.Hour)
                                                                .AddMinutes(shoppingCartViewModel.Appointment.AppointmentTime.Minute);
            Appointment appointment = shoppingCartViewModel.Appointment;

            _db.Appointment.Add(appointment);
            _db.SaveChanges();

            int appointmentId = appointment.Id;

            //Use this Id to insert into ProductSelectedAppointment
            foreach (int productId in listItems)
            {
                ProductSelectedForAppointment productSelectedForAppointment = new ProductSelectedForAppointment()
                {
                    AppointmentId = appointmentId,
                    ProductId     = productId
                };
                _db.ProductSelectedForAppointment.Add(productSelectedForAppointment);
            }
            _db.SaveChanges();

            //Clear out the session and reset
            listItems = new List <int>();
            HttpContext.Session.Set("ssShoppingCart", listItems);

            return(RedirectToAction("AppointmentConfirmation", "ShoppingCart", new { id = appointmentId }));
        }
示例#5
0
        public IActionResult IndexPost(ShoppingCartViewModel Sop)
        {
            List <int> lstCartItems = HttpContext.Session.Get <List <int> >("ssShoppingCart");

            Appointments appointments = ShoppingCartVM.Appointments;

            //string iString = DateTime.Now.ToString();
            //string dt = DateTime.ParseExact(iString, "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd HH:mm:ss tt", CultureInfo.InvariantCulture); ;
            // DateTime  dateTime = DateTime.ParseExact(s,"yyyy/mm/dd", CultureInfo.InvariantCulture);

            appointments.CustomerName        = ShoppingCartVM.Appointments.CustomerName;
            appointments.CustomerEmail       = ShoppingCartVM.Appointments.CustomerName;
            appointments.CustomerPhoneNumber = ShoppingCartVM.Appointments.CustomerPhoneNumber;
            appointments.BillDate            = Sop.Buydate;
            appointments.AppointmentDate     = "hihihi";
            appointments.TotalPrice          = total;

            total = 0;
            _db.Database.ExecuteSqlCommand("EXECUTE DBO.Insert_Appointments {0},{1},{2},{3},{4},{5}",
                                           appointments.BillDate, appointments.CustomerName, appointments.CustomerPhoneNumber, appointments.AppointmentDate, appointments.CustomerEmail, appointments.TotalPrice);
            _db.SaveChanges();
            //  appointments = ShoppingCartVM.Appointments;

            int appointmentId = appointments.Id;

            foreach (int productId in lstCartItems)
            {
                ProductSelectedForAppointment ProductSelectedForAppointment = new ProductSelectedForAppointment()
                {
                    AppointmentId = appointmentId,
                    ProductId     = productId
                };
                _db.ProductSelectedForAppointment.Add(ProductSelectedForAppointment);
            }
            _db.SaveChanges();
            lstCartItems = new List <int>();
            HttpContext.Session.Set("ssShoppingCart", lstCartItems);

            return(RedirectToAction("AppointmentConfirmation", "ShoppingCart", new { Id = appointmentId }));
        }
        public async Task <IActionResult> IndexPost()
        {
            List <int> shoppingCartContents = HttpContext.Session.Get <List <int> >("sesShoppingCart");

            if (!ModelState.IsValid ||
                shoppingCartContents.Count < 1)
            {
                // Why is a reimplementation of the ctor-functionality necessary?
                // Why or where is the Product-List set to null???
                if (ShoppingCartVM.Products == null)
                {
                    ShoppingCartVM.Products = new List <Product>();
                }

                // Why do I need to reimplement the GET-Index function?
                if (shoppingCartContents.Count > 0)
                {
                    foreach (int item in shoppingCartContents)
                    {
                        Product product = await _db.Product.Include(p => p.SpecialTag).Include(p => p.ProductType).Where(p => p.Id == item).FirstOrDefaultAsync();

                        ShoppingCartVM.Products.Add(product);
                    }
                }

                return(View(ShoppingCartVM));
            }

            //  Solution as proposed in the course, does not seem to work properly
            //  - Appointment.AppointmentTime & Appointment.AppointmentDate are either null or set to '0001/01/01 00:00:00'
            //  - No idea why the form-inputs do not 'bind' to the properties => no idea where to start debugging/what kind of magic is used for that

            /*
             *  ShoppingCartVM.Appointment.AppointmentDate = ShoppingCartVM.Appointment.AppointmentDate
             *      .AddHours(ShoppingCartVM.Appointment.AppointmentTime.Hour)
             *      .AddMinutes(ShoppingCartVM.Appointment.AppointmentTime.Minute);
             */

            // Work-Around: Due to above code not working, date parts are read from POST manually and converted to usable DateTime objects

            var _request     = HttpContext.Request;
            var dateAsString = _request.Form["Appointment.AppointmentDate"];
            var timeAsString = _request.Form["Appointment.AppointmentTime"];

            DateTime date;

            DateTime.TryParseExact(dateAsString, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date);

            DateTime time;

            DateTime.TryParseExact(timeAsString, "hh:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out time);

            ShoppingCartVM.Appointment.AppointmentDate = date.AddHours(time.Hour).AddMinutes(time.Minute);

            // Continuation of udemy-course code

            Appointment appointment = ShoppingCartVM.Appointment;

            _db.Appointment.Add(appointment);
            await _db.SaveChangesAsync();

            int appointmentId = appointment.Id;

            foreach (int productId in shoppingCartContents)
            {
                ProductSelectedForAppointment productSelectedForAppointment = new ProductSelectedForAppointment()
                {
                    AppointmentId = appointmentId,
                    ProductId     = productId
                };

                _db.ProductSelectedForAppointment.Add(productSelectedForAppointment);
            }

            await _db.SaveChangesAsync();

            shoppingCartContents = new List <int>();
            HttpContext.Session.Set("sesShoppingCart", shoppingCartContents);

            return(RedirectToAction("AppointmentConfirmation", "ShoppingCart", new { Id = appointmentId }));
        }