public bool ChangePassword(string emailAddress, string oldPassword, string newPassword)
        {
            bool updated = false;

            using (LogGroup logGroup = LogGroup.StartDebug("Changing user password."))
            {
                User user = RetrieveStrategy.New <User>(RequireAuthorisation).Retrieve <User>("Email", emailAddress);

                if (user != null)
                {
                    if (user.Password == oldPassword)
                    {
                        user.Password = Crypter.EncryptPassword(newPassword);

                        UpdateStrategy.New(user, RequireAuthorisation).Update(user);

                        updated = true;
                    }
                }

                LogWriter.Debug("Updated: " + updated.ToString());
            }

            return(updated);
        }
        public virtual void Refresh(ISubEntity[] items, bool updateModified)
        {
            Collection <ISubEntity> updated = new Collection <ISubEntity>();

            for (int i = 0; i < items.Length; i++)
            {
                int originalNumber = items[i].Number;

                items[i].Number = i + 1;               // +1 to change index (0 based) to number (1 based)

                if (originalNumber != items[i].Number)
                {
                    updated.Add(items[i]);
                }
            }

            foreach (ISubEntity item in updated)
            {
                ActivateStrategy.New(item, RequireAuthorisation).Activate(item);

                UpdateStrategy.New(item, RequireAuthorisation).Update(item);
            }
        }