public async Task <int> CreateDoctor(CreateDoctorViewModel model) { var doctor = new Doctor { Name = model.Name, Surname = model.Surname, Email = model.Email, Phone = model.Phone, Specialization = (Specialization)Enum.Parse(typeof(Specialization), model.Specialization), }; try { await _dbContext.Doctors.AddAsync(doctor); await _dbContext.SaveChangesAsync(); } catch (Exception ex) { throw new ClinicException(ErrorCodes.SavingChangesError, ex); } return(doctor.Id); }
public async Task <ActionResult> CreateDoctor(CreateDoctorViewModel model) { if (ModelState.IsValid) { ApplicationUser user = new ApplicationUser { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); ApplicationUser applicationUser = UserManager.FindByEmail(user.Email); if (!result.Succeeded) { return(View("Error", result.Errors)); } if (result.Succeeded) { result = await UserManager.AddToRoleAsync(applicationUser.Id, "Administrators"); return(RedirectToAction("Index")); } else { AddErrorsFromResult(result); } } return(View(model)); }
public ActionResult Create() { var doctor = new CreateDoctorViewModel(); doctor.Specialities = GetDoctorTypeListForPatientsViewModel(_specialityService.GetAllSpecialities()); return(View(doctor)); }
public async Task <IActionResult> Create(CreateDoctorViewModel model) { if (!ModelState.IsValid) { model.Specializations = _doctorService.GetSpecializations(); return(View(model)); } var doctorId = await _doctorService.CreateDoctor(model); return(RedirectToAction("Details", new { id = doctorId })); }
public async Task <ActionResult> Create(CreateDoctorViewModel doctorViewModel) { if (!ModelState.IsValid) { doctorViewModel.Specialities = GetDoctorTypeListForPatientsViewModel(_specialityService.GetAllSpecialities()); return(View(doctorViewModel)); } var doctor = _mapper.Map <CreateDoctorViewModel, Doctor>(doctorViewModel); if (!_doctorService.CheckUniqueness(doctor)) { ModelState.AddModelError("", "Doctor with same UserName or Email exist!"); doctorViewModel.Specialities = GetDoctorTypeListForPatientsViewModel(_specialityService.GetAllSpecialities()); return(View(doctorViewModel)); } await _doctorService.Create(doctor); _loggerService.Info($"{User.Identity.Name} added {doctor.FirstName} {doctor.LastName}"); return(RedirectToAction("Index")); }