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); } }
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; }