public EntitiesProfile()
        {
            this.CreateMap <Entity, EntityResponse>();

            this.CreateMap <CreateEntityCommand, Entity>()
            .ForMember(dest => dest.Id, opt => opt.MapFrom(command => ObjectIdentifier.GenerateNewId()));

            this.CreateMap <UpdateEntityCommand, Entity>()
            .ForMember(dest => dest.Id, opt => opt.MapFrom(command => ObjectIdentifierParser.ValidateAndParse(command.Id)));
        }
示例#2
0
        public async Task <EntityResponse> GetByIdAsync(string id)
        {
            var entityId = ObjectIdentifierParser.ValidateAndParse(id);
            var entity   = await _entitiesRepository.GetAsync(entityId);

            if (entity == null)
            {
                return(null);
            }

            return(_mapper.Map <Entity, EntityResponse>(entity));
        }
示例#3
0
        public async Task <EntityResponse> UpdateAsync(UpdateEntityCommand updateCommand)
        {
            var entityId       = ObjectIdentifierParser.ValidateAndParse(updateCommand.Id);
            var existingEntity = await _entitiesRepository.GetAsync(entityId);

            if (existingEntity == null)
            {
                return(null);
            }

            _updateCommandValidator.ValidateAndThrowIfFailed(updateCommand);

            var entity        = _mapper.Map <UpdateEntityCommand, Entity>(updateCommand);
            var updatedEntity = await _entitiesRepository.SaveAsync(entity);

            return(_mapper.Map <Entity, EntityResponse>(updatedEntity));
        }
示例#4
0
 public async Task DeleteAsync(string id)
 {
     var entityId = ObjectIdentifierParser.ValidateAndParse(id);
     await _entitiesRepository.DeleteAsync(entityId);
 }