protected virtual async Task <TReadModel> CreateModel(TCreateModel createModel, CancellationToken cancellationToken = default(CancellationToken)) { var identityName = User?.Identity?.Name; createModel.Created = DateTimeOffset.UtcNow; createModel.CreatedBy = identityName; createModel.Updated = DateTimeOffset.UtcNow; createModel.UpdatedBy = identityName; // validate model await CreateValidator.ValidateAndThrowAsync(createModel, cancellationToken : cancellationToken); // create new entity from model var entity = Mapper.Map <TEntity>(createModel); // add to data set, id should be generated await DataContext .Set <TEntity>() .AddAsync(entity, cancellationToken); // save to database await DataContext .SaveChangesAsync(cancellationToken); // convert to read model var readModel = await ReadModel(entity.Id, cancellationToken); return(readModel); }
public virtual async Task <TOutDto> CreateAsync(TCreateDto inDto) { await CreateValidator.ValidateAndThrowAsync(inDto) .ConfigureAwait(false); var entity = Mapper.Map <TEntity>(inDto); await Repository.SaveAsync(entity).ConfigureAwait(false); return(Mapper.Map <TOutDto>(entity)); }
public override async Task <AuditOutDto> CreateAsync( CreateAuditDto inDto ) { await CreateValidator.ValidateAndThrowAsync(inDto); var audit = Mapper.Map <Audit>(inDto); audit.User = await userDbRepository.GetByIdAsync( id : inDto.UserId.Value ); await Repository.SaveAsync(audit); return(Mapper.Map <AuditOutDto>(audit)); }