예제 #1
0
        private async Task SaveTagsOfMeal(Meal item, int groupId)
        {
            var tags = await tagRepository.All(groupId);

            foreach (var tagNotSaved in item.Tags.Except(tags))
            {
                await this.tagRepository.Save(tagNotSaved, groupId);
            }
            var allTags = await this.tagRepository.All(groupId);

            foreach (var tag in item.Tags.Where(x => !x.Id.HasValue))
            {
                tag.Id = allTags.FirstOrDefault(x => x.Value.Equals(tag.Value, StringComparison.InvariantCultureIgnoreCase)).Id;
            }

            var deleteAllQuery = "delete TagsOfMeals where MealId=@mealid";
            var insertQuery    = "insert into TagsOfMeals(MealId, TagId) values (@mealid, @tagid)";

            using (var connection = new SqlConnection(this.connectionString))
            {
                await connection.OpenAsync();

                var transaction = connection.BeginTransaction();
                await connection.ExecuteAsync(deleteAllQuery, new { mealid = item.Id }, transaction);

                foreach (var tag in item.Tags)
                {
                    await connection.ExecuteAsync(insertQuery, new { mealid = item.Id, tagid = tag.Id }, transaction);
                }
                transaction.Commit();
                connection.Close();
            }
        }
예제 #2
0
        public ActionResult Tags()
        {
            var allTags = _tagRepository.All().OrderBy(t => t.Name).ToList();

            return(PartialView("Tags", new TagsViewModel {
                Tags = allTags
            }));
        }
예제 #3
0
 public List <Tag> All()
 {
     return(_repo.All().OrderBy(t => t.Label).ToList());
 }
예제 #4
0
 public List <Tag> All()
 {
     return(_tagRepository.All().ToList());
 }
예제 #5
0
 public List <Tag> GetTagList()
 {
     return(repoTag.All().ToList());
 }