public async Task <IActionResult> AddProfession(int id)
        {
            var user = await _authorizerService.Authorize(HttpContext);

            if (user == null)
            {
                return(Redirect(GlobalConstants.Default_Login_Page));
            }

            var race = _racesService.ById(id);

            if (race == null)
            {
                return(Redirect(Races_Root_Path));
            }

            var model = new AddProfessionToRaceInputModel
            {
                RaceId      = id,
                RaceName    = race.Name,
                Professions = _professionsService.All()
            };

            return(View(model));
        }
        public IActionResult AddProfession(AddProfessionToRaceInputModel model)
        {
            var success = _racesService.AddProfessionToRace(model);

            if (success)
            {
                return(RedirectToAction("Details", new { id = model.RaceId }));
            }

            return(View(model));
        }
        public void AddProfessionToRace_AddsDataProperly()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "Db_ForAddProfToRace")
                          .Options;

            var professionName = "Prof Name";

            using (var context = new GameInfoContext(options))
            {
                var race = new Race()
                {
                    Name        = "race",
                    Description = "none"
                };

                var profession = new Profession()
                {
                    Name         = professionName,
                    ClassRole    = ClassRole.Damage,
                    CombatType   = CombatType.Mage,
                    UsableWeapon = WeaponType.Staff
                };

                context.Races.Add(race);
                context.Professions.Add(profession);
                context.SaveChanges();
            }

            using (var context = new GameInfoContext(options))
            {
                var raceFromDb = context.Races.First();

                var profService = new ProfessionsService(context);
                var service     = new RacesService(context, profService);

                var model = new AddProfessionToRaceInputModel()
                {
                    RaceId         = raceFromDb.Id,
                    ProfessionName = professionName
                };

                Assert.True(service.AddProfessionToRace(model));
            }
        }
Exemple #4
0
        public bool AddProfessionToRace(AddProfessionToRaceInputModel model)
        {
            var race = this.ById(model.RaceId);

            if (race == null)
            {
                return(false);
            }

            var professionToAdd = _professionsService.ByName(model.ProfessionName);

            race.Professions.Add(new RaceProfession {
                Race         = race,
                RaceId       = race.Id,
                Profession   = professionToAdd,
                ProfessionId = professionToAdd.Id
            });
            _db.SaveChanges();

            return(true);
        }