public async Task <IActionResult> CreateFlat([FromServices] IConfiguration configuration, [FromBody] CreateFlatRequest request) { if (request is null) { return(BadRequest(new FailedFlatResponse { Status = false, Errors = new[] { "Request should have a valid data." } })); } //Checking all props have values if (PropertyHelper.IsAnyPropIsNull(request)) { return(BadRequest( new FailedFlatResponse { Status = false, Errors = new[] { "Flat properties can not be null." } } )); } var creationResult = await _flatService.CreateFlatAsync(request.CreateFlatRequestToCreateFlatDto()); if (!creationResult.Status) { if (creationResult.ServerError) { return(StatusCode(500)); } return(BadRequest(new FailedFlatResponse { Errors = creationResult.Errors, Status = creationResult.Status })); } string itemUrl = $"{configuration["ApplicationHostAddress"]}/{ApiRoutes.FlatRoute.FlatV1}/{creationResult.Id}"; return(Created( new Uri(itemUrl), new SuccessFlatCreationResponse { Id = creationResult.Id, FlatNumber = creationResult.FlatNumber, Level = creationResult.Floor, AmountOfRooms = creationResult.AmountOfRooms, AmountOfResidents = creationResult.AmountOfTenants, TotalArea = creationResult.TotalArea, HouseRoom = creationResult.HouseRoom, House = new HouseDto { Id = creationResult.House.Id, HouseNumber = creationResult.House.HouseNumber, StreetName = creationResult.House.StreetName, City = creationResult.House.City, Country = creationResult.House.Country, PostCode = creationResult.House.PostCode } })); }