Пример #1
0
        protected virtual async Task<LoginResponseDto> Create(UserProfileDto input)
        {
            var rtv = new LoginResponseDto();
            input.userPassword = Cryptors.GetSHAHashData(input.userPassword);
            input.IsLockoutEnabled = 0;
            input.DateCreated = DateTime.Now;
            input.userEmail = input.userEmail;
            input.ShouldChangePasswordOnNextLogin = 1;
            input.AccessFailedCount = 0;
            input.businessName = input.businessName;
            input.Country = input.Country;
            UserProfile userDto = MappingProfile.MappingConfigurationSetups().Map<UserProfile>(input);
            
            _context.UserProfile.Add(userDto);
           int res = await _context.SaveChangesAsync();
            if (res > 0)
            {
                rtv.ResponseCode = 0;
                rtv.ResponseText = "Successfull";
                return rtv;
            }
            else 
            {
                rtv.ResponseCode = -2;
                rtv.ResponseText = "Failed";
                return rtv;

            }


        }
Пример #2
0
        protected virtual async Task Create(UserProfileDto input)
        {
            UserProfile userDto = MappingProfile.MappingConfigurationSetups().Map <UserProfile>(input);

            input.Password         = Cryptors.GetSHAHashData(input.Password);
            input.IsLockoutEnabled = 0;
            input.ShouldChangePasswordOnNextLogin = 1;
            input.AccessFailedCount = 0;
            _context.UserProfile.Add(userDto);
            await _context.SaveChangesAsync();
        }
Пример #3
0
        public async Task <LoginResponseDto> AutheticateUser(LoginRequestDto input)
        {
            string      uname       = string.Empty;
            string      pass        = string.Empty;
            var         returnProp  = new LoginResponseDto();
            UserProfile userProfile = null;

            try
            {
                try
                {
                    userProfile = await _context.UserProfile.Where(p => p.UserName.ToUpper().Equals(input.Username.ToUpper().Trim())).FirstOrDefaultAsync();
                }
                catch (Exception ex)
                {
                    returnProp.ResponseCode = 400;
                    returnProp.ResponseText = string.Format("Failure to Authenticate Information. Please contact {0} local contact center", config.Value.CompanyName);
                    return(returnProp);
                }
                if (userProfile == null)
                {
                    returnProp.ResponseCode = 400;
                    returnProp.ResponseText = string.Format("User Credentials Does Not Exist. Please contact {0}  contact center", config.Value.CompanyName);
                    return(returnProp);
                }


                if (userProfile.AccessFailedCount >= Convert.ToInt32(config.Value.LoginCount))
                {
                    userProfile.AccessFailedCount = 1;
                    _context.UserProfile.Update(userProfile);
                    await _context.SaveChangesAsync();

                    returnProp.ResponseCode = 400;
                    returnProp.ResponseText = string.Format("User Locked. Contact administrator");
                    return(returnProp);
                }



                string compare = Cryptors.GetSHAHashData(input.Password);
                var    com     = await _context.UserProfile.Where(i => i.Password.Trim() == compare.Trim() && i.UserName.Trim().ToUpper() == input.Username.Trim().ToUpper()).FirstOrDefaultAsync();

                if (com != null)
                {
                    if (userProfile.ShouldChangePasswordOnNextLogin == 1)
                    {
                        returnProp.ResponseCode = 2;
                        returnProp.ResponseText = string.Format("Enforce Password Change");
                        return(returnProp);
                    }

                    returnProp.ResponseCode      = 0;
                    returnProp.ResponseText      = "Login Successful";
                    returnProp.EnforcePassChange = 0;
                    returnProp.RoleId            = userProfile.RoleId;
                    returnProp.FullName          = string.Format("{0} {1}", userProfile.FirstName, userProfile.LastName);
                    returnProp.UserId            = userProfile.Id;

                    userProfile.IsLockoutEnabled  = 0;
                    userProfile.AccessFailedCount = 0;
                    userProfile.ShouldChangePasswordOnNextLogin = 0;
                    _context.UserProfile.Update(userProfile);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    if (userProfile.AccessFailedCount >= Convert.ToInt32(config.Value.LoginCount))
                    {
                        userProfile.AccessFailedCount = 1;
                        _context.UserProfile.Update(userProfile);
                        await _context.SaveChangesAsync();

                        returnProp.ResponseCode = 400;
                        returnProp.ResponseText = string.Format("User Locked. Contact administrator");
                        return(returnProp);
                    }
                    if (userProfile.AccessFailedCount < Convert.ToInt32(config.Value.LoginCount))
                    {
                        userProfile.AccessFailedCount = Convert.ToInt16(userProfile.AccessFailedCount + 1);
                        _context.UserProfile.Update(userProfile);
                        await _context.SaveChangesAsync();

                        returnProp.ResponseCode = 3;
                        returnProp.ResponseText = "Invalid Login Id/Password.Enter Password (" + userProfile.AccessFailedCount + "/" + Convert.ToInt32(config.Value.LoginCount) + ")";
                        return(returnProp);
                    }
                }
            }

            catch (Exception ex)
            {
                returnProp.ResponseCode = 400;
                returnProp.ResponseText = string.Format("Failure to Authenticate Information. Please contact {0} local contact center", config.Value.CompanyName);
                return(returnProp);
            }
            return(returnProp);
        }