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 })); }
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 })); }
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 })); }