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
                );
        }
Esempio n. 3
0
        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)
            }));
        }
Esempio n. 4
0
        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
            });
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
            }
        }
Esempio n. 9
0
 public async Task UpdateAsync(string id, UpdateCharacterRequest request) =>
 await _service.UpdateAsync(id, request);
Esempio n. 10
0
        public async Task <IHttpActionResult> Put(UpdateCharacterRequest request)
        {
            await _characterCommandService.Update(request);

            return(StatusCode(HttpStatusCode.NoContent));
        }