Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
            }
        }