public async Task <ActionResult> Edit() { var professional = _professionalQueries.GetUiDto_ProfessionalFromUserGuid(User.Identity.GetUserId()); if (professional == null) { // Create the professional. If there's a linking key, don't worry about it for now. professional = new ProfessionalUiDto(); professional.ProfessionalId = new Guid(); professional.ProfessionalUserId = AppointmentsDb.Helpers.GuidHelper.GetGuid(User.Identity.GetUserId()); professional.EmailAddress = User.Identity.Name; } else { // If there's a pending key to link the pro to the company, do it. var specialKey = new Helpers.Cookies().GetCookieAndDelete(this, Helpers.Cookies.CompanyLinkingKeyCookieName); if (!string.IsNullOrWhiteSpace(specialKey)) { var success = await Task.Run(() => _linkingKeyQueries.UseLinkingKey_AddProfessionalToCompany(User.Identity.GetUserId(), specialKey)); return(RedirectToAction("UseCompanyKeyComplete", "LK", new { isSuccess = success })); } } return(View(professional)); }
public CompanyProfessionalVm(IProfessionalQueries professionalQueries, ICompanyQueries companyQueries, string userId) { _professionalQueries = professionalQueries; _companyQueries = companyQueries; Professional = _professionalQueries.GetUiDto_ProfessionalFromUserGuid(userId); Company = _companyQueries.GetUiDto_CompanyFromUserGuid(userId); }
public async Task <ActionResult> Edit([Bind(Include = "ProfessionalId,ProfessionalIndex,ProfessionalUserId,Honorific,Forename,MiddleName,Surname,Suffix,Gender,EmailAddress,Telephone,TelephoneMobile,IsAvailableForAppointments")] ProfessionalUiDto professional) { if (ModelState.IsValid) { // DONT LET ANYONE CHANGE THEIR EMAIL ADDRESS THEMSELVES. WE WANT THIS TO BE THE SAME AS THE LOGIN. professional.EmailAddress = User.Identity.Name; _professionalQueries.AddOrUpdateProfessionalFromDto(User.Identity.GetUserId(), professional); return(RedirectToAction("Index", "Appointments")); } else { return(View(professional)); } }
public ProfessionalUiDto GetUiDto_ProfessionalFromUserGuid(string userIdString) { Guid userId = GuidHelper.GetGuid(userIdString); ProfessionalUiDto returnValue = null; var pro = GetProfessionalFromUserGuid(userIdString); // strip back to the info we want. if (pro != null) { returnValue = _mapper.Map <Professional, ProfessionalUiDto>(pro); } return(returnValue); }
public void AddOrUpdateProfessionalFromDto(string userIdString, ProfessionalUiDto professionalDto) { Guid userId = GuidHelper.GetGuid(userIdString); var dbPro = GetProfessionalFromUserGuid(userIdString); // Validate! if (dbPro != null && (professionalDto.ProfessionalUserId != userId || professionalDto.ProfessionalId != dbPro.ProfessionalId)) { throw new InvalidOperationException("Only the owner can set their professional details."); } bool isInsert = false; if (dbPro == null) { dbPro = new Professional(); dbPro.CreatedDateTime = DateTime.Now; dbPro.ProfessionalId = Guid.NewGuid(); isInsert = true; } dbPro.ProfessionalUserId = professionalDto.ProfessionalUserId; dbPro.Honorific = professionalDto.Honorific; dbPro.Forename = professionalDto.Forename; dbPro.MiddleName = professionalDto.MiddleName; dbPro.Surname = professionalDto.Surname; dbPro.Suffix = professionalDto.Suffix; dbPro.Gender = professionalDto.Gender; dbPro.EmailAddress = professionalDto.EmailAddress; dbPro.Telephone = professionalDto.Telephone; dbPro.TelephoneMobile = professionalDto.TelephoneMobile; dbPro.IsAvailableForAppointments = professionalDto.IsAvailableForAppointments; if (isInsert) { _unitOfWork.ProfessionalsRepository.Insert(dbPro); } else { _unitOfWork.ProfessionalsRepository.Update(dbPro); } _unitOfWork.Save(); }