// GET: Appointments/Create public ActionResult Create(int storeId) { //ViewBag.StoreId = storeId; string userName = HttpContext.User.Identity.Name; User user = db.User.Where(u => u.UserName == userName).FirstOrDefault(); Store store = db.Store.Find(storeId); // ViewBag.UserId = new SelectList(db.User, "Id", "Name"); DateTime dateTime = DateTime.Today; int weekday = (int)dateTime.DayOfWeek; MakeAnAppointmentModel appointment = new MakeAnAppointmentModel { UserId = user.Id, StoreId = storeId, Store = store, DayInWeek = weekday }; return(View(appointment)); }
public async Task OnPostAsync_Incorrect_TerminAlreadyUsed() { //// Arrange var authenticationServiceMock = new Mock <IAppointmentsService>(); var appointmentResponse = AppointmentSetResponse.DATE_NOT_AVAILABLE; authenticationServiceMock.Setup(x => x.SetAppointment(It.IsAny <Appointment>())).ReturnsAsync(appointmentResponse); var availableDoctors = new List <Doctor>(); authenticationServiceMock.Setup(x => x.GetAllAvailableDoctors()).ReturnsAsync(availableDoctors); var allReasons = new List <Reason>(); authenticationServiceMock.Setup(x => x.GetAllAppointmentReasons()).ReturnsAsync(allReasons); var localizerMock = new Mock <ICultureLocalizer>(); localizerMock.Setup(x => x.Text(It.IsAny <string>())).Returns(new LocalizedString("name", "test")); var appointmentModel = new MakeAnAppointmentModel(localizerMock.Object, authenticationServiceMock.Object) { Appointment = new Appointment() }; var features = new FeatureCollection(); var session = new DefaultSessionFeature(); features.Set <ISessionFeature>(session); var httpContext = new DefaultHttpContext(features); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext(httpContext, new RouteData(), new PageActionDescriptor(), modelState); var pageContext = new PageContext(actionContext); appointmentModel.PageContext = pageContext; var pickedDate = DateTime.UtcNow.AddDays(2); //// Act var response = await appointmentModel.OnPostAsync(0, new int[2] { 1, 2 }, pickedDate); //// Assert Assert.True(appointmentModel.ModelState.IsValid); Assert.IsType <PageResult>(response); }
public ActionResult Create([Bind(Include = "Id,StoreId,UserId,AppointmentTime,DayInWeek")] MakeAnAppointmentModel appointmentModel) { User user = db.User.Find(appointmentModel.UserId); Store store = db.Store.Find(appointmentModel.StoreId); DateTime dateTime = DateTime.Today; int addingDay = 0; int weekday = (int)dateTime.DayOfWeek; if (weekday > appointmentModel.DayInWeek) { addingDay = 7 + appointmentModel.DayInWeek - weekday; } else { addingDay = appointmentModel.DayInWeek - weekday; } dateTime = dateTime.AddDays(addingDay); dateTime = dateTime.Add(appointmentModel.AppointmentTime); Appointment appointment = new Appointment { StoreId = store.Id, Store = store, UserId = user.Id, User = user, AppointmentDate = dateTime }; if (ModelState.IsValid) { db.Appointment.Add(appointment); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.StoreId = new SelectList(db.Store, "Id", "Country", appointment.StoreId); ViewBag.UserId = new SelectList(db.User, "Id", "Name", appointment.UserId); return(View(appointment)); }
public async Task OnPostAsync_Incorrect_DateFromPast() { //// Arrange var authenticationServiceMock = new Mock <IAppointmentsService>(); var availableDoctors = new List <Doctor>(); authenticationServiceMock.Setup(x => x.GetAllAvailableDoctors()).ReturnsAsync(availableDoctors); var allReasons = new List <Reason>(); authenticationServiceMock.Setup(x => x.GetAllAppointmentReasons()).ReturnsAsync(allReasons); var localizerMock = new Mock <ICultureLocalizer>(); localizerMock.Setup(x => x.Text(It.IsAny <string>())).Returns(new LocalizedString("name", "test")); var appointmentModel = new MakeAnAppointmentModel(localizerMock.Object, authenticationServiceMock.Object) { Appointment = new Appointment() }; var httpContext = new DefaultHttpContext(); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext(httpContext, new RouteData(), new PageActionDescriptor(), modelState); var pageContext = new PageContext(actionContext); appointmentModel.PageContext = pageContext; var pickedDate = DateTime.MinValue; //// Act var response = await appointmentModel.OnPostAsync(0, new int[2] { 1, 2 }, pickedDate); //// Assert Assert.False(appointmentModel.ModelState.IsValid); }