Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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;
        }