public async Task<IHttpActionResult> PutPersona(int id, UpdatePersonaBindingModel updatePersonaModel) { if (!ModelState.IsValid) return BadRequest(ModelState); var persona = await ThePersonaStore.FindByIdAsync(id); if (persona == null) return NotFound(); UpdateEntity(ref persona, updatePersonaModel); var result = await ThePersonaStore.UpdateAsync(persona); return !result.Succeeded ? GetErrorResult(result) : Ok(); }
//[HttpGet] //[Route("{id:int}/mails")] //[ResponseType(typeof(List<Mail>))] //public async Task<IHttpActionResult> GetLetterBox(int id) //{ // var persona = await ThePersonaStore.FindByIdAsync(id); // if (persona != null) // { // var result = persona.LetterBox // .Select(mail => TheModelFactory.Create(mail)); // return !result.Succeeded // ? GetErrorResult(result) // : Ok(); // } // return NotFound(); //} protected void UpdateEntity(ref Persona persona, UpdatePersonaBindingModel updatePersonaModel) { if (updatePersonaModel.Pseudo != null) persona.Pseudo = updatePersonaModel.Pseudo; if (updatePersonaModel.Name != null) persona.Name = updatePersonaModel.Name; if (updatePersonaModel.Background != null) persona.Background = updatePersonaModel.Background; if (updatePersonaModel.Generation.HasValue) persona.Generation = updatePersonaModel.Generation.Value; if (updatePersonaModel.ExperienceActual.HasValue) persona.ExperienceActual = updatePersonaModel.ExperienceActual.Value; if (updatePersonaModel.ExperienceRemaining.HasValue) persona.ExperienceRemaining = updatePersonaModel.ExperienceRemaining.Value; if (updatePersonaModel.Nights.HasValue) persona.Nights = updatePersonaModel.Nights.Value; if (updatePersonaModel.Willingness.HasValue) persona.Willingness = updatePersonaModel.Willingness.Value; if (updatePersonaModel.Humanity.HasValue) persona.Humanity = updatePersonaModel.Humanity.Value; }