Beispiel #1
0
        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));
        }
Beispiel #2
0
        public CompanyProfessionalVm(IProfessionalQueries professionalQueries, ICompanyQueries companyQueries, string userId)
        {
            _professionalQueries = professionalQueries;
            _companyQueries      = companyQueries;

            Professional = _professionalQueries.GetUiDto_ProfessionalFromUserGuid(userId);
            Company      = _companyQueries.GetUiDto_CompanyFromUserGuid(userId);
        }
Beispiel #3
0
        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));
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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();
        }