예제 #1
0
        public async Task <ActionResult> Create(AddCharacterViewModel viewModel)
        {
            try
            {
                await ProjectService.AddCharacter(new AddCharacterRequest()
                {
                    ProjectId               = viewModel.ProjectId,
                    Description             = viewModel.Description,
                    Name                    = viewModel.Name,
                    IsAcceptingClaims       = viewModel.IsAcceptingClaims,
                    ParentCharacterGroupIds =
                        viewModel.ParentCharacterGroupIds.GetUnprefixedGroups(),
                    HidePlayerForCharacter = viewModel.HidePlayerForCharacter,
                    IsHot       = viewModel.IsHot,
                    IsPublic    = viewModel.IsPublic,
                    FieldValues = GetCustomFieldValuesFromPost(),
                });

                var characterGroupId = viewModel.ParentCharacterGroupIds.GetUnprefixedGroups().First();

                if (viewModel.ContinueCreating)
                {
                    return(RedirectToAction("Create",
                                            new { viewModel.ProjectId, characterGroupId, viewModel.ContinueCreating }));
                }


                return(RedirectToIndex(viewModel.ProjectId, characterGroupId));
            }
            catch
            {
                return(View(viewModel));
            }
        }
        public IActionResult AddNewCharacter(AddCharacterViewModel model)
        {
            ICharacterCollection characterCollection = _characterFactory.CharacterCollection();

            characterCollection.AddCharacter(new Character(model.Name, model.SpecializationId));
            return(RedirectToAction("Index", "Character"));
        }
예제 #3
0
        public void AddCharacterViewModelWithConditionalField()
        {
            var field     = _mock.CreateConditionalField(new ProjectField(), _mock.Group);
            var vm        = new AddCharacterViewModel().Fill(_mock.Group, _mock.Master.UserId);
            var fieldView = vm.Fields.Field(field);

            fieldView.ShouldNotBeNull();
            fieldView.Value.ShouldBeNull();
            fieldView.ShouldBeHidden();
            fieldView.ShouldBeEditable();
        }
        public IActionResult AddNewCharacter()
        {
            ISpecializationCollection specializationCollection = _specializationFactory.SpecializationCollection();

            AddCharacterViewModel model = new AddCharacterViewModel()
            {
                AllSpecializations = specializationCollection.GetAll()
            };

            return(View(model));
        }
예제 #5
0
        public void AddCharacterViewModelWithoutConditionalField()
        {
            var field = _mock.CreateConditionalField(new ProjectField(), _mock.Group);

            var groupForClaim = _mock.CreateCharacterGroup(new CharacterGroup());
            var vm            = new AddCharacterViewModel().Fill(groupForClaim, _mock.Master.UserId);
            var fieldView     = vm.Fields.Field(field);

            fieldView.ShouldNotBeNull();
            fieldView.Value.ShouldBeNull();
            fieldView.ShouldBeHidden();
            fieldView.ShouldBeReadonly();
        }
예제 #6
0
        public async Task <ActionResult> Create(AddCharacterViewModel viewModel)
        {
            var characterGroupId = viewModel.ParentCharacterGroupIds.GetUnprefixedGroups().FirstOrDefault();

            try
            {
                await CharacterService.AddCharacter(new AddCharacterRequest()
                {
                    ProjectId               = viewModel.ProjectId,
                    Name                    = viewModel.Name,
                    IsAcceptingClaims       = viewModel.IsAcceptingClaims,
                    ParentCharacterGroupIds =
                        viewModel.ParentCharacterGroupIds.GetUnprefixedGroups(),
                    HidePlayerForCharacter = viewModel.HidePlayerForCharacter,
                    IsHot       = viewModel.IsHot,
                    IsPublic    = viewModel.IsPublic,
                    FieldValues = Request.GetDynamicValuesFromPost(FieldValueViewModel.HtmlIdPrefix),
                });



                if (viewModel.ContinueCreating)
                {
                    return(RedirectToAction("Create",
                                            new { viewModel.ProjectId, characterGroupId, viewModel.ContinueCreating }));
                }


                return(RedirectToIndex(viewModel.ProjectId, characterGroupId));
            }
            catch (Exception exception)
            {
                ModelState.AddException(exception);
                CharacterGroup characterGroup;
                if (characterGroupId == 0)
                {
                    characterGroup = (await ProjectRepository.GetProjectAsync(viewModel.ProjectId))
                                     .RootGroup;
                }
                else
                {
                    characterGroup =
                        await ProjectRepository.GetGroupAsync(viewModel.ProjectId,
                                                              characterGroupId);
                }

                return(View(viewModel.Fill(characterGroup, CurrentUserId)));
            }
        }
        public async Task <ActionResult> Create(AddCharacterViewModel viewModel)
        {
            try
            {
                await ProjectService.AddCharacter(
                    viewModel.ProjectId, CurrentUserId,
                    viewModel.Name, viewModel.IsPublic, viewModel.ParentCharacterGroupIds.GetUnprefixedGroups(), viewModel.IsAcceptingClaims,
                    viewModel.Description, viewModel.HidePlayerForCharacter, viewModel.IsHot);

                return(RedirectToIndex(viewModel.ProjectId, viewModel.ParentCharacterGroupIds.GetUnprefixedGroups().First()));
            }
            catch
            {
                return(View(viewModel));
            }
        }
예제 #8
0
        public IActionResult Add(AddCharacterViewModel addCharacterViewModel)
        {
            if (ModelState.IsValid)
            {
                Character newCharacter = new Character
                {
                    Name           = addCharacterViewModel.Name,
                    Bio            = addCharacterViewModel.Bio,
                    CharacterClass = addCharacterViewModel.CharacterClass,
                    Race           = addCharacterViewModel.Race
                };

                context.Characters.Add(newCharacter);
                context.SaveChanges();

                return(Redirect("/Create"));
            }

            return(View(addCharacterViewModel));
        }
예제 #9
0
        public async Task <ActionResult> Create(AddCharacterViewModel addCharacterViewModel)
        {
            var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value;

            if (ModelState.IsValid)
            {
                // Add the new Character to my existing Characters
                Character newCharacter = new Character
                {
                    Name = addCharacterViewModel.Name,
                    //DateOfBirth = addCharacterViewModel.DateOfBirth,
                    SweetRoleUserId = userId
                };

                _context.Add(newCharacter);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(addCharacterViewModel));
        }
예제 #10
0
        public async Task <ActionResult> Create(AddCharacterViewModel viewModel)
        {
            var project1 = await ProjectRepository.GetProjectAsync(viewModel.ProjectId);

            var error = AsMaster(project1);

            if (error != null)
            {
                return(error);
            }
            try
            {
                await ProjectService.AddCharacter(
                    viewModel.ProjectId, CurrentUserId,
                    viewModel.Name, viewModel.IsPublic, viewModel.ParentCharacterGroupIds.GetUnprefixedGroups(), viewModel.IsAcceptingClaims,
                    viewModel.Description, viewModel.HidePlayerForCharacter, viewModel.IsHot);

                return(RedirectToIndex(viewModel.ProjectId, viewModel.ParentCharacterGroupIds.GetUnprefixedGroups().First()));
            }
            catch
            {
                return(View(viewModel));
            }
        }
예제 #11
0
        public IActionResult Add()
        {
            AddCharacterViewModel addCharacterViewModel = new AddCharacterViewModel();

            return(View(addCharacterViewModel));
        }