/// <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))); } }
/// <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))); } }
/// <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(); } }
/// <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(); } }
/// <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))); } }