Пример #1
0
        //取得班表
        public ActionResult WorkHoursJson(int year = 0)
        {
            WorkHoursModel wh = new WorkHoursModel();
            var            w  = wh.GetWorkHours(Convert.ToInt32(Session["UserID"]), year);

            return(Json(w, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        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));
        }
Пример #3
0
        public ActionResult Create(IFormCollection collection)
        {
            try
            {
                var hours = new WorkHoursModel
                {
                };

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
Пример #4
0
        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));
        }
Пример #5
0
        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();
                }
            }
        }
Пример #6
0
        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));
        }