public PersonaReturnModel Create(Persona persona) { if (persona == null) throw new ArgumentNullException(nameof(persona)); var model = Mapper.Map<PersonaReturnModel>(persona); model.Url = _urlHelper.Link("GetPersonaById", new {id = persona.Id}); model.Race = CreateLite(persona.Race); model.Clan = CreateLite(persona.Clan); model.User = CreateLite(persona.User); return model; }
public PersonaWithMailReturnModel CreateWithMail(Persona persona) { if (persona == null) throw new ArgumentNullException(nameof(persona)); var model = Mapper.Map<PersonaWithMailReturnModel>(persona); model.Url = _urlHelper.Link("GetPersonaById", new {id = persona.Id}); model.SentMails = persona.SentMails.Select(Create).ToList(); model.ReceivedMails = persona.ReceivedMails.Select(Create).ToList(); return model; }
public async Task<IHttpActionResult> PostPersona(CreatePersonaBindingModel createPersonaModel) { if (!ModelState.IsValid) return BadRequest(ModelState); if (string.IsNullOrWhiteSpace(createPersonaModel.Username)) return BadRequest("Username cannot be null"); var persona = new Persona { Pseudo = createPersonaModel.Pseudo, Name = createPersonaModel.Name, Background = createPersonaModel.Background, Generation = 1, ExperienceActual = 3000, ExperienceRemaining = 3000, Nights = 0, Willingness = 10, Humanity = 10 }; var user = await TheUserManager.FindByNameAsync(createPersonaModel.Username); if (user == null) return BadRequest("User not found"); user.Personae.Add(persona); var updateUserResult = await TheUserManager.UpdateAsync(user); if (!updateUserResult.Succeeded) return GetErrorResult(updateUserResult); var locationHeader = new Uri(Url.Link("GetPersonaById", new { id = persona.Id })); return Created(locationHeader, TheModelFactory.Create(persona)); }
public PersonaWithAllReturnModel CreateWithAll(Persona persona) { if (persona == null) throw new ArgumentNullException(nameof(persona)); var model = Mapper.Map<PersonaWithAllReturnModel>(persona); model.Url = _urlHelper.Link("GetPersonaById", new {id = persona.Id}); return model; }
//[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; }