예제 #1
0
        public async Task<OperationResult<MovementDto>> Create(CreateMovementDto createMovementDto)
        {
            using (var context = CreateContext())
            {
                var valResult = _movementValidationSvc.ValidateForCreating(createMovementDto);
                if (!valResult.IsValid) return FormatResult<MovementDto>(valResult);

                var movement = await Create(createMovementDto, context, true);
                return FormatResult(movement);
            }
        }
예제 #2
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;
        }