Ejemplo n.º 1
0
        public async Task <IActionResult> Index()
        {
            ViewBag.PatientCount = await _db.Patients.CountAsync();

            ViewBag.VisitCount = await _db.Visits.CountAsync();

            ViewBag.DoctorCount = await _db.Doctors.CountAsync();

            var doctors = _db.Doctors.Take(5).OrderByDescending(b => b.Score).ToList();
            DoctorListDoctorViewModel vm = new DoctorListDoctorViewModel(doctors);

            return(View(vm));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AddDoctor(DoctorListDoctorViewModel doctorViewModel, IFormFile docImage)
        {
            if (doctorViewModel.Doctor.Password.Length < 6)
            {
                ModelState.AddModelError("Password", "کلمه عبور باید حداقل شامل ۶ کاراکتر باشد");
            }

            doctorViewModel.Doctor.Password = _loginService.GetHash(doctorViewModel.Doctor.Password);

            if (docImage != null)
            {
                if (docImage.Length > 0 && docImage.Length < 500000)
                {
                    try
                    {
                        doctorViewModel.Doctor.ProfilePic = Guid.NewGuid() + Path.GetExtension(docImage.FileName);
                        string savePath = Path.Combine(
                            Directory.GetCurrentDirectory(), "wwwroot/Administrators/assets/images/doctors",
                            doctorViewModel.Doctor.ProfilePic
                            );
                        await using var stream = new FileStream(savePath, FileMode.Create);
                        await docImage.CopyToAsync(stream);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError($"Image Upload incomplete. error = {ex.Message}");
                    }
                }
                else
                {
                    TempData["Error"] = "حجم عکس بارگذاری شده برای پروفایل پزشک بیشتر از 500 کیلوبایت می باشد";
                    return(RedirectToAction("DoctorsList"));
                }
            }
            else
            {
                TempData["Error"] = "لطفا عکس پزشک را آپلود کنید";
                return(RedirectToAction("DoctorsList"));
            }

            await _db.Doctors.AddAsync(doctorViewModel.Doctor);

            await _db.SaveChangesAsync();

            await _initializerService.InitializeDoctorWeekdaysAsync(doctorViewModel.Doctor);

            TempData["Success"] = "دکتر " + doctorViewModel.Doctor.FullName + " با موفقیت ثبت نام شد";
            return(RedirectToAction("DoctorsList")); //Change it to doctor list
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> DoctorsList()
        {
            if (TempData["doctors"] != null)
            {
                var searchDocs = JsonConvert.DeserializeObject <List <Models.DomainClasses.Users.Doctor> >((string)TempData["doctors"]);
                DoctorListDoctorViewModel doctors = new DoctorListDoctorViewModel(searchDocs);
                return(View(doctors));
            }
            var doctorList = await _db.Doctors.Include(a => a.Reservations)
                             .ThenInclude(a => a.Doctor)
                             .OrderByDescending(a => a.Id)
                             .ToListAsync();

            DoctorListDoctorViewModel doctorsViewModel = new DoctorListDoctorViewModel(doctorList);

            return(View(doctorsViewModel));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> IsUsernameInUse(string username, DoctorListDoctorViewModel vm)
        {
            if (vm != null)
            {
                if (vm.Doctor.Email != null)
                {
                    username = vm.Doctor.Username;
                }

                if (vm.Doctors != null)
                {
                    foreach (var doctor in vm.Doctors.Where(doctor => doctor.Username != null))
                    {
                        username = doctor.Username;
                        break;
                    }
                }
            }

            if (User.Identity.IsAuthenticated)
            {
                if (User.IsInRole("ClinicManager"))
                {
                    return(Json(true));
                }
                var userUsername = _db.Users.FirstOrDefault(a => a.Username.Equals(User.Identity.Name))?.Username;
                if (username.Equals(userUsername))
                {
                    return(Json(true));
                }

                var isAvailableUsername = await _db.Users.AnyAsync(a => a.Username.Equals(username));

                return(isAvailableUsername ? Json($"نام کاربری {username} قبلا استفاده شده است") : Json(true));
            }

            var user = await _db.Users.FirstOrDefaultAsync(a => a.Username.Equals(username));

            return(user == null?Json(true) : Json($"قبلا استفاده شده است {username} نام کاربری"));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> IsEmailInUse(string email, DoctorListDoctorViewModel vm)
        {
            if (vm != null)
            {
                if (vm.Doctor.Email != null)
                {
                    email = vm.Doctor.Email;
                }

                if (vm.Doctors != null)
                {
                    foreach (var doctor in vm.Doctors.Where(doctor => doctor.Email != null))
                    {
                        email = doctor.Email;
                        break;
                    }
                }
            }

            if (User.Identity.IsAuthenticated)
            {
                if (User.IsInRole("ClinicManager"))
                {
                    return(Json(true));
                }

                var userEmail = _db.Users.FirstOrDefault(a => a.Username.Equals(User.Identity.Name))?.Email;
                if (email.Equals(userEmail))
                {
                    return(Json(true));
                }
                var isAvailableEmail = await _db.Users.AnyAsync(a => a.Email.Equals(email));

                return(isAvailableEmail ? Json($"ایمیل {email} قبلا استفاده شده است") : Json(true));
            }

            var user = await _db.Users.FirstOrDefaultAsync(a => a.Email.Equals(email));

            return(user == null?Json(true) : Json($"قبلا استفاده شده است {email} ایمیل"));
        }