コード例 #1
0
        /// <summary>
        /// Method to add patient to database.
        /// </summary>
        /// <param name="newPatientDto">newPatientDto contains information of patient to be added.</param>
        /// <returns>ResponseModel containing patient addition status</returns>
        public ResponseModel Add(PatientDto newPatientDto, int userId)
        {
            var validationStatus = ValidateRequest.ValidatePatientDto(newPatientDto);

            if (!(bool)validationStatus.First)
            {
                return(ReturnStatements.BadRequestResponse(validationStatus.Second));
            }

            newPatientDto = validationStatus.Second;

            using (var unitOfWork = new UnitOfWork())
            {
                var dbPatient = DtoToDatabase.Patient(newPatientDto, userId);
                unitOfWork.Patients.Add(dbPatient);
                var saveResponse = unitOfWork.Complete();

                if (saveResponse.Equals(Integers.UnsuccessfullDatabaseSave))
                {
                    return(ReturnStatements.FailedResponse(DynamicListForResponse.Create(newPatientDto)));
                }

                SendMail(newPatientDto);
                return(ReturnStatements.SuccessResponse(DynamicListForResponse.Create(newPatientDto)));
            }
        }
コード例 #2
0
        /// <summary>
        /// Method to add user to database.
        /// </summary>
        /// <param name="newUserDto">newUserDto contains personal information of user and user id and password.</param>
        /// <returns>ResponseModel of user addition in database.</returns>
        public ResponseModel Add(UserDto newUserDto)
        {
            var validationStatus = ValidateRequest.ValidateUserDto(newUserDto);

            if (!(bool)validationStatus.First)
            {
                return(ReturnStatements.BadRequestResponse(validationStatus.Second));
            }
            newUserDto = validationStatus.Second;
            using (var unitOfWork = new UnitOfWork())
            {
                var checkIfUserAlreadyExist = unitOfWork.Users.Find(m => m.Handle.Equals(newUserDto.Handle) || m.EmailId.Equals(newUserDto.EmailId)) != null;

                if (checkIfUserAlreadyExist)
                {
                    return(ReturnStatements.BadRequestResponse(Strings.UserAlreadyExist));
                }
                var dbUser         = DtoToDatabase.User(newUserDto);
                var loginDto       = new LoginDto(loginHandle: newUserDto.Handle, loginPassword: newUserDto.Password);
                var dbUserPassword = DtoToDatabase.UserPassword(loginDto, dbUser.Id);
                dbUserPassword.User = dbUser;
                unitOfWork.UserPasswords.Add(dbUserPassword);

                var saveResponse = unitOfWork.Complete();

                if (saveResponse.Equals(Integers.UnsuccessfullDatabaseSave))
                {
                    return(ReturnStatements.FailedResponse(DynamicListForResponse.Create(loginDto)));
                }

                SendMail(loginDto.LoginHandle, dbUser.VerificationCode, dbUser.EmailId, false);
                return(ReturnStatements.SuccessResponse(DynamicListForResponse.Create(loginDto)));
            }
        }
コード例 #3
0
        /// <summary>
        /// Send email to patient in case of successfull registration.
        /// </summary>
        /// <param name="patientDto">patientDto is the information model for patient.</param>
        private void SendMail(PatientDto patientDto)
        {
            var emailList = new List <string>();

            emailList.Add(patientDto.EmailId);
            var emailDto = new EmailServiceDto(Strings.PatientRegisteredSubject, Functions.CreateMailBody(patientDto.EmailId, patientDto.FirstName), Strings.UserEmailId, Strings.UserEmailPassword, emailList, Strings.SmtpServer, Integers.PortNumberForEmail, true);
            var emailer  = new EmailSender(emailDto);

            emailer.Send();

            using (var unitOfWork = new UnitOfWork())
            {
                unitOfWork.EmailLogs.Add(DtoToDatabase.EmailLog(emailDto, true));
                unitOfWork.Complete();
            }
        }
コード例 #4
0
        /// <summary>
        /// Private method to send a verification email to a new user.
        /// </summary>
        /// <param name="loginDto">loginDto contains login detail of a new user trying to log in.</param>
        /// <param name="emailId">emailId is the email id of the user who is registering himself on the system</param>
        /// <param name="verificationCode">verificationCode is the code to send to the user. It is always 6 digits.</param>
        private void SendMail(string handle, string verificationCode, string emailId, bool isForgotPasswordMail)
        {
            var emailList = new List <string>();

            emailList.Add(emailId);
            var mailSubject = Strings.SuccessfullRegistrationSubject;
            var mailBody    = Functions.CreateMailBody(handle, emailId, verificationCode);

            if (isForgotPasswordMail)
            {
                mailBody    = Functions.CreateMailBodyForgotPassword(handle, verificationCode, emailId);
                mailSubject = Strings.ForgotPasswordRequest;
            }
            var emailDto = new EmailServiceDto(mailSubject, mailBody, Strings.UserEmailId, Strings.UserEmailPassword, emailList, Strings.SmtpServer, Integers.PortNumberForEmail, true);
            var emailer  = new EmailSender(emailDto);

            emailer.Send();
            using (var unitOfWork = new UnitOfWork())
            {
                unitOfWork.EmailLogs.Add(DtoToDatabase.EmailLog(emailDto, true));
                unitOfWork.Complete();
            }
        }
コード例 #5
0
        /// <summary>
        /// Method to add patient insurance to database.
        /// </summary>
        /// <param name="newpatientInsurance">newpatientInsurance containing required information of patient insurance</param>
        /// <param name="userId">userId is the id of the logged in user who made the request to add a patient insurance</param>
        /// <returns>HttpResponseMessage containing addition status of patient insurance</returns>
        public ResponseModel Add(AddPatientInsurance newPatientInsurance, int userId)
        {
            var validationStatus = ValidateRequest.ValidatePatientInsuranceDto(newPatientInsurance);

            if (!(bool)validationStatus.First)
            {
                return(ReturnStatements.BadRequestResponse(validationStatus.Second));
            }
            newPatientInsurance = validationStatus.Second;
            using (var unitOfWork = new UnitOfWork())
            {
                var dbPatientInsurance = DtoToDatabase.PatientInsurance(new Pair {
                    First = newPatientInsurance, Second = userId
                });
                unitOfWork.PatientInsurances.Add(dbPatientInsurance);
                var saveResponse = unitOfWork.Complete();

                if (saveResponse.Equals(Integers.UnsuccessfullDatabaseSave))
                {
                    return(ReturnStatements.FailedResponse(DynamicListForResponse.Create(newPatientInsurance)));
                }
                return(ReturnStatements.SuccessResponse(DynamicListForResponse.Create(newPatientInsurance)));
            }
        }