示例#1
0
        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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
        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);
        }