Example #1
0
        public void GivenACompleteValidCharacter_AddsCharacter()
        {
            // Arrange
            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 AddCharacterRequest(DefaultPlayer.Id, expectedGameId, expectedName, expectedGender,
                                              expectedLevel, expectedClass, expectedSpecialization, expectedRace, expectedRealm);

            // Act
            var result = _controller.AddCharacter(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);
        }
Example #2
0
        public async Task AddCharacter(AddCharacterRequest addCharacterRequest)
        {
            var project = await ProjectRepository.GetProjectAsync(addCharacterRequest.ProjectId);

            project.RequestMasterAccess(CurrentUserId, acl => acl.CanEditRoles);
            project.EnsureProjectActive();

            var character = new Character
            {
                CharacterName = Required(addCharacterRequest.Name),
                ParentCharacterGroupIds =
                    await ValidateCharacterGroupList(addCharacterRequest.ProjectId, Required(addCharacterRequest.ParentCharacterGroupIds)),
                ProjectId = addCharacterRequest.ProjectId,
                IsPublic = addCharacterRequest.IsPublic,
                IsActive = true,
                IsAcceptingClaims = addCharacterRequest.IsAcceptingClaims,
                HidePlayerForCharacter = addCharacterRequest.HidePlayerForCharacter,
                IsHot = addCharacterRequest.IsHot,
            };
            Create(character);
            MarkTreeModified(project);

            // ReSharper disable once MustUseReturnValue
            //TODO we do not send message for creating character
            FieldSaveHelper.SaveCharacterFields(CurrentUserId,
                character,
                addCharacterRequest.FieldValues,
                FieldDefaultValueGenerator);

            await UnitOfWork.SaveChangesAsync();
        }
Example #3
0
        public async Task <IActionResult> CharacterAddPost(AddCharacterRequest request)
        {
            try
            {
                await gameService.AddCharacter(request.GameID, request.CharacterID, request.Name, request.Image);

                return(RedirectToAction("Home", new { request.GameID }));
            }
            catch (Exception exception)
            {
                return(GetExceptionResult(exception, request));
            }
        }
Example #4
0
        public ActionResult <Guid> AddCharacter(AddCharacterRequest request)
        {
            var player = _context.Players.Find(request.PlayerId);

            if (player is null)
            {
                return(NotFound());
            }

            var character = new Character(player.Id, request.GameId, request.Name, request.Gender, request.Level,
                                          request.Class, request.Specialization, request.Race, request.Realm);

            _context.Characters.Add(character);
            _context.SaveChanges();

            return(character.Id);
        }
        public async Task<AddCharacterResponse> Add(AddCharacterRequest request)
        {
            var characterType = await _db.CharacterTypes.FindAsync(request.CharacterTypeId);
            var character = new Character
            {
                Name = request.Name,
                NumberOfComics = request.NumberOfComics,
                NumberOfSeries = request.NumberOfSeries,
                ProfilePage = request.ProfilePage,
                CharacterType = characterType
            };
            _db.Characters.Add(character);
            await _db.SaveChangesAsync();

            return new AddCharacterResponse
            {
                Success = true,
                Character = new CharacterDto {Id = character.Id}
            };
        }
        public async Task <AddCharacterResponse> Add(AddCharacterRequest request)
        {
            var characterType = await _db.CharacterTypes.FindAsync(request.CharacterTypeId);

            var character = new Character
            {
                Name           = request.Name,
                NumberOfComics = request.NumberOfComics,
                NumberOfSeries = request.NumberOfSeries,
                ProfilePage    = request.ProfilePage,
                CharacterType  = characterType
            };

            _db.Characters.Add(character);
            await _db.SaveChangesAsync();

            return(new AddCharacterResponse
            {
                Success = true,
                Character = new CharacterDto {
                    Id = character.Id
                }
            });
        }
Example #7
0
        public void GivenSomeNullOrDefaultProperties_AddsCharacter(int?gameId, string name,
                                                                   CharacterGender gender, int?level, string @class, string specialization, string race, string realm)
        {
            // Arrange
            var dto = new AddCharacterRequest(DefaultPlayer.Id, gameId, name, gender,
                                              level, @class, specialization, race, realm);

            // Act
            var result = _controller.AddCharacter(dto);

            var foundCharacter = Context.Characters.Find(result.Value);

            // Assert
            foundCharacter.Should().NotBeNull();
            foundCharacter.PlayerId.Should().Be(DefaultPlayer.Id);
            foundCharacter.Name.Should().Be(name);
            foundCharacter.GameId.Should().Be(gameId);
            foundCharacter.Class.Should().Be(@class);
            foundCharacter.Specialization.Should().Be(specialization);
            foundCharacter.Race.Should().Be(race);
            foundCharacter.Level.Should().Be(level);
            foundCharacter.Gender.Should().Be(gender);
            foundCharacter.Realm.Should().Be(realm);
        }
Example #8
0
        public async Task <IHttpActionResult> Post(AddCharacterRequest request)
        {
            var response = await _characterCommandService.Add(request);

            return(CreatedAtRoute("DefaultApi", new { id = response.Character.Id }, response.Character));
        }