Esempio n. 1
0
        public async Task <bool> AddUserWithDataAnnotation(User user, string methodName)
        {
            try
            {
                if (String.IsNullOrEmpty(methodName))
                {
                    ValidationTool.Validate(new UserValidator(), user);
                    UserValidator    validator = new UserValidator();
                    ValidationResult result    = validator.Validate(user);
                }
                else
                {
                    //	ValidationTool.Validate(new UserValidatorNotNull(), user);
                    UserValidatorNotNull validator = new UserValidatorNotNull();
                    ValidationResult     result    = validator.Validate(user);
                    if (!result.IsValid)
                    {
                        return(false);
                    }
                }



                return(await _userDal.AddAsync(user));
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public bool SocialUserOperation(int socialType, string socialID, string email, string username, string firstname, string lastname, string methodName)
        {
            //bu kullanıcı daha once kayıt olmuşmu
            SocialUser socialUser = _socialUserDal.Get(t => t.SOCIALID == socialID && t.SocialType == socialType);

            //daha önce kayıt olmamış ise
            if (socialUser == null)
            {
                //bir kullanıcı tanımlama
                User user = new User
                {
                    ActiveStatus      = (int)SystemConstannts.Situation.SOCİALUSER,
                    Name              = firstname,
                    Surname           = lastname,
                    isActive          = true,
                    Password          = Common.RandomSfr.Generate(8),
                    AccountCreateDate = DateTime.Now,
                    AccountActiveDate = DateTime.Now,
                    Address           = "hdfdjfdk jdhdfjd",
                    PhoneNumber       = "12344555"
                };
                user.Tokens = new List <Token>();

                //o kullanıcıyı socialUser olarak atama
                socialUser = new SocialUser
                {
                    CreateDate = DateTime.Now,
                    SocialType = socialType,
                    SOCIALID   = socialID,
                    UserID     = user.ID
                };

                //o kullanıcıya token oluşturma
                Token token = new Token
                {
                    StartDate  = DateTime.Now,
                    ExpireDate = DateTime.Now.AddHours(6),
                    TokenValue = Security.sha512encrypt(RandomSfr.Generate(20)),
                };
                //user.Tokens.Add(token);
                HttpCookie c*k = new HttpCookie("userAuth", token.TokenValue);
                c*k.Expires = DateTime.Now.AddHours(6);
                HttpContext.Current.Response.Cookies.Add(c*k);
                HttpContext.Current.Session["User"] = user;

                //oluşturulan user ve socialuser ı database e kayıt etme
                //  int eklenenUserID = _userDal.UserAddReturnUserId(user);
                //var userr = _userDal.Get(t => t.Name == user.Name && t.Surname == user.Surname && t.Password == user.Password);
                //  socialUser.UserID = eklenenUserID;

                if (String.IsNullOrEmpty(methodName))
                {
                    //ValidationTool.Validate(new UserValidator(), user);
                    UserValidator    validator = new UserValidator();
                    ValidationResult result    = validator.Validate(user);

                    // TANSU BURAYA DUSMESI LAZIM CODUN
                    // Kullaniciyi eklemeden buraya breakpoint koyar misin bakalim buraya dusucek mi
                    // Tam _socialUserDal.Add(socialUser); un oraya koy ekleme yapmasin ama oraya dustugunu gorelim
                    //oluşturulan user ve socialuser ı database e kayıt etme
                    user.Tokens.Add(token);
                    int eklenenUserID = _userDal.UserAddReturnUserId(user);
                    //var userr = _userDal.Get(t => t.Name == user.Name && t.Surname == user.Surname && t.Password == user.Password);
                    socialUser.UserID = eklenenUserID;



                    _socialUserDal.Add(socialUser);
                }
                else
                {
                    ValidationTool.Validate(new UserValidatorNotNull(), user);
                    UserValidatorNotNull validator = new UserValidatorNotNull();
                    ValidationResult     result    = validator.Validate(user);
                }
                // _socialUserDal.Add(socialUser); buradaydi If icerisine aldim


                try
                {
                    return(true);
                }
                catch (Exception ex)
                {
                    return(false);
                }
            }
            else
            {
                int               id  = socialUser.UserID;
                Token             tkn = _tokenDal.Get(t => t.User_ID == id);
                List <SocialUser> socialUserEager;
                if (tkn.ExpireDate < DateTime.Now)
                {
                    //bu kullanıcı daha once kayıt olmuş ise ve token expiredate zamanı geçmiş ise Token ekle
                    Token token = new Token
                    {
                        StartDate  = DateTime.Now,
                        ExpireDate = DateTime.Now.AddHours(6),
                        TokenValue = Security.sha512encrypt(RandomSfr.Generate(20)),
                    };
                    //socialUser.User.Tokens.Add(token); işlemi için oluşturulan EagerLoadingUser() mettodundan socialuser alma
                    socialUserEager = EagerLoadingUser();
                    foreach (var item in socialUserEager)
                    {
                        item.User.Tokens.Add(token);
                    }

                    HttpCookie c*k = new HttpCookie("userAuth", token.TokenValue);
                    c*k.Expires = DateTime.Now.AddHours(6);
                    HttpContext.Current.Response.Cookies.Add(c*k);
                }
                socialUserEager = EagerLoadingUser();
                foreach (var item in socialUserEager)
                {
                    HttpContext.Current.Session["User"] = item.User;
                }

                try
                {
                    return(true);
                }
                catch (Exception ex)
                {
                    return(false);
                }
            }

            return(false);
        }