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);
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }