Example #1
0
        public async Task UpdateImage(ImageEditVM viewModel)
        {
            Image image = context.Image.Include(o => o.TagToImage).Single(o => o.Id == viewModel.ImageId);

            image.Title     = viewModel.Title;
            image.GalleryId = viewModel.GalleryId;

            if (!string.IsNullOrWhiteSpace(viewModel.Tags))
            {
                var tags = await context.Tag.ToListAsync();

                foreach (var tag in viewModel.Tags.Split(","))
                {
                    var tagName         = tag.Trim();
                    var tagToBeInserted = tags.SingleOrDefault(t => t.Name == tagName);
                    var tagToImage      = new TagToImage();

                    if (tagToBeInserted == null)
                    {
                        tagToImage.Tag = new Tag {
                            Name = tagName
                        };
                        tagToImage.Image = image;

                        image.TagToImage.Add(tagToImage);
                    }
                    else
                    {
                        if (image.TagToImage.Count(o => o.ImageId == image.Id && o.TagId == tagToBeInserted.Id) == 0)
                        {
                            tagToImage.Tag   = tagToBeInserted;
                            tagToImage.Image = image;

                            image.TagToImage.Add(tagToImage);
                        }
                        tags.Remove(tagToBeInserted);
                    }
                }

                var tagsToRemove = tags.Where(o => o.TagToImage.Any(t => t.ImageId == image.Id)).SelectMany(a => a.TagToImage);
                if (tagsToRemove != null)
                {
                    context.TagToImage.RemoveRange(tagsToRemove);
                }
            }

            await context.SaveChangesAsync();

            await RemoveUnusedTags();
        }
 public void Display(TagToImage toDisplay)
 {
     m_image.sprite         = toDisplay.m_sprite;
     m_displayTimeCountDown = m_disapearTime + m_disapearTime;
     m_image.color          = Color.white;
 }