public IHttpActionResult EmployeeLogin(EmployeeLoginDto requestParam)
        {
            try
            {
                var json = JsonConvert.SerializeObject(requestParam);
                log(json);

                var employeeResponse = util.EmployeeLoginAsync(requestParam);
                if (employeeResponse.Data == null)
                {
                    return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, ErrorResponse(404, "Invalid userame and password"))));
                }

                if (employeeResponse.Data.Equals("pending"))
                {
                    return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, ErrorResponse(404, "Account is pending"))));
                }

                return(Ok(SuccessResponse(200, "successful", employeeResponse.Data)));
            }
            catch (Exception ex)
            {
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, ErrorResponse(500, ex.Message.ToString()))));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Login([FromBody] EmployeeLoginDto employeeLoginDto)
        {
            var employee = await this.repo.VerifyEmployee(employeeLoginDto.Email, employeeLoginDto.Password);

            if (employee == null)
            {
                return(Unauthorized());
            }

            var isFirstLogin = DateTime.Equals(employee.Created, employee.LastUpdated) ? true : false;

            var employeeRoles = await this.repo.GetEmployeeRoles(employee.EmployeeId);

            var employeeRolesToReturn = this.mapper.Map <IEnumerable <EmployeeRoleDto> >(employeeRoles);

            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes("super secret key");
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, employee.Email),
                    new Claim(ClaimTypes.Role, employee.PositionId.ToString()),
                    new Claim(ClaimTypes.NameIdentifier, employee.EmployeeId.ToString())
                }),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
                                                            SecurityAlgorithms.HmacSha512Signature)
            };
            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            return(Ok(new { tokenString, employeeRolesToReturn, isFirstLogin }));
        }
Ejemplo n.º 3
0
        public ResponseModel EmployeeLoginAsync(EmployeeLoginDto requestParam)
        {
            ResponseModel res       = new ResponseModel();
            var           userStore = new UserStore <ApplicationUser>(_db);
            var           manager   = new UserManager <ApplicationUser>(userStore);

            var result = manager.Find(requestParam.Email, requestParam.Password);

            if (result == null)
            {
                return(res);
            }


            //check if user login successfully
            if (result.UserType == UserType.Employee)
            {
                res = GetEmployeeDetails(result, requestParam);
            }

            if (result.UserType == UserType.Employer)
            {
                res = GetEmployerDetails(result, requestParam);
            }

            if (result.UserType == UserType.Admin)
            {
                res = GetAdminUser(result);
            }

            return(res);
        }
Ejemplo n.º 4
0
        public async Task <bool> LoginEmployeeAsync(EmployeeLoginDto employeeDto)
        {
            if (!this.IsEmployeeActive(employeeDto.Email))
            {
                return(false);
            }

            var result = await this.signInManager.PasswordSignInAsync(employeeDto.Email, employeeDto.Password, employeeDto.RememberMe, false);

            return(result.Succeeded);
        }
Ejemplo n.º 5
0
        public ResponseModel EmployeeLoginAsync(EmployeeLoginDto requestParam)
        {
            ResponseModel res       = new ResponseModel();
            var           userStore = new UserStore <ApplicationUser>(_db);
            var           manager   = new UserManager <ApplicationUser>(userStore);

            var result       = manager.Find(requestParam.Email, requestParam.Password);
            var employeeData = _db2.Employees.FirstOrDefault(o => o.EmployeeId == result.Id);
            var uploadInfo   = _db2.Uploads.Where(o => o.UploadId == result.Id).ToList();


            //check if user login successfully
            if (result == null)
            {
                return(res);
            }
            var roleId = _db3.AspNetUserRoles.FirstOrDefault(o => o.UserId == result.Id);
            var role   = _db2.AspNetRoles.FirstOrDefault(o => o.Id == roleId.RoleId);

            IList <UploadDto> uploadDtos = new List <UploadDto>();

            foreach (var item in uploadInfo)
            {
                var uploadId = new UploadDto()
                {
                    UploadId = item.UploadId
                };
                uploadDtos.Add(uploadId);
            }

            //check if account is activated
            if (result.AccountStatus == StatusType.Pending)
            {
                res.Data = "pending";
                return(res);
            }

            var user = new EmployeeLoginDto()
            {
                Address       = result.Address,
                DateOfBirth   = result.DateOfBirth,
                Email         = result.Email,
                FirstName     = result.FirstName,
                LastName      = result.LastName,
                MiddleName    = result.MiddleName,
                Password      = requestParam.Password,
                PhoneNumber   = result.PhoneNumber,
                PlaceOfBirth  = result.PlaceOfBirth,
                StateOfOrigin = result.StateOfOrigin,
            };

            user.Upload = uploadDtos;
            if (employeeData != null)
            {
                user.BVN  = employeeData.BVN;
                user.NIMC = employeeData.NIMC;
            }
            if (result.Sex == SexType.Male)
            {
                user.Sex = "Male";
            }
            else
            {
                user.Sex = "Female";
            }

            res.Data = user;
            return(res);
        }
Ejemplo n.º 6
0
        public ResponseModel GetEmployerDetails(ApplicationUser result, EmployeeLoginDto requestParam)
        {
            ResponseModel res = new ResponseModel();

            var employeeData = _db2.Employers.FirstOrDefault(o => o.EmployerId == result.Id);
            var uploadInfo   = _db2.Uploads.Where(o => o.UploadId == result.Id).ToList();

            var roleId = _db3.AspNetUserRoles.FirstOrDefault(o => o.UserId == result.Id);
            var role   = _db2.AspNetRoles.FirstOrDefault(o => o.Id == roleId.RoleId);

            IList <UploadDto> uploadDtos = new List <UploadDto>();

            foreach (var item in uploadInfo)
            {
                var uploadId = new UploadDto()
                {
                    UploadId = item.UploadId
                };
                uploadDtos.Add(uploadId);
            }

            //check if account is activated
            if (result.AccountStatus == StatusType.Pending)
            {
                res.Data = "pending";
                return(res);
            }

            var user = new EmployeeLoginDto()
            {
                Address              = result.Address,
                DateOfBirth          = result.DateOfBirth,
                Email                = result.Email,
                FirstName            = result.FirstName,
                LastName             = result.LastName,
                MiddleName           = result.MiddleName,
                Password             = requestParam.Password,
                PhoneNumber          = result.PhoneNumber,
                PlaceOfBirth         = result.PlaceOfBirth,
                StateOfOrigin        = result.StateOfOrigin,
                NextOfKin            = employeeData.NextOfKin,
                NextOfKinAddress     = employeeData.NextOfKinAddress,
                NextOfKinPhoneNumber = employeeData.NextOfKinPhoneNumber,
                PlaceOfWork          = employeeData.PlaceOfWork,
                Profession           = employeeData.Profession,
                Role = role.Name,
                Id   = employeeData.EmployerId
            };

            user.Upload = uploadDtos;
            if (result.Sex == SexType.Male)
            {
                user.Sex = "Male";
            }
            else
            {
                user.Sex = "Female";
            }

            res.Data = user;
            return(res);
        }