public ActionResult UpdateCharacter([FromBody] UpdateCharacterRequest request) { request.Validate(); if (request.Invalid) return BadRequest($"Favor informar valores válidos para: {ErrorHelper.GetErrors(request)}"); _characterService.UpdateCharacter(request.Id, request.Name, request.Role, request.Patronus, request.House); return Ok(); }
public async Task UpdateAsync(string id, UpdateCharacterRequest request) { var entity = await _readRepository.GetByIdAsync(id); var updatedEntity = new CharacterEntity { PlayerFullName = request.PlayerFullName, CharacterFullName = request.CharacterFullName, AccruedDowntimeDays = request.AccruedDowntimeDays }; await(await _container).ReplaceItemAsync( await _entityMutator.UpdateMetadataAsync(updatedEntity, entity, request.SharedWith), id ); }
public ActionResult <CharacterResponse> UpdateCharacter(int id, UpdateCharacterRequest request) { var character = _chars.GetById(id); if (character == null) { return(NotFound()); } if (request.Name != null && _charService.NameExists(request.Name)) { return(UnprocessableEntity(new { Message = $"There's already a character with the name ({request.Name})" })); } User user = (User)HttpContext.Items["User"]; foreach (var property in request.GetType().GetProperties()) { var propertyName = property.Name; var propertyValue = character.GetType().GetProperty(propertyName).GetValue(character, null); var updatedPropertyValue = request.GetType().GetProperty(propertyName).GetValue(request, null); if (updatedPropertyValue == null) { request.GetType().GetProperty(propertyName).SetValue(request, propertyValue, null); continue; } if (!user.HasPermissionTo($"edit {propertyName.ToLower()}")) { return(Unauthorized(new { Message = $"You do NOT have permission to edit the property ({propertyName})" })); } } var UpdatedCharacter = _mapper.Map(request, character); _chars.Update(UpdatedCharacter); return(Ok(new { Message = "Updated successfully!", Character = _mapper.Map <CharacterResponse>(UpdatedCharacter) })); }
public void GivenSomeNullProperties_OverwritesExistingPropertiesInDatabase() { // Arrange var character = new Character { PlayerId = DefaultPlayer.Id, Name = "Meraddison", Class = "Warlock", Level = 120, Realm = "area-52", Gender = CharacterGender.Female }; Context.Characters.Add(character); Context.SaveChanges(); string expectedName = null; string expectedClass = null; string expectedSpecialization = null; int? expectedLevel = null; var expectedRealm = "area-52"; var expectedRace = "Undead"; var expectedGender = CharacterGender.Female; int? expectedGameId = null; var dto = new UpdateCharacterRequest(character.Id, expectedGameId, expectedName, expectedGender, expectedLevel, expectedClass, expectedSpecialization, expectedRace, expectedRealm); // Act var result = _controller.UpdateCharacter(dto); var foundCharacter = Context.Characters.Find(result.Value); // Assert foundCharacter.Should().NotBeNull(); foundCharacter.PlayerId.Should().Be(DefaultPlayer.Id); foundCharacter.Name.Should().Be(expectedName); foundCharacter.GameId.Should().BeNull(); foundCharacter.Class.Should().Be(expectedClass); foundCharacter.Specialization.Should().Be(expectedSpecialization); foundCharacter.Race.Should().Be(expectedRace); foundCharacter.Level.Should().Be(expectedLevel); foundCharacter.Gender.Should().Be(expectedGender); foundCharacter.Realm.Should().Be(expectedRealm); }
public async Task <UpdateCharacterResponse> Update(UpdateCharacterRequest request) { var character = await _db.Characters.FindAsync(request.Id); var characterType = await _db.CharacterTypes.FindAsync(request.CharacterTypeId); character.Name = request.Name; character.NumberOfComics = request.NumberOfComics; character.NumberOfSeries = request.NumberOfSeries; character.ProfilePage = request.ProfilePage; character.CharacterType = characterType; _db.Entry(character).State = EntityState.Modified; await _db.SaveChangesAsync(); return(new UpdateCharacterResponse { Success = true }); }
public void GivenValidCharacter_UpdatesCharacter() { // Arrange var character = new Character { PlayerId = DefaultPlayer.Id }; Context.Characters.Add(character); Context.SaveChanges(); var expectedName = "Meraddison"; var expectedClass = "Warlock"; var expectedSpecialization = "Affliction"; var expectedLevel = 120; var expectedRealm = "area-52"; var expectedRace = "Undead"; var expectedGender = CharacterGender.Female; int?expectedGameId = null; var dto = new UpdateCharacterRequest(character.Id, expectedGameId, expectedName, expectedGender, expectedLevel, expectedClass, expectedSpecialization, expectedRace, expectedRealm); // Act var result = _controller.UpdateCharacter(dto); var foundCharacter = Context.Characters.Find(result.Value); // Assert foundCharacter.Should().NotBeNull(); foundCharacter.PlayerId.Should().Be(DefaultPlayer.Id); foundCharacter.Name.Should().Be(expectedName); foundCharacter.GameId.Should().BeNull(); foundCharacter.Class.Should().Be(expectedClass); foundCharacter.Race.Should().Be(expectedRace); foundCharacter.Level.Should().Be(expectedLevel); foundCharacter.Gender.Should().Be(expectedGender); foundCharacter.Realm.Should().Be(expectedRealm); }
public ActionResult <Guid> UpdateCharacter(UpdateCharacterRequest request) { var character = _context.Characters.Find(request.CharacterId); if (character is null) { return(NotFound()); } character.GameId = request.GameId; character.Name = request.Name; character.Gender = request.Gender; character.Level = request.Level; character.Class = request.Class; character.Specialization = request.Specialization; character.Race = request.Race; character.Realm = request.Realm; _context.SaveChanges(); return(character.Id); }
public async Task UpdateAsync(string id, UpdateCharacterRequest request) { await _writeRepository.UpdateAsync(id, request); var ownedDowntimes = await _downtimeReadRepository.GetAsync(d => d.Character.Id == id); foreach (var downtime in ownedDowntimes) { var downtimeUpdate = new UpdateDowntimeRequest { Costs = downtime.Costs .Select(c => new UpdateDowntimeCostRequest { ActivityCostKind = c.ActivityCostKind, Goal = c.Goal, Value = c.Value }) .ToArray(), SharedWith = request.SharedWith }; await _downtimeWriteRepository.UpdateAsync(downtime.Id, downtimeUpdate); } }
public async Task UpdateAsync(string id, UpdateCharacterRequest request) => await _service.UpdateAsync(id, request);
public async Task <IHttpActionResult> Put(UpdateCharacterRequest request) { await _characterCommandService.Update(request); return(StatusCode(HttpStatusCode.NoContent)); }