public static bool ExecuteRequestRegisterValidation <T>(UserBase user, MessageCollection messages, DbContextManagerService <T> service) where T : DbContextManager { bool success = false; try { UserActivationCode activationCode = new UserActivationCode(); success = Rp3.Security.User.RequestValidityRegisterEmail(user, activationCode, service); if (success) { List <MailContact> contacts = new List <MailContact>(); contacts.Add(new MailContact() { Mail = user.Contact.Email, Name = user.Contact.Email }); new MailController().SendAsEmail(Rp3.Resources.TitleFor.RequestRegisterValidationMailSubject, contacts, "RequestValidationRegister", activationCode).DeliverAsync(); } } catch { messages.Add(new Message(Rp3.Resources.MessageFor.RequestValidationRegisterFail, Data.MessageType.Error)); success = false; } return(success); }
/// <summary> /// Saves the user activation code. /// </summary> /// <param name="userId">The user identifier.</param> /// <param name="activationCode">The activation code.</param> /// <returns></returns> /// <exception cref="ApplicationException">Repository GetRegistrationByEmail</exception> public string SaveUserActivationCode(int userId, string activationCode) { if (activationCode == null) { throw new ArgumentNullException(nameof(activationCode)); } if (userId <= 0) { throw new ArgumentOutOfRangeException(nameof(userId)); } var result = string.Empty; var userActivationCode = new UserActivationCode { ActivationCode = activationCode, DateCreated = DateTime.Now, ExpirationDate = DateTime.Now.AddHours(24), IsUsed = false, UserRegistrationId = userId, }; try { using ( var dbContext = (PitalyticsEntities)dbContextFactory.GetDbContext()) { dbContext.UserActivationCodes.Add(userActivationCode); dbContext.SaveChanges(); } } catch (Exception e) { throw new ApplicationException("Repository SaveUserActivationCode", e); } return(result); }
/// <summary> /// Stores the activation code. /// </summary> /// <param name="registrationId">The registration identifier.</param> /// <param name="activationCode">The activation code.</param> /// <returns></returns> /// <exception cref="ArgumentOutOfRangeException">registrationId</exception> /// <exception cref="ArgumentNullException">activationCode</exception> public string StoreActivationCode(int registrationId, string activationCode) { if (registrationId <= 0) { throw new ArgumentOutOfRangeException(nameof(registrationId)); } if (activationCode == null) { throw new ArgumentNullException(nameof(activationCode)); } var result = string.Empty; var newRecord = new UserActivationCode { UserId = registrationId, ActivationCode = activationCode, DateCreated = DateTime.Now, ExpirationDate = DateTime.Now.AddHours(24), // Activation Code Expires in 24 Hours }; try { using ( var dbContext = (HRMSEntities)this.dbContextFactory.GetDbContext(ObjectContextType.HRMS)) { dbContext.UserActivationCodes.Add(newRecord); dbContext.SaveChanges(); } } catch (Exception e) { result = string.Format("StoreActivationCode - {0} , {1}", e.Message, e.InnerException != null ? e.InnerException.Message : ""); } return(result); }
private bool ExecuteRequestPasswordRecovery(ResetPassword resetPassword) { ContactBase contact = null; UserActivationCode activationCode = new UserActivationCode(); bool success = false; try { if (!string.IsNullOrEmpty(resetPassword.Email)) { resetPassword.Email = resetPassword.Email.Trim(); } if (!Rp3.Text.ValidityEmail(resetPassword.Email)) { this.AddMessage(Rp3.Resources.ErrorMessageValidation.InvalidEmailFormat, Data.MessageType.Error); } else { contact = DataBase.Contacts.Get(p => p.User.Contact.Email == resetPassword.Email, includeProperties: "User").FirstOrDefault(); if (contact == null) { this.AddMessage(Rp3.Resources.MessageFor.EmailAccountNotExists, Data.MessageType.Error); } else { success = Rp3.Security.User.RequestPasswordRecovery(contact.User, activationCode); if (success) { this.AddMessage(Rp3.Resources.MessageFor.RequestForPasswordRecovery, Data.MessageType.Success); } else { this.AddMessage(Rp3.Resources.MessageFor.RequestPasswordRecoveryFail, Data.MessageType.Error); } } } } catch { this.AddMessage(Rp3.Resources.MessageFor.RequestPasswordRecoveryFail, Data.MessageType.Error); } if (success) { try { List <MailContact> contacts = new List <MailContact>(); contacts.Add(new MailContact() { Mail = resetPassword.Email, Name = resetPassword.Email }); new MailController().SendAsEmail(Rp3.Resources.TitleFor.RequestPasswordRecoveryMailSubject, contacts, "RequestPasswordRecovery", activationCode).Deliver(); } catch { this.AddMessage(Rp3.Resources.MessageFor.RequestPasswordRecoveryFail, Data.MessageType.Error); return(false); } } return(success); }