Пример #1
0
        /// <summary>
        /// Posts the building picture async.
        /// </summary>
        /// <returns>The building picture async.</returns>
        /// <param name="buildingPictureDto">Building picture dto.</param>
        public async Task <BuildingPictureApiDto> PostBuildingPictureAsync(BuildingPictureDto buildingPictureDto)
        {
            buildingPictureDto.FileToBase64 = _customEncoder.FileToBase64(buildingPictureDto.File);
            var buildingPictureApiDto = await _dal.PostBuildingPictureAsync(buildingPictureDto);

            return(buildingPictureApiDto);
        }
Пример #2
0
        public async Task <IActionResult> Post(IFormFile file, int buildingId)
        {
            //Get header token
            if (Request.Headers.TryGetValue("Authorization", out StringValues headerValues) && buildingId > -1)
            {
                var token = _customEncoder.DecodeBearerAuth(headerValues.First());
                if (token != null)
                {
                    var user = await _userService.GetUserAsyncByToken(token);

                    if (user != null)
                    {
                        //Verify if the token exist and is not expire
                        if ((await _authenticationService.CheckIfTokenIsValidAsync(token) && user.IsAdmin == 1) || await _authenticationService.CheckIfTokenIsValidAsync(token, user.UserId))
                        {
                            var buildingPictureDto = new BuildingPictureDto
                            {
                                File       = file,
                                BuildingId = buildingId
                            };

                            var buildingPictureApiDto = await _buildingService.PostBuildingPictureAsync(buildingPictureDto);

                            if (buildingPictureApiDto == null)
                            {
                                return(StatusCode(404, "Unable to create building picture."));
                            }

                            //byte[] fileBytes = Convert.FromBase64String(buildingPictureApiDto.FileToBase64);
                            //var f = File(fileBytes, "image/png");

                            //return f;

                            var pictureInformation = new BuildingPictureInformationApiDto()
                            {
                                BuildingId        = buildingPictureApiDto.BuildingId,
                                BuildingPictureId = buildingPictureApiDto.BuildingPictureId
                            };

                            return(Ok(pictureInformation));
                        }
                        return(StatusCode(401, "Invalid token."));
                    }
                    return(StatusCode(403, "Invalid user."));
                }
                return(StatusCode(401, "Invalid authorization."));
            }
            return(StatusCode(401, "Invalid authorization."));
        }