Пример #1
0
        // 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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }