コード例 #1
0
        public async Task<Tag> GetOrCreate(string name, IBpContext context, bool commit = false)
        {
            var tag = await GetByName(name, context);
            if (tag != null) return tag;

            return await Create(name, context, commit);
        }
コード例 #2
0
        public virtual async Task<Tag> Create(string name, IBpContext context, bool commit = false)
        {
            var tag = new Tag {Name = name.ToLower()};
            _tagRep.Add(tag , context);
            if (commit) await context.SaveChangesAsync();

            return tag;
        }
コード例 #3
0
        public virtual async Task<Movement> Create(CreateMovementDto createMovementDto,IBpContext context, bool commit = false)
        {
            var movement = new Movement { Quantity = createMovementDto.Quantity, Date = createMovementDto.Date ?? DateTime.UtcNow };

            foreach (var tagName in createMovementDto.TagNames)
            {
                var tag = await _tagSvc.GetOrCreate(tagName, context, false);
                movement.TagInMovements.Add(new TagInMovement { Tag = tag, TagId = tag.Id });
            }

            _movementRep.Add(movement, context);
            if (commit) await context.SaveChangesAsync();

            return movement;
        }
コード例 #4
0
 public virtual async Task<Tag> GetByName(string name, IBpContext context)
 {
     var tags = _tagRep.GetAll(context);
     return await FirstOrDefaultAsync(tags, t => t.Name.ToLower() == name.ToLower());
 }