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)); } }
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); }