//取得班表 public ActionResult WorkHoursJson(int year = 0) { WorkHoursModel wh = new WorkHoursModel(); var w = wh.GetWorkHours(Convert.ToInt32(Session["UserID"]), year); return(Json(w, JsonRequestBehavior.AllowGet)); }
public async Task <IActionResult> Edit(int id, int departmentId, [Bind("WorkHoursId,StartHour,StartMinutes,EndHour,EndMinutes,DayName,AdditionalInfo,Date")] WorkHoursModel workHoursModel) { if (id != workHoursModel.WorkHoursId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(workHoursModel); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WorkHoursModelExists(workHoursModel.WorkHoursId)) { return(NotFound()); } else { throw; } } return(Redirect($"/Calendar/Display?departmentId={departmentId}")); } return(View(workHoursModel)); }
public ActionResult Create(IFormCollection collection) { try { var hours = new WorkHoursModel { }; return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public async Task <IActionResult> Create([Bind("WorkHoursId,StartHour,StartMinutes,EndHour,EndMinutes,DayName,AdditionalInfo,Date,Employee")] WorkHoursModel workHours, string id, int departmentId) { var user = userManager.FindByIdAsync(id); workHours.Employee = user.Result; workHours.DayName = workHours.Date.DayOfWeek.ToString(); if (ModelState.IsValid) { _context.Add(workHours); await _context.SaveChangesAsync(); return(Redirect($"/Calendar/Display?departmentId={departmentId}")); } return(View(workHours)); }
public async void Initialize(IConfiguration configuration) { var serviceScope = _serviceProvider.GetRequiredService <IServiceScopeFactory>().CreateScope(); var roleManager = serviceScope.ServiceProvider.GetService <RoleManager <ApplicationRole> >(); string[] roleNames = { RoleNames.Admin, RoleNames.Manager, RoleNames.Patient, RoleNames.Doctor, RoleNames.Clerk }; var context = serviceScope.ServiceProvider.GetService <ApplicationDbContext>(); await context.Database.EnsureCreatedAsync(); foreach (var roleName in roleNames) { var role = await roleManager.RoleExistsAsync(roleName); if (!role) { await roleManager.CreateAsync(new ApplicationRole(roleName)); } } // Create admin account var userManager = serviceScope.ServiceProvider.GetService <UserManager <ApplicationUser> >(); var userAdmin = new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, ResidenceId = 1 }; string userPassword = "******"; if (await userManager.FindByEmailAsync("*****@*****.**") == null) { context.ResidenceModel.Add(new ResidenceModel { }); context.SaveChanges(); var success = await userManager.CreateAsync(userAdmin, userPassword); if (success.Succeeded) { await userManager.AddToRoleAsync(userAdmin, RoleNames.Admin); } context.SaveChanges(); } var userDoctors = new ApplicationUser[] { new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, FirstName = "Henryk", LastName = "Kowalski", PIN = "66071496752", PhoneNum = "345663874", Sex = "Mężczyzna", ResidenceId = 2 }, new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, FirstName = "Maria", LastName = "Nowak", PIN = "72062607345", PhoneNum = "796256840", Sex = "Kobieta", ResidenceId = 3 } }; foreach (ApplicationUser user in userDoctors) { if (!context.ApplicationUser.Any(o => o.UserName == user.UserName)) { context.ResidenceModel.Add(new ResidenceModel { }); context.SaveChanges(); var success = await userManager.CreateAsync(user, userPassword); if (success.Succeeded) { await userManager.AddToRoleAsync(user, RoleNames.Doctor); } context.SaveChanges(); } } var doctors = new DoctorModel[] { new DoctorModel { Specialization = "Endokrynologia", UserId = userDoctors[0].Id }, new DoctorModel { Specialization = "Alergologia", UserId = userDoctors[1].Id } }; foreach (DoctorModel doctor in doctors) { if (!context.DoctorModel.Any(o => o.Specialization == doctor.Specialization)) { context.DoctorModel.Add(doctor); context.SaveChanges(); } } var userPatients = new ApplicationUser[] { new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, FirstName = "Tomasz", LastName = "Adamski", PIN = "79022405942", PhoneNum = "819458234", Sex = "Mężczyzna", ResidenceId = 4 }, new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, FirstName = "Agata", LastName = "Walczyk", PIN = "69091295041", PhoneNum = "758399405", Sex = "Kobieta", ResidenceId = 5 }, new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, FirstName = "Tobiasz", LastName = "Adamski", PIN = "78031895332", PhoneNum = "199405394", Sex = "Mężczyzna", ResidenceId = 6 }, }; string patientPassword = "******"; foreach (ApplicationUser userPatient in userPatients) { if (!context.ApplicationUser.Any(o => o.UserName == userPatient.UserName)) { var residence = new ResidenceModel { Country = "Polska", Street = "Krakowska", City = "Kraków", PostalCode = "31-066", BuildingNum = "30", FlatNum = "4" }; context.ResidenceModel.Add(residence); context.SaveChanges(); var success = await userManager.CreateAsync(userPatient, patientPassword); if (success.Succeeded) { await userManager.AddToRoleAsync(userPatient, RoleNames.Patient); } var patient = new PatientModel { UserId = userPatient.Id }; context.PatientModel.Add(patient); context.SaveChanges(); var patientCard = new PatientCardModel { Date = "17/05/2018", PatientId = patient.Id }; context.PatientCardModel.Add(patientCard); context.SaveChanges(); } } var userClerk = new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, FirstName = "Edyta", LastName = "Kotarska", PIN = "86062702842", PhoneNum = "850904195", Sex = "Kobieta", ResidenceId = 7 }; if (!context.ApplicationUser.Any(o => o.UserName == userClerk.UserName)) { context.ResidenceModel.Add(new ResidenceModel { }); context.SaveChanges(); var success = await userManager.CreateAsync(userClerk, userPassword); if (success.Succeeded) { await userManager.AddToRoleAsync(userClerk, RoleNames.Clerk); } var clerk = new ClerkModel { UserId = userClerk.Id }; context.ClerkModel.Add(clerk); context.SaveChanges(); } var workHours = new WorkHoursModel[] { new WorkHoursModel { DayofWeek = "wtorek", StartHour = "12:55", EndHour = "16:40", DoctorId = doctors[0].Id }, new WorkHoursModel { DayofWeek = "czwartek", StartHour = "9:30", EndHour = "13:00", DoctorId = doctors[1].Id } }; foreach (WorkHoursModel workHour in workHours) { if (!context.WorkHours.Any(o => o.DayofWeek == workHour.DayofWeek && o.StartHour == workHour.StartHour)) { context.WorkHours.Add(workHour); context.SaveChanges(); } } var visits = new AppointmentModel[] { new AppointmentModel { DateOfApp = "8/05/2018", DoctorId = doctors[0].Id }, new AppointmentModel { DateOfApp = "15/05/2018", DoctorId = doctors[0].Id }, new AppointmentModel { DateOfApp = "22/05/2018", DoctorId = doctors[0].Id }, new AppointmentModel { DateOfApp = "05/06/2018", DoctorId = doctors[0].Id }, new AppointmentModel { DateOfApp = "24/05/2018", DoctorId = doctors[1].Id }, new AppointmentModel { DateOfApp = "07/06/2018", DoctorId = doctors[1].Id }, new AppointmentModel { DateOfApp = "14/06/2018", DoctorId = doctors[1].Id } }; foreach (AppointmentModel app in visits) { if (!context.AppointmentModel.Any(o => o.DateOfApp == app.DateOfApp)) { context.AppointmentModel.Add(app); context.SaveChanges(); } } }
public IActionResult Display(CalendarViewModel calendar, int departmentId, string dateFromString) { ViewBag.Departments = new SelectList(_context.Departments, "Id", "Name"); ViewBag.None = "-"; #region var dataa = DateTime.Now; DateTime mondayOfLastWeek = dataa.AddDays(-(int)dataa.DayOfWeek - 6); //----------------------------------------------------------------------------------- DayOfWeek weekStart = DayOfWeek.Monday; // or Sunday, or whenever DateTime startingDate = DateTime.Today; while (startingDate.DayOfWeek != weekStart) { startingDate = startingDate.AddDays(-1); } DateTime previousWeekStart = startingDate.AddDays(-7); DateTime previousWeekEnd = startingDate.AddDays(-1); //-------------------------------------------------------------------------------------- #endregion var date = new DateTime(); if (dateFromString is null) { date = DateTime.Now; } else { date = DateTime.Parse(dateFromString); } var checkDate = new DateTime(01, 01, 0001, 00, 00, 00); if (date == checkDate) { date = DateTime.Now; } var dayOfWeek = (int)date.DayOfWeek - 1; if (dayOfWeek < 0) { dayOfWeek = 6; } var thisWeeksMonday = date.AddDays(-dayOfWeek).Date; var lasWeeksMonday = thisWeeksMonday.AddDays(-7); string daty = $"{mondayOfLastWeek}\n{previousWeekStart} - {previousWeekEnd}\n{thisWeeksMonday} - {lasWeeksMonday}"; ViewBag.daty = daty; var sDays = new List <DateTime>(); for (int i = 0; i <= 6; i++) { sDays.Add(thisWeeksMonday.AddDays(i)); } var users = userManager.Users; var departments = departmentService.GetAll(); var department = departmentService.Get(departmentId); var depWorkers = departmentService.GetEmployees(department.Name); var workHours = _context.WorkHours.Where(x => x.Employee.Department.DepartmentId == departmentId).Where(x => x.Date >= thisWeeksMonday && x.Date <= thisWeeksMonday.AddDays(6)); foreach (var worker in depWorkers) { var workerHoursList = new List <WorkHoursModel>(); worker.WorkHours = new List <WorkHoursModel>(); while (worker.WorkHours.Count() < 5) { int count = 6 - worker.WorkHours.Count(); var emptyDay = new WorkHoursModel() { AdditionalInfo = "", Date = DateTime.Now.AddDays(count), DayName = DateTime.Now.AddDays(count).DayOfWeek.ToString(), DisplayString = "-", Employee = worker, StartHour = 0, StartMinutes = 0, EndHour = 0, EndMinutes = 0, }; worker.WorkHours.Add(emptyDay); } worker.WorkHours.OrderBy(x => x.WorkHoursId); } foreach (var item in workHours) { StringBuilder sb = new StringBuilder(); sb.Append(item.StartHour.ToString("00")); sb.Append(":"); sb.Append(item.StartMinutes.ToString("00")); sb.Append("-"); sb.Append(item.EndHour.ToString("00")); sb.Append(":"); sb.Append(item.EndMinutes.ToString("00")); item.DisplayString = sb.ToString(); } calendar = new CalendarViewModel { Workers = depWorkers, WorkHours = workHours.ToList(), Departments = departments, DepartmentId = department.DepartmentId, DepartmentName = department.Name, StartWeek = thisWeeksMonday, EndWeek = thisWeeksMonday.AddDays(6), SevenDays = sDays, Date = date }; return(View(calendar)); }