public BusinessLayerResult <KodlatvUser> ChangePasswordUser(PasswordViewModel data)
        {
            KodlatvUser user = Find(x => x.Email == data.Email);
            BusinessLayerResult <KodlatvUser> layerResult = new BusinessLayerResult <KodlatvUser>();

            if (user != null)
            {
                if (user.Email == data.Email)
                {
                    layerResult.Result = Find(x => x.Email == data.Email);

                    string siteUri     = ConfigHelper.Get <string>("SiteRootUri");
                    string activateUri = $"{siteUri}/Other/ChangePassword/{layerResult.Result.ActivateGuid}";
                    string body        = $"Merhaba {layerResult.Result.Username};<br><br>Şifrenizi değiştirmek için <a href='{activateUri}' target='_blank'>tıklayınız</a>.";

                    MailHelper.SendMail(body, layerResult.Result.Email, "Kodla TV Şifre Değiştirme");
                }
            }

            return(layerResult);
        }
        public BusinessLayerResult <KodlatvUser> UpdateProfile(KodlatvUser data)
        {
            KodlatvUser db_user = Find(x => x.Username == data.Username || x.Email == data.Email);
            BusinessLayerResult <KodlatvUser> res = new BusinessLayerResult <KodlatvUser>();

            if (db_user != null && db_user.id != data.id)
            {
                if (db_user.Username == data.Username)
                {
                    res.AddError(ErrorMessageCode.PaymentNotFound, "Kullanıcı adı kayıtlı.");
                }

                if (db_user.Email == data.Email)
                {
                    res.AddError(ErrorMessageCode.EmailAlreadyExist, "E-posta adresi kayıtlı.");
                }

                return(res);
            }

            res.Result              = Find(x => x.id == data.id);
            res.Result.Email        = data.Email;
            res.Result.Name         = data.Name;
            res.Result.Surname      = data.Surname;
            res.Result.Password     = data.Password;
            res.Result.Username     = data.Username;
            res.Result.ModifiedUser = App.Common.GetCurrentUsername();

            if (string.IsNullOrEmpty(data.Imagefile) == false)
            {
                res.Result.Imagefile = data.Imagefile;
            }

            if (Uptade(res.Result) == 0)
            {
                res.AddError(ErrorMessageCode.ProfileCouldNotUpdated, "Profil güncellenemedi.");
            }

            return(res);
        }
        public new BusinessLayerResult <KodlatvUser> Update(KodlatvUser data)
        {
            KodlatvUser db_user = Find(x => x.Username == data.Username || x.Email == data.Email);
            BusinessLayerResult <KodlatvUser> res = new BusinessLayerResult <KodlatvUser>();

            res.Result = data;

            if (db_user != null && db_user.id != data.id)
            {
                if (db_user.Username == data.Username)
                {
                    res.AddError(ErrorMessageCode.PaymentNotFound, "Kullanıcı adı kayıtlı.");
                }

                if (db_user.Email == data.Email)
                {
                    res.AddError(ErrorMessageCode.EmailAlreadyExist, "E-posta adresi kayıtlı.");
                }

                return(res);
            }

            res.Result              = Find(x => x.id == data.id);
            res.Result.Email        = data.Email;
            res.Result.Name         = data.Name;
            res.Result.Surname      = data.Surname;
            res.Result.Password     = data.Password;
            res.Result.Username     = data.Username;
            res.Result.IsActive     = data.IsActive;
            res.Result.isAdmin      = data.isAdmin;
            res.Result.ModifiedUser = App.Common.GetCurrentUsername();

            if (base.Uptade(res.Result) == 0)
            {
                res.AddError(ErrorMessageCode.UserCouldNotUpdated, "Kullanıcı güncellenemedi.");
            }

            return(res);
        }
        public BusinessLayerResult <KodlatvUser> ActivateUser(Guid activateId)
        {
            BusinessLayerResult <KodlatvUser> res = new BusinessLayerResult <KodlatvUser>();

            res.Result = Find(x => x.ActivateGuid == activateId);

            if (res.Result != null)
            {
                if (res.Result.IsActive)
                {
                    res.AddError(ErrorMessageCode.UserAlreadyActive, "Kullanıcı zaten aktif edilmiştir.");
                    return(res);
                }

                res.Result.IsActive = true;
                Uptade(res.Result);
            }
            else
            {
                res.AddError(ErrorMessageCode.ActivateIdDoesNotExists, "Aktifleştirilecek kullanıcı bulunamadı.");
            }

            return(res);
        }
        public BusinessLayerResult <KodlatvUser> ActivateChangePassword(Guid activateId)
        {
            BusinessLayerResult <KodlatvUser> res = new BusinessLayerResult <KodlatvUser>();

            res.Result = Find(x => x.ActivateGuid == activateId);

            if (res.Result != null)
            {
                if (res.Result.IsActive)
                {
                    res.AddError(ErrorMessageCode.UserAlreadyActive, "Şifre değiştirme işlemi zaten yapılmıştır.");
                    return(res);
                }

                res.Result.IsActive = true;
                Uptade(res.Result);
            }
            else
            {
                res.AddError(ErrorMessageCode.ActivateIdDoesNotExists, "Şifre değiştirilecek kullanıcı bulunamadı.");
            }

            return(res);
        }