コード例 #1
0
ファイル: FlatController.cs プロジェクト: ice19942335/BBIT
        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
                }
            }));
        }