Beispiel #1
0
        public static string Register(string UserEmail, string Password, string DeviceToken)
        {
            DeviceTokenEntity CurrentDeviceTocken = new DeviceTokenEntity() { DeviceToken = DeviceToken };
            var ExistToken = UserService.CheckTokenForRegister(CurrentDeviceTocken, UserEmail);
            if (ExistToken != null)
            {
                if (ExistToken.DeviceEmail != UserEmail)
                {
                    var IsEmailRegister = UserService.IsEmailExist(UserEmail);
                    if (IsEmailRegister)
                        return "Email Allready Registered";
                    else
                    {
                        if (ExistToken.DidChangeToday)
                            return "you have used 2 accounts on this device";
                        else
                            return "this device is bounded to another account ";

                    }
                }
                return "Error Allready Registred Account on this Device";


            }
            else
            {
                if (!UserService.IsEmailExist(UserEmail))
                {
                    var Data = UserService.SaveNewUser(UserEmail, Password, DeviceToken);
                    return Data;
                }
                return "Email Allready Registered";

            }
        }
Beispiel #2
0
        public static DeviceTokenEntity CheckTokenForRegister(DeviceTokenEntity DeviceTokenEntity, string SentEmail)
        {
            using (var Context = new UsersContext())
            {
                DeviceTokenEntity CurrentToken = new DeviceTokenEntity();
               User CurrentUser = GetCurrentUser(SentEmail);
                if (CurrentUser != null)
                {
                    Account CurrentAccount = Context.Accounts.Where(p => p.UserID == CurrentUser.UserID).FirstOrDefault();
                    // CurrentToken = Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken && p.AccountID == CurrentAccount.AccountID).Any();
                    if (Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken && p.AccountID == CurrentAccount.AccountID).Any())
                    {
                        CurrentToken = Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken && p.AccountID == CurrentAccount.AccountID).FirstOrDefault();
                        CurrentToken.DeviceEmail = null;
                        return CurrentToken;
                    }
                    else // Existed Account login with new Device
                    {
                        var NewToken = UserService.SaveNewToken(CurrentAccount.AccountID, DeviceTokenEntity.DeviceToken);
                        var newTokenEntity = new DeviceTokenEntity() { AccountID = CurrentAccount.AccountID, DeviceToken = NewToken, DeviceEmail = null };
                        return newTokenEntity;
                    }

                }
                else
                {
                    CurrentToken = Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken).FirstOrDefault();
                    if (CurrentToken != null)
                    {
                        var deviceUser = (from acc in Context.Accounts
                                          where
                    CurrentToken.AccountID == acc.AccountID
                                          select acc.UserID).FirstOrDefault();

                        CurrentToken.DeviceEmail = (from Usr in Context.Users where Usr.UserID == deviceUser select Usr.Email).FirstOrDefault();
                        return CurrentToken;

                    }
                    return null;
                } 
                return CurrentToken;
            }

        }
Beispiel #3
0
        public static CheckTokenResult CheckTokenForLogin(DeviceTokenEntity DeviceTokenEntity, string SentEmail,string Password )
        {
            using (var Context = new UsersContext())
            {
                DeviceTokenEntity CurrentToken = new DeviceTokenEntity();
                User CurrentUser = new User();
                if (Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken).Any())
                {
                    CurrentToken = Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken).FirstOrDefault();
                    var EmailCurrentToken = "";
                    if (CurrentToken != null)
                    {
                        var deviceUser = (from acc in Context.Accounts
                                          where
                    CurrentToken.AccountID == acc.AccountID
                                          select acc.UserID).FirstOrDefault();

                        EmailCurrentToken = (from Usr in Context.Users where Usr.UserID == deviceUser select Usr.Email).FirstOrDefault();
                    }
                    if (EmailCurrentToken == SentEmail)
                    {
                      //  if(!string.IsNullOrEmpty(Password))
                        CurrentUser = GetCurrentUser(SentEmail,Password);
                       // else
                         //   CurrentUser = GetCurrentUser(SentEmail);// social media login 

                        if (CurrentUser != null) return CheckTokenResult.OK;
                        else return CheckTokenResult.ErrorInvalidPassword;

                    }
                    else
                    {
                        if (CurrentToken.DidChangeToday)
                            return CheckTokenResult.ErrorDidChangeToday;
                        else
                        {
                            if (!string.IsNullOrEmpty(Password))
                                CurrentUser = GetCurrentUser(SentEmail, Password);
                            else
                                CurrentUser = GetCurrentUser(SentEmail);
                            if(CurrentUser!=null)
                            { 
                                    CurrentToken.DidChangeToday = true;

                                    Context.Tokens.Attach(CurrentToken);
                                    var entry = Context.Entry(CurrentToken);
                                    entry.Property(e => e.DidChangeToday).IsModified = true; 
                                    Context.SaveChanges(); 
                                     return CheckTokenResult.OK; 
                            }
                            else
                            {
                                return CheckTokenResult.ErrorInvalidPassword;
                            }

                        }
                    }
 
              
                }
                else
                {
                    CurrentUser = GetCurrentUser(SentEmail);
                    if (CurrentUser == null)
                        return CheckTokenResult.UserDoesntExist;
                    else
                    {
                         
                        CurrentUser = GetCurrentUser(SentEmail, Password);
                         
                        if (CurrentUser == null) 
                        return CheckTokenResult.ErrorInvalidPassword;
                        else
                        {
                            Account CurrentAccount = Context.Accounts.Where(p => p.UserID == CurrentUser.UserID).FirstOrDefault();

                            var NewToken = UserService.SaveNewToken(CurrentAccount.AccountID, DeviceTokenEntity.DeviceToken);
                            var newTokenEntity = new DeviceTokenEntity() { AccountID = CurrentAccount.AccountID, DeviceToken = NewToken, DeviceEmail = null };
                            return CheckTokenResult.OK;
                        }
                            
                        
                    }

                }


#pragma warning disable CS0162 // Unreachable code detected
                return CheckTokenResult.None;
#pragma warning restore CS0162 // Unreachable code detected
            }

        }
Beispiel #4
0
        public static CheckTokenResult CheckTokenForSocialMediaLogin(DeviceTokenEntity DeviceTokenEntity, string SentEmail)
        {
            DeviceTokenEntity CurrentToken = new DeviceTokenEntity();
            User CurrentUser = new User();
            using (var Context = new UsersContext())
            {
                if (Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken).Any())
                {
                    CurrentToken = Context.Tokens.Where(p => p.DeviceToken == DeviceTokenEntity.DeviceToken).FirstOrDefault();
                    var EmailCurrentToken = "";
                    if (CurrentToken != null)
                    {
                        var deviceUser = (from acc in Context.Accounts
                                          where
                    CurrentToken.AccountID == acc.AccountID
                                          select acc.UserID).FirstOrDefault();

                        EmailCurrentToken = (from Usr in Context.Users where Usr.UserID == deviceUser select Usr.Email).FirstOrDefault();
                    }
                    if (EmailCurrentToken == SentEmail)
                    {
                         CurrentUser = GetCurrentUser(SentEmail);
                        
                        if (CurrentUser != null) return CheckTokenResult.OK;
                        else return CheckTokenResult.Register;

                    }
                    else
                    {
                        if (CurrentToken.DidChangeToday)
                            return CheckTokenResult.ErrorDidChangeToday;
                        else
                        {
                           
                             
                                CurrentUser = GetCurrentUser(SentEmail);
                            if (CurrentUser != null)
                            {
                                CurrentToken.DidChangeToday = true;

                                Context.Tokens.Attach(CurrentToken);
                                var entry = Context.Entry(CurrentToken);
                                entry.Property(e => e.DidChangeToday).IsModified = true;
                                Context.SaveChanges();
                                return CheckTokenResult.OK;
                            }
                            else
                            {
                                return CheckTokenResult.Register;
                            }

                        }
                    }
                }else
                {
                    CurrentUser = GetCurrentUser(SentEmail);
                    if (CurrentUser == null)
                        return CheckTokenResult.Register;
                    else
                    {

 
                     
                            Account CurrentAccount = Context.Accounts.Where(p => p.UserID == CurrentUser.UserID).FirstOrDefault();

                            var NewToken = UserService.SaveNewToken(CurrentAccount.AccountID, DeviceTokenEntity.DeviceToken);
                            var newTokenEntity = new DeviceTokenEntity() { AccountID = CurrentAccount.AccountID, DeviceToken = NewToken, DeviceEmail = null };
                            return CheckTokenResult.OK;
                        


                    }
                }


            }

        }
Beispiel #5
0
        public static string UserLogin(LoginDataCriteria LoginData)
        {
            try
            {
              

                DeviceTokenEntity CurrentDeviceTocken = new DeviceTokenEntity() { DeviceToken = LoginData.DeviceToken };
                CheckTokenResult CheckTokenResult = CheckTokenResult.None;
                if ( LoginData.IsAccout)
                    CheckTokenResult = UserService.CheckTokenForLogin(CurrentDeviceTocken, LoginData.Email, LoginData.Password);
                else
                    CheckTokenResult = UserService.CheckTokenForSocialMediaLogin(CurrentDeviceTocken, LoginData.Email);
                if ( CheckTokenResult== CheckTokenResult.OK)
                {
                    LoginData.IsEncrypted = false;
                    string Data = UserService.GetLoginData(LoginData);

                    return Data;

                }
                else
                {
                    if (CheckTokenResult == CheckTokenResult.Register)
                        return UserService.SaveNewUser(LoginData.Email, null, LoginData.DeviceToken);
                    else

                        return CheckTokenResult.ToString();
                }
            }
            catch (Exception ex)
            {
                //error in the code
                return ex.Message;
            }
        }