private void AddDataAlreadyExistsProblem(PersonInputDto person)
 {
     _problemCollector.AddProblem(new CodedProblemDetails
                                  (
                                      ProblemType.ERROR_DATA_ALREADY_EXISTS,
                                      $"{nameof(Person)}.{nameof(Person.Npwp)}",
                                      person.Npwp
                                  ));
 }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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);
        }
示例#6
0
        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();
        }