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"; } }
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; } }
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 } }
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; } } } }
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; } }