public void DeleteCreatureTag(CreatureTag creatureTag) { _baseRepository.Context.CreatureTags.Remove(creatureTag); }
public void SaveCreatureTag(CreatureTag creatureTag) { _baseRepository.Context.CreatureTags.Add(creatureTag); }
public void SaveCreatureTagAsync(CreatureTag creatureTag) { throw new NotImplementedException(); }
private void SaveCreatureData(Creature creature, CreatureDetailsModel model, IFormFile upload) { creature.CommonName = model.CommonName; creature.Description = model.Description; creature.Diet = model.Diet; creature.DifficultyDescription = model.DifficultyDescription; creature.Difficulty = model.Difficulty; creature.Genus = model.Genus; creature.Species = model.Species; creature.Length = model.Length; creature.Origin = model.Origin; creature.ReefCompatability = model.ReefCompatability; creature.Temperament = model.Temperament; creature.Volume = model.Volume; creature.SpecialRequirements = model.SpecialRequirements; creature.SubcategoryId = model.SubcategoryId; //Update creature image. if (upload != null) { var webRoot = _hostingEnvironment.WebRootPath + Directory; var path = Path.Combine(webRoot, upload.FileName); if (!System.IO.File.Exists(path)) { using (var fs = System.IO.File.Create(path)) { upload.CopyTo(fs); fs.Flush(); fs.Close(); } } if (creature.Media == null) { var media = new Media() { ContentType = upload.ContentType, Filename = upload.FileName, Url = Directory }; creature.Media = media; } if (upload.FileName != creature.Media?.Filename) { creature.Media.ContentType = upload.ContentType; creature.Media.Filename = upload.FileName; creature.Media.Url = Directory; } } var creatureTags = creature.CreatureTags.ToList(); if (creatureTags.Any()) { var itemsToDelete = new List <CreatureTag>(); if (model.TagList != null && model.TagList.Any()) { itemsToDelete = creatureTags.Where(x => !model.TagList.Contains(x.TagId)).ToList(); } foreach (var tag in itemsToDelete) { _creatureRepository.DeleteCreatureTag(tag); creatureTags.Remove(tag); } } if (model.TagList != null) { // Check which tags are already coupled to this creature and which tags stay coupled. these can be ignored. var newTagIds = model.TagList.Where(x => creatureTags.All(sa => sa.TagId != x)).ToList(); //Couple checked activities to the student group. foreach (var tagId in newTagIds) { var creatureTag = new CreatureTag() { CreatureId = creature.Id, TagId = tagId, }; _creatureTagRepository.Add(creatureTag); } } _creatureRepository.Save(creature); }