예제 #1
0
 public IActionResult Update([FromRoute] string id, ImageUpdateDto imageUpdateDto)
 {
     if (id != imageUpdateDto.Id)
     {
         return(BadRequest());
     }
     imageBusinessLogic.Update(imageUpdateDto);
     return(NoContent());
 }
예제 #2
0
        public async Task <IActionResult> PutImage(int articleId, int id, [FromBody] ImageUpdateDto imageUpdateDto)
        {
            var article = await _context.Articles.FindAsync(articleId);

            if (article == null)
            {
                return(NotFound());
            }

            var image = await _context.Images.FindAsync(id);

            if (image == null)
            {
                return(NotFound());
            }

            if (image.ArticleId != articleId)
            {
                return(BadRequest());
            }

            _mapper.Map(imageUpdateDto, image);

            if (image.IsMain)
            {
                var mainImage = _context.Images.FirstOrDefault(i => i.ArticleId == articleId && i.IsMain && i.Id != id);

                if (mainImage != null)
                {
                    mainImage.IsMain = false;
                }
            }

            try
            {
                await _context.SaveChangesAsync().ConfigureAwait(false);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ImageExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #3
0
        private async Task <ImageResponse> UpdateImage(ImageUpdateDto image)
        {
            var content  = new StringContent(JsonConvert.SerializeObject(image), Encoding.UTF8, "application/json");
            var response = await _httpClient.PutAsync("v2/Images", content).ConfigureAwait(false);

            var stringResponse = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            if (!response.IsSuccessStatusCode)
            {
                throw new Exception($"Error in {nameof(UpdateImage)}. Status code: {response.StatusCode}. Error: {stringResponse}");
            }

            return(JsonConvert.DeserializeObject <ImageResponse>(stringResponse));
        }
        public ActionResult UpDateImage(int id, ImageUpdateDto imageUpdateDto)
        {
            var imageFromRepo = _imageRepository.GetImage(id);

            if (imageFromRepo == null)
            {
                return(NotFound());
            }

            _mapper.Map(imageUpdateDto, imageFromRepo);

            _imageRepository.UpdateImage(imageFromRepo);
            _imageRepository.SaveChanges();

            return(NoContent());
        }
예제 #5
0
        public async Task GettingUpdatedImageReturnsUpdatedValues()
        {
            var savedImage = await CreateNewImage().ConfigureAwait(false);

            var update = new ImageUpdateDto
            {
                image = new ImageViewModel
                {
                    Date        = DateTime.Now.ToString(),
                    Description = "newDescription",
                    Annotation  = ObjectId.GenerateNewId().ToString(),
                    Id          = savedImage.Image.Id,
                    Filename    = "newFilename",
                    Inverted    = ObjectId.GenerateNewId().ToString(),
                    Tags        = new [] { "newTag1" },
                    Thumb       = new Thumbnail {
                        ContentId = savedImage.Image.Thumb.ContentId.ToString(), Filename = "updateThumbFilename"
                    },
                    Title = "updatedTitle"
                },
                password = new ConfigurationManager(new LocalFile()).GetPassword(),
            };

            await UpdateImage(update).ConfigureAwait(false);

            var updatedImage = await GetImage(savedImage.Image.Id).ConfigureAwait(false);

            Assert.That(updatedImage.Image.Date, Is.EqualTo(update.image.Date));
            Assert.That(updatedImage.Image.Description, Is.EqualTo(update.image.Description));
            Assert.That(updatedImage.Image.Annotation, Is.EqualTo(update.image.Annotation));
            Assert.That(updatedImage.Image.Filename, Is.EqualTo(update.image.Filename));
            Assert.That(updatedImage.Image.Inverted, Is.EqualTo(update.image.Inverted));
            Assert.That(updatedImage.Image.Tags.Single(), Is.EqualTo(update.image.Tags.Single()));
            Assert.That(updatedImage.Image.Thumb.ContentId, Is.EqualTo(update.image.Thumb.ContentId));
            Assert.That(updatedImage.Image.Thumb.Filename, Is.EqualTo(update.image.Thumb.Filename));
            Assert.That(updatedImage.Image.Title, Is.EqualTo(update.image.Title));
        }
        public ActionResult UpdateImage([FromBody] ImageUpdateDto imageVm)
        {
            try
            {
                if (!SecurityHandler.IsValidPassword(imageVm?.password))
                {
                    throw new UnauthorizedAccessException();
                }

                if (imageVm?.image != null)
                {
                    var image         = imageVm.image.ToImage();
                    var originalImage = DataAccess.Get(image.Id.ToString());
                    image.Revisions = originalImage.Revisions;
                    DataAccess.Update(image);
                    return(new OkObjectResult(GetImageById(imageVm.image.Id)));
                }
                return(new BadRequestObjectResult("invalid image for update"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #7
0
 void IImageBusinessLogic.Update(ImageUpdateDto imageUpdateDto)
 {
     throw new System.NotImplementedException();
 }
예제 #8
0
        public async Task GetImageTag()
        {
            var tag = Guid.NewGuid().ToString();
            var revisionDescription = "revisionDescription";

            var savedImage = await CreateNewImage(tag).ConfigureAwait(false);

            await CreateRevision(savedImage.Image.Id, revisionDescription).ConfigureAwait(false);

            var updateImageDto = new ImageUpdateDto
            {
                image    = savedImage.Image,
                password = new ConfigurationManager(new LocalFile()).GetPassword(),
            };

            updateImageDto.image.Annotation = ObjectId.GenerateNewId().ToString();
            updateImageDto.image.Inverted   = ObjectId.GenerateNewId().ToString();

            await UpdateImage(updateImageDto).ConfigureAwait(false);


            var image = await GetImage(savedImage.Image.Id).ConfigureAwait(false);

            var response = await _httpClient.GetAsync($"v2/Images?tag={tag}").ConfigureAwait(false);

            if (!response.IsSuccessStatusCode)
            {
                throw new Exception($"Error in {nameof(GetImageTag)}. Status code: {response.StatusCode}");
            }

            var responseJson = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            var imageJson = new StringBuilder();

            imageJson.Append(@"[{""image"":{""id"":""");
            imageJson.Append(image.Image.Id);
            imageJson.Append(@""",""type"":0,""filename"":""");
            imageJson.Append(image.Image.Filename);
            imageJson.Append(@""",""contentId"":");
            imageJson.Append("null");
            imageJson.Append(@",""description"":""");
            imageJson.Append(image.Image.Description);
            imageJson.Append(@""",""title"":""");
            imageJson.Append(image.Image.Title);
            imageJson.Append(@""",""thumb"":{""type"":1,""filename"":""");
            imageJson.Append(image.Image.Thumb.Filename);
            imageJson.Append(@""",""contentId"":""");
            imageJson.Append(image.Image.Thumb.ContentId);
            imageJson.Append(@"""},""annotation"":""");
            imageJson.Append(image.Image.Annotation);
            imageJson.Append(@""",""inverted"":""");
            imageJson.Append(image.Image.Inverted);
            imageJson.Append(@""",""tags"":[""");
            imageJson.Append(String.Join(",", image.Image.Tags));
            imageJson.Append(@"""],""date"":""");
            imageJson.Append(image.Image.Date);
            imageJson.Append(@""",""revisions"":[{""revisionDate"":""");
            imageJson.Append(image.Image.Revisions.Single().RevisionDate.ToString("yyyy-MM-ddTHH:mm:ssK"));
            imageJson.Append(@""",""revisionId"":""");
            imageJson.Append(image.Image.Revisions.Single().RevisionId);
            imageJson.Append(@""",""filename"":""");
            imageJson.Append(image.Image.Revisions.Single().Filename);
            imageJson.Append(@""",""contentId"":");
            imageJson.Append("null");
            imageJson.Append(@",""thumb"":{""type"":1,""filename"":""");
            imageJson.Append(image.Image.Revisions.Single().Thumb.Filename);
            imageJson.Append(@""",""contentId"":""");
            imageJson.Append(image.Image.Revisions.Single().Thumb.ContentId);
            imageJson.Append(@"""},""description"":""");
            imageJson.Append(image.Image.Revisions.Single().Description);
            imageJson.Append(@"""}]},""links"":{""imageContent"":""http://*****:*****@"/Images/");
            imageJson.Append(image.Image.Filename);
            imageJson.Append(@""",""thumbnailContent"":""http://*****:*****@"/Thumbnail"",""annotationContent"":""http://*****:*****@"/Annotation"",""invertedContent"":""http://*****:*****@"/Inverted"",""revisions"":[{""thumb"":""http://*****:*****@""",""image"":""http://*****:*****@"/Images/");
            imageJson.Append(image.Image.Revisions.Single().Filename);
            imageJson.Append(@""",""date"":""");
            imageJson.Append(image.Image.Revisions.Single().RevisionDate.ToString("yyyy-MM-ddTHH:mm:ssK"));
            imageJson.Append(@""",""description"":""");
            imageJson.Append(image.Image.Revisions.Single().Description);
            imageJson.Append(@""",""id"":""");
            imageJson.Append(image.Image.Revisions.Single().RevisionId);
            imageJson.Append(@"""}]}}]");

            Assert.AreEqual(imageJson.ToString(), responseJson);
        }