public UserService(IUserRepository userRepository, IMapper mapper, ILogger <UserService> logger)
 {
     _userRepository      = userRepository;
     _mapper              = mapper;
     _logger              = logger;
     _response            = new MainResponse();
     _uploadImage         = new UploadImage();
     _userProfileResponse = new UserProfileResponse();
     _response.Status     = false;
     _userResponse        = new MainUserResponse();
 }
 public UsersAPIController(IUserService userService, IOptions <AppSettings> settings)
 {
     _settings           = settings;
     _userService        = userService;
     _serializerSettings = new JsonSerializerSettings
     {
         Formatting        = Formatting.Indented,
         NullValueHandling = NullValueHandling.Ignore
     };
     _mainUserResponse = new MainUserResponse();
     _response         = new BaseResponse();
 }
        public async Task <ActionResult> GetAllUser([FromBody] RecordFilterRequest recordFilterRequest)
        {
            try
            {
                _mainUserResponse = await _userService.GetAllUser(recordFilterRequest);

                return(new OkObjectResult(_mainUserResponse));
            }
            catch (Exception ex)
            {
                _mainUserResponse.Message = ex.Message;
                _mainUserResponse.Status  = false;
                _mainUserResponse.Message = Constants.DEFAULT_ERROR_MSG;
                return(BadRequest(_mainUserResponse));
            }
        }
        public async Task <MainUserResponse> GetAllUser(RecordFilterRequest FilterRequest)
        {
            FilterRequest.Page  = FilterRequest.Page == 0 ? 1 : FilterRequest.Page;
            FilterRequest.Limit = FilterRequest.Limit == 0 ? 10 : FilterRequest.Limit;
            try
            {
                MainUserResponse userResponse = new MainUserResponse();
                var data = (
                    from user in ObjContext.Users
                    join gc1 in ObjContext.GlobalCodes on user.Gender equals gc1.GlobalCodeId into gcode1
                    from gcd1 in gcode1.DefaultIfEmpty()
                    join gc2 in ObjContext.GlobalCodes on user.BloodGroup equals gc2.GlobalCodeId into gcode2
                    from gcd2 in gcode2.DefaultIfEmpty()
                    join gc3 in ObjContext.GlobalCodes on user.Designation equals gc3.GlobalCodeId into gcode3
                    from gcd3 in gcode3.DefaultIfEmpty()
                    where user.IsDeleted == false
                    select new ProfileResponse
                {
                    //token = user.ResetToken,
                    UserId = user.UserId,
                    FirstName = user.FirstName,
                    LastName = user.LastName,
                    UserName = user.UserName,
                    Email = user.Email,
                    DateOfBirth = user.DateOfBirth,
                    Gender = new Genders
                    {
                        GenderName = gcd1 != null ? gcd1.CodeName : "",
                        Id = gcd1 != null ? gcd1.GlobalCodeId : 0
                    },
                    Designation = new Designations
                    {
                        Id = gcd3 != null ? gcd3.GlobalCodeId : 0,
                        DesignationName = gcd3 != null ? gcd3.CodeName : ""
                    },
                    Phone = user.Phone,
                    AlternateNumber = user.AlternateNumber,
                    OfficialEmail = user.OfficialEmail,
                    Skype = user.Skype,
                    PAN = user.PAN,
                    BloodGroup = new BloodGroups
                    {
                        Id = gcd2 != null ? gcd2.GlobalCodeId : 0,
                        BloodGroupName = gcd2 != null ? gcd2.CodeName : ""
                    },
                    dateofjoining = user.DateOfJoining,
                    DateOfLeaving = user.DateOfLeaving,
                    MediaId = user.MediaId,
                    LastLoggedIn = user.LastLoggedIn,
                });

                if (FilterRequest.OrderByDescending == true)
                {
                    data = data.OrderByDescending(x => x.GetType().GetProperty(FilterRequest.OrderBy).GetValue(x));
                }
                else
                {
                    data = data.OrderBy(x => x.GetType().GetProperty(FilterRequest.OrderBy).GetValue(x));
                }
                var count = data.Count();
                if (FilterRequest.AllRecords)
                {
                    userResponse.userResponseData = data.ToList();
                }
                else
                {
                    userResponse.userResponseData = data.Skip((FilterRequest.Page - 1) * FilterRequest.Limit).Take(FilterRequest.Limit).ToList();
                }
                return(userResponse);
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                throw;
            }
        }