private void AddDataAlreadyExistsProblem(PersonInputDto person) { _problemCollector.AddProblem(new CodedProblemDetails ( ProblemType.ERROR_DATA_ALREADY_EXISTS, $"{nameof(Person)}.{nameof(Person.Npwp)}", person.Npwp )); }
/// <summary> /// 新增一条 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <int> Insert(PersonInputDto input) { // 如果不需要返回自增Id,使用 InsertAsync即可 var newEntity = await _personRepository.InsertNowAsync(input.Adapt <Person>()); return(newEntity.Entity.Id); // 还可以直接操作 // await personDto.Adapt<Person>().InsertNowAsync(); }
/// <summary> /// 更新一条 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task Update(PersonInputDto input) { var person = await _personRepository.Entities.Include(u => u.PersonDetail) .Include(u => u.Childrens) .Include(u => u.Posts) .SingleAsync(u => u.Id == input.Id.Value); input.Adapt(person); await _personRepository.UpdateAsync(person); // 还可以直接操作 // await personDto.Adapt<Person>().UpdateAsync(); }
public async Task <ActionResult> CreateAsync([FromBody] PersonInputDto personInput) { var person = Mapper.Map <Person>(personInput); await CustomerLogic.CreatePersonAsync(person); var errorResult = CheckProblems(); if (errorResult != null) { return(errorResult); } await PublishEndpoint.Publish <IPersonCreatedEvent>(new { Person = person }); return(CreatedAtAction( Url.Action(nameof(GetAsync)), new { id = person.Id }, person)); }
public void Test1() { IMapper mapper = new TinyMapperMapper(); mapper.Bind <Person, PersonInputDto>(); var stopwatch = new Stopwatch(); stopwatch.Start(); for (int i = 0; i < 100; i++) { var source = new PersonInputDto { Name = i.ToString(), }; var target = Nelibur.ObjectMapper.TinyMapper.Map <Person>(source); } stopwatch.Stop(); Assert.Equal(100, stopwatch.ElapsedMilliseconds); }
static void Main(string[] args) { IMapper mapper = new TinyMapperMapper(); mapper.Bind <PersonInputDto, Person>(); var stopwatch = new Stopwatch(); stopwatch.Start(); for (int i = 0; i < 100; i++) { var source = new PersonInputDto { Name = i.ToString(), }; var target = Nelibur.ObjectMapper.TinyMapper.Map <Person>(source); } stopwatch.Stop(); Console.WriteLine("耗时" + stopwatch.ElapsedMilliseconds); Console.Read(); }