Example #1
0
        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());
        }
Example #2
0
        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));
        }