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