public void UpdateChangedProperties(Food food, out bool result, out string message) { string oldTags = _foodRepository.FindById(food.Id).Tags; if (oldTags != food.Tags) { _foodTagRepository.RemoveMultiple(_foodTagRepository.FindAll(x => x.FoodId == food.Id).ToList(), out result, out message); if (!string.IsNullOrEmpty(food.Tags)) { string[] tags = food.Tags.Split(';'); foreach (string t in tags) { var tagId = TextHelper.ToUnsignString(t); // Insert if there is a new tag if (!_tagRepository.FindAll(x => x.Id == tagId).Any()) { Tag tag = new Tag { Id = tagId, Active = true, Name = t.Trim(), Type = CommonConstants.TagType.FoodTag, UserCreated = food.UserCreated, UserModified = food.UserModified }; _tagRepository.Add(tag, out result, out message); } FoodTag foodTag = new FoodTag { FoodId = food.Id, TagId = tagId, Active = true, UserCreated = food.UserCreated, UserModified = food.UserModified }; _foodTagRepository.Add(foodTag, out result, out message); } } } _foodRepository.UpdateChangedProperties(food.Id, food, out result, out message); if (result) { SaveChanges(); } else { Dispose(); } }
public void Add(Food food, out bool result, out string message) { food.FoodTags = new List <FoodTag>(); // Tags if (!string.IsNullOrEmpty(food.Tags)) { string[] tags = food.Tags.Split(';'); foreach (string t in tags) { var tagId = TextHelper.ToUnsignString(t); // Insert if there is a new tag if (!_tagRepository.FindAll(x => x.Id == tagId).Any()) { Tag tag = new Tag { Id = tagId, Active = true, Name = t.Trim(), Type = CommonConstants.TagType.FoodTag, UserCreated = food.UserCreated, UserModified = food.UserModified }; _tagRepository.Add(tag, out result, out message); } FoodTag foodTag = new FoodTag { TagId = tagId, Active = true, UserCreated = food.UserCreated, UserModified = food.UserModified }; food.FoodTags.Add(foodTag); } } // Insert FoodCategory _foodRepository.Add(food, out result, out message); if (result) { SaveChanges(); } else { Dispose(); } }