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)); }
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 }
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)); }
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} نام کاربری")); }
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} ایمیل")); }