public new RepositoryLayerResult <Users> Insert(Users data)
        {
            Users user = Find(x => x.Username == data.Username || x.Email == data.Email);
            RepositoryLayerResult <Users> layerResult = new RepositoryLayerResult <Users>();

            layerResult.Result = data;
            if (user != null)
            {
                if (user.Username == data.Username)
                {
                    layerResult.AddError(ErrorMessageCode.UsernameAlreadyExists, "This username already exists!");
                }
                if (user.Email == data.Email)
                {
                    layerResult.AddError(ErrorMessageCode.UserCouldNotInserted, "Email already exists!");
                }
            }
            else
            {
                layerResult.Result.ProfileImageFilename = "avatar.png";
                layerResult.Result.ActiveteGuid         = Guid.NewGuid();


                if (base.Insert(layerResult.Result) == 0)
                {
                    layerResult.AddError(ErrorMessageCode.UserCouldNotInserted, "Failed to Add User.");
                }
            }
            return(layerResult);
        }
        public RepositoryLayerResult <Users> LoginUser(LoginViewModel data)
        {
            RepositoryLayerResult <Users> layerResult = new RepositoryLayerResult <Users>();

            layerResult.Result = Find(x => x.Username == data.Username && x.Password == data.Password);

            if (layerResult.Result != null)
            {
                if (!layerResult.Result.IsActive)
                {
                    layerResult.AddError(ErrorMessageCode.UserIsNotActive, "User is not activated.");
                    layerResult.AddError(ErrorMessageCode.CheckYourEmail, "Please check your email address.");
                }
            }
            else
            {
                layerResult.AddError(ErrorMessageCode.UsernameOrPasswordWrong, "Username or password incorrect.");
            }

            return(layerResult);
        }
        public RepositoryLayerResult <Users> GetUserById(int id)
        {
            RepositoryLayerResult <Users> layerResult = new RepositoryLayerResult <Users>();

            layerResult.Result = Find(x => x.Id == id);
            if (layerResult.Result == null)
            {
                layerResult.AddError(ErrorMessageCode.UserNotFound, "User not found.");
            }

            return(layerResult);
        }
        public new RepositoryLayerResult <Users> Update(Users data)
        {
            Users user = Find(x => x.Id != data.Id && (x.Username == data.Username || x.Email == data.Email));
            RepositoryLayerResult <Users> layerResult = new RepositoryLayerResult <Users>();

            layerResult.Result = data;

            if (user != null && user.Id != data.Id)
            {
                if (user.Username == data.Username)
                {
                    layerResult.AddError(ErrorMessageCode.UsernameAlreadyExists, "Username registered.");
                }

                if (user.Email == data.Email)
                {
                    layerResult.AddError(ErrorMessageCode.UserCouldNotInserted, "E-mail address already registered.");
                }

                return(layerResult);
            }

            layerResult.Result          = Find(x => x.Id == data.Id);
            layerResult.Result.Email    = data.Email;
            layerResult.Result.Name     = data.Name;
            layerResult.Result.Surname  = data.Surname;
            layerResult.Result.AboutMe  = data.AboutMe;
            layerResult.Result.Password = data.Password;
            layerResult.Result.Username = data.Username;
            layerResult.Result.IsActive = data.IsActive;
            layerResult.Result.IsAdmin  = data.IsAdmin;


            if (base.Update(layerResult.Result) == 0)
            {
                layerResult.AddError(ErrorMessageCode.UserCouldNotUpdate, "Failed to update user.");
            }

            return(layerResult);
        }
        public RepositoryLayerResult <Users> RegisterUser(RegisterViewModel data)
        {
            Users user = Find(x => x.Username == data.Username || x.Email == data.EMail);
            RepositoryLayerResult <Users> layerResult = new RepositoryLayerResult <Users>();

            if (user != null)
            {
                if (user.Username == data.Username)
                {
                    layerResult.AddError(ErrorMessageCode.UsernameAlreadyExists, "This username already exists!");
                }
                if (user.Email == data.EMail)
                {
                    layerResult.AddError(ErrorMessageCode.UserCouldNotInserted, "Email already exists!");
                }
            }
            else
            {
                int Result = base.Insert(new Users()
                {
                    Username             = data.Username,
                    Email                = data.EMail,
                    ProfileImageFilename = "avatar.png",
                    Password             = data.Password,
                    ActiveteGuid         = Guid.NewGuid(),
                    IsActive             = false,
                    IsAdmin              = false
                });

                if (Result > 0)
                {
                    layerResult.Result = Find(x => x.Email == data.EMail && x.Username == data.Username);
                    string siteUri     = ConfigHelper.Get <string>("SiteRootUri");
                    string activateUri = $"{siteUri}/Home/UserActivate/{layerResult.Result.ActiveteGuid}";
                    string body        = $"<a href='{activateUri}' target='_blank'>Click here</a> to activate your account.";
                    MailHelper.SendMail(body, layerResult.Result.Email, "Account activation");
                }
            }
            return(layerResult);
        }
        public RepositoryLayerResult <Users> UpdateProfile(Users data)
        {
            Users user = Find(x => x.Id != data.Id && (x.Username == data.Username || x.Email == data.Email));
            RepositoryLayerResult <Users> layerResult = new RepositoryLayerResult <Users>();

            if (user != null && user.Id != data.Id)
            {
                if (user.Username == data.Username)
                {
                    layerResult.AddError(ErrorMessageCode.UsernameAlreadyExists, "Username registered.");
                }

                if (user.Email == data.Email)
                {
                    layerResult.AddError(ErrorMessageCode.UserCouldNotInserted, "E-mail address already registered.");
                }

                return(layerResult);
            }

            layerResult.Result          = Find(x => x.Id == data.Id);
            layerResult.Result.Email    = data.Email;
            layerResult.Result.Name     = data.Name;
            layerResult.Result.Surname  = data.Surname;
            layerResult.Result.AboutMe  = data.AboutMe;
            layerResult.Result.Password = data.Password;
            layerResult.Result.Username = data.Username;

            if (string.IsNullOrEmpty(data.ProfileImageFilename) == false)
            {
                layerResult.Result.ProfileImageFilename = data.ProfileImageFilename;
            }

            if (base.Update(layerResult.Result) == 0)
            {
                layerResult.AddError(ErrorMessageCode.UserCouldNotUpdate, "Failed to update profile.");
            }

            return(layerResult);
        }
        public RepositoryLayerResult <Users> ActivateUser(Guid id)
        {
            RepositoryLayerResult <Users> layerResult = new RepositoryLayerResult <Users>();

            layerResult.Result = Find(x => x.ActiveteGuid == id);

            if (layerResult.Result != null)
            {
                if (layerResult.Result.IsActive)
                {
                    layerResult.AddError(ErrorMessageCode.UserAlreadyActive, "The user has already been activated.");
                    return(layerResult);
                }

                layerResult.Result.IsActive = true;
                Update(layerResult.Result);
            }
            else
            {
                layerResult.AddError(ErrorMessageCode.ActivateIdDoesNotExists, "No users to activate");
            }
            return(layerResult);
        }
Exemplo n.º 8
0
        public RepositoryLayerResult <Note> Updatee(Note data)
        {
            RepositoryLayerResult <Note> layerResult = new RepositoryLayerResult <Note>();

            layerResult.Result            = Find(x => x.Id == data.Id);
            layerResult.Result.IsDraft    = data.IsDraft;
            layerResult.Result.CategoryId = data.CategoryId;
            layerResult.Result.Text       = data.Text;
            layerResult.Result.Title      = data.Title;

            if (string.IsNullOrEmpty(data.NoteImageFilename) == false)
            {
                layerResult.Result.NoteImageFilename = data.NoteImageFilename;
            }

            if (base.Update(layerResult.Result) == 0)
            {
                layerResult.AddError(ErrorMessageCode.UserCouldNotUpdate, "Failed to update note.");
            }

            return(layerResult);
        }