public async Task <ServerResponse <bool> > CreateTagAsync(TagRequest tagRequest) { return(await BaseInvokeAsync(async() => { var tag = new DAL.Entities.Tag { Name = tagRequest.Name }; await DbContext.Tags.AddAsync(tag); await DbContext.SaveChangesAsync(); return ServerResponseBuilder.Build(true); }, tagRequest)); }
public async Task <AOResult> CreateTagAsync(TagRequest tagRequest) { return(await BaseInvokeAsync(async() => { var tag = new DAL.Entities.Tag { Name = tagRequest.Name }; await _myHelperDbContext.Tags.AddAsync(tag); await _myHelperDbContext.SaveChangesAsync(); return AOBuilder.SetSuccess(); }, tagRequest)); }
protected override async Task SaveAsync(Models.SearchQuery dto) { using (var context = this.dataAccess.GetContext()) { var tagNames = dto.TagSelection.Values.Select(e => e.Name); var tags = await context.Tracking <DAL.Entities.Tag>() .BelongingToCurrentUser() .Where(e => tagNames.Contains(e.Name)) .ToListAsync(); foreach (var tagName in tagNames.Where(t1 => !tags.Any(t2 => t2.Name == t1))) { var newTag = new DAL.Entities.Tag { Name = tagName, User = await context.GetOrCreateUserReferenceAsync() }; await context.AddAsync(newTag); tags.Add(newTag); } var condition = dto.Condition.Values.Select(x => (DAL.Entities.Condition) int.Parse(x.Id)).Aggregate((a, b) => a | b); var entity = context.AddAsync(new DAL.Entities.SearchQuery { Name = dto.Name, UseDescription = dto.UseDescription, WithAllTheseWords = dto.WithAllTheseWords, WithOneOfTheseWords = dto.WithOneOfTheseWords, WithExactlyTheseWords = dto.WithExactlyTheseWords, WithNoneOfTheseWords = dto.WithNoneOfTheseWords, CategoryId = dto.CategorySelection.Id, EnableNotifications = dto.EnableNotifications, NotificationMode = dto.NotificationMode, DesiredPrice = dto.DesiredPrice, AutoFilterDeletedDuplicates = dto.AutoFilterDeletedDuplicates, Tags = tags, TagValues = string.Join("|", tags.OrderBy(t => t.Name).Select(t => t.Name)), Condition = condition }); await context.SaveChangesAsync(); this.Id = entity.Id; } }