Exemple #1
0
        public async Task <ServiceResponse <GetShelterDogDto> > AddShelterDog(UploadShelterDogDto shelterDogDto, IFormFile picture)
        {
            var serviceResponse = new ServiceResponse <GetShelterDogDto>();
            var shelterDog      = mapper.Map <ShelterDog>(shelterDogDto);

            byte[] data;

            if (picture is null)
            {
                serviceResponse.Successful = false;
                serviceResponse.StatusCode = StatusCodes.Status400BadRequest;
                serviceResponse.Message    = "No picture was provided!";
            }
            else
            {
                var pictureValidationResult = securityService.IsPictureValid(picture);

                if (pictureValidationResult.Successful)
                {
                    using (var ms = new MemoryStream())
                    {
                        picture.CopyTo(ms);
                        data = ms.ToArray();
                    }
                    shelterDog.Picture = new PictureDog()
                    {
                        FileName = picture.FileName,
                        FileType = picture.ContentType,
                        Data     = data
                    };
                    var repoResponse = await shelterDogRepository.AddShelterDog(shelterDog);

                    serviceResponse = mapper.Map <ServiceResponse <GetShelterDogDto> >(repoResponse);
                    if (!serviceResponse.Successful)
                    {
                        serviceResponse.StatusCode = StatusCodes.Status400BadRequest;
                    }
                }
                else
                {
                    serviceResponse.Successful = false;
                    serviceResponse.StatusCode = StatusCodes.Status400BadRequest;
                    serviceResponse.Message    = pictureValidationResult.Message;
                }
            }

            return(serviceResponse);
        }
        public async void AddingShelterDogSuccessfulForValidDogInfo()
        {
            var result = await shelterDogRepository.AddShelterDog(GetValidShelterDog());

            Assert.True(result.Successful);
        }