예제 #1
0
        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();
        }
예제 #2
0
        //[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;
        }