public async Task <ResponseMessage> GetLandlordsForUserAsync(
            GetLandlordsRequest request)
        {
            try
            {
                var result = await Mediator.Send(request);

                return(OkResponse(result));
            }
            catch (Exception ex)
            {
                return(GetResponseMessageForException(ex));
            }
        }
        public async Task <IActionResult> LoadIndexData(string approvalStatus)
        {
            try
            {
                var draw = Request.Form["draw"].FirstOrDefault();

                var request = new GetLandlordsRequest()
                {
                    UserId         = GetUserId(),
                    ApprovalStatus = (ApprovalStatus)Enum.Parse(typeof(ApprovalStatus), approvalStatus),
                    Filters        = GetFilterDto()
                };
                var content = CreateContent(request);
                HttpClient.DefaultRequestHeaders.Authorization = GetAuthHeader();
                var url      = $"{Configuration["Url:UserLandlords"]}/{GetUserId()}";
                var response = await HttpClient.PostAsync(url, content);

                switch (response.StatusCode)
                {
                case HttpStatusCode.OK:
                    var okResponse = await response.GetOkResponseAsync();

                    var data = Deserialize <UserLandlordsViewModel>(okResponse.ResultString);
                    return(Json(new
                    {
                        draw,
                        recordsFiltered = data.TotalRecords,
                        recordsTotal = data.TotalRecords,
                        data = data.Landlords
                    }));

                case HttpStatusCode.InternalServerError:
                default:
                    return(Json(new
                    {
                        draw,
                        recordsFiltered = 0,
                        recordsTotal = 0,
                        data = GetEmptyUserLandlordsViewModel().Landlords
                    }));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <IActionResult> GetLandlordsForUserAsync(
            [FromRoute] string userId,
            [FromBody] GetLandlordsRequest request)
        {
            if (userId != request.UserId)
            {
                var forbiddenResult = new ForbiddenApiResponse();
                return(StatusCode(forbiddenResult.Status, forbiddenResult));
            }

            if (ModelState.IsValid)
            {
                var result = await _landlordService.GetLandlordsForUserAsync(request);

                return(StatusCode(result.Status, result.Payload));
            }
            return(GetBadRequestResult());
        }