public async Task <IActionResult> PutPerson(Guid id, Person person) { var inProperties = person .GetType() .GetProperties() .ToDictionary( key => key.Name, val => val.GetValue(person)); var p = await _bll.Persons.OnePerson(User.UserId()); foreach (var property in p.GetType().GetProperties()) { if (inProperties.TryGetValue(property.Name, out var value)) { if (value != null) { if (value.ToString() != "00000000-0000-0000-0000-000000000000") { property.SetValue(p, value); } } } } await _bll.Persons.UpdateAsync(p); await _bll.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult <BLL.App.DTO.Person> > PostPerson(Person person) { var prePerson = await _bll.Persons.OnePerson(User.UserId()); person.AppUserId = User.UserId(); person.FamilyId = prePerson.FamilyId; var bllEntity = _mapper.Map(person); _bll.Persons.Add(bllEntity); await _bll.SaveChangesAsync(); person.Id = bllEntity.Id; return(CreatedAtAction("GetPerson", new { id = person.Id, version = HttpContext.GetRequestedApiVersion()?.ToString() ?? "0" }, person)); }