public void Set(string token, CurrentUser cu) { var s = JsonConvert.SerializeObject(cu); LoggedInUser u = this.entities.LoggedInUsers.FirstOrDefault(p => p.Token == token); //if (u == null) //{ // u = new LoggedInUser(); // u.Token = token; // u.Serial = s; // entities.LoggedInUsers.Add(u); // entities.SaveChanges(); //} //else //{ // u.Serial = s; // entities.SaveChanges(); //} bool wasInTheList = conman.Cache.HashSet( "LoggedInData", token, s, When.Always, CommandFlags.None); }
public CurrentUser ValidateExistence(string search) { var citations = entities.Citations.Where(p => p.DriversLicenseNumber == search || p.CitationNumber == search); var citationWithLicense = citations.FirstOrDefault(p => !String.IsNullOrEmpty(p.DriversLicenseNumber)); CurrentUser u = new CurrentUser(); if (citations.Count() > 0) { u.Token = Guid.NewGuid().ToString(); u.Citiations = citations.Select(p => p.Id).ToList(); u.LicenseNumber = citationWithLicense != null ? citationWithLicense.DriversLicenseNumber : null; vertificationService.Set(u.Token, u); } return u; }
public async Task<VerifyTokenResponse> VerifyTokenForNumber(string phoneNumber, string verificationNumber, string token = null) { var formattedNumber = TwilioHelper.FormatPhoneNumber(phoneNumber); var currentUser = _userSessionVerificationService.GetFromToken(token); var numberVerificationRecord = await _context.NumberVerifications.FirstOrDefaultAsync(nv => nv.PhoneNumber == formattedNumber && nv.VerificationNumber == verificationNumber); var verified = numberVerificationRecord != null; var response = new VerifyTokenResponse() { Verified = verified, PhoneNumber = formattedNumber, VerificationNumber = verificationNumber }; if (verified && currentUser == null) { currentUser = new CurrentUser(); } if (verified) { if (currentUser.ValidUser == null) { User user = _context.Users.FirstOrDefault(p => p.PhoneNumber == formattedNumber); if (user == null) { user = new User() { AccountLastAccessed = DateTime.UtcNow, PhoneNumber = formattedNumber, PhoneNumberVerificationDate = DateTime.UtcNow, DriversLicenseNumber = currentUser.LicenseNumber }; _context.Users.Add(user); } else { user.AccountLastAccessed = DateTime.UtcNow; } currentUser.ValidUser = user; } else { currentUser.ValidUser.PhoneNumber = formattedNumber; currentUser.ValidUser.PhoneNumberVerificationDate = DateTime.UtcNow; _context.Entry<User>(currentUser.ValidUser).State = EntityState.Modified; } _context.NumberVerifications.Remove(numberVerificationRecord); await _context.SaveChangesAsync(); if(token == null) { currentUser.Citiations = _context.UserCitations.Where(p => p.UserId == currentUser.ValidUser.Id).Select(p => p.CitationId).ToList(); token = Guid.NewGuid().ToString(); } foreach (var c in currentUser.Citiations) { if (!_context.UserCitations.Any(p => p.UserId == currentUser.ValidUser.Id && p.CitationId == c)) { _context.UserCitations.Add(new UserCitation() { CitationId = c, UserId = currentUser.ValidUser.Id }); } } await _context.SaveChangesAsync(); _userSessionVerificationService.Set(token, currentUser); response.Token = token; } return response; }