/// <summary>
        /// Invokes the http api to create a person on the server.
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public async Task <Person> CreatePerson(EditPersonParameters parameters)
        {
            var message = await _httpClient
                          .PostAsync(PeopleUrlBase, new StringContent(JsonSerializer.Serialize(parameters), Encoding.UTF8, "application/json"));

            return(await JsonSerializer.DeserializeAsync <Person>(await message.Content.ReadAsStreamAsync()));
        }
        public Task <Person> CreatePerson(EditPersonParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            var person = new Person
            {
                Id = Guid.NewGuid()
            };

            parameters.Patch(person);
            People.AddOrUpdate(person.Id, person, (key, value) => person);

            return(Task.FromResult(person));
        }
        public Task <Person> EditPerson(Guid id, EditPersonParameters parameters)
        {
            if (id == Guid.Empty)
            {
                throw new EmptyGuidException(nameof(id));
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            if (!People.TryGetValue(id, out Person person))
            {
                throw new ArgumentException($"No person found with id {id}!", nameof(id));
            }

            parameters.Patch(person);
            People.AddOrUpdate(id, person, (key, value) => person);
            return(Task.FromResult(person));
        }
Ejemplo n.º 4
0
 public Task <Person> EditPerson(Guid id, [FromBody] EditPersonParameters parameters)
 {
     return(_repository.EditPerson(id, parameters));
 }
Ejemplo n.º 5
0
 public Task <Person> CreatePerson([FromBody] EditPersonParameters parameters)
 {
     return(_repository.CreatePerson(parameters));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Invokes the http api to modify a person on the server.
 /// </summary>
 /// <param name="id"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 public Task <Person> EditPerson(Guid id, EditPersonParameters parameters)
 {
     // Implementation goes here!
     throw new NotImplementedException();
 }