Exemplo n.º 1
0
 private static CreateFlatDto ConvertCreateFlatRequestToCreateFlatDto(CreateFlatRequest request)
 {
     return(new CreateFlatDto
     {
         HouseId = request.HouseId,
         FlatNumber = request.FlatNumber,
         Floor = request.Level,
         AmountOfRooms = request.AmountOfRooms,
         TotalArea = request.TotalArea,
         HouseRoom = request.HouseRoom
     });
 }
Exemplo n.º 2
0
 public static CreateFlatDto CreateFlatRequestToCreateFlatDto(this CreateFlatRequest request) =>
 ConvertCreateFlatRequestToCreateFlatDto(request);
Exemplo n.º 3
0
        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
                }
            }));
        }