public async Task <ChampionshipViewModel> GetById(Guid ChampionshipId) { var queryArgs = new DynamicParameters(); queryArgs.Add("Id", ChampionshipId); var query = @"select c.Id, c.ChampionshipName, c.isActive, t.id as ChampionshipTeams_Id, t.TeamName as ChampionshipTeams_TeamName, t.IsActive as ChampionshipTeams_isActive from Championship c inner join ChampionshipTeam ct on c.id = ct.ChampionshipsId inner join Team t on ct.TeamsId = t.Id Where c.Id = @Id order by t.TeamName"; var result = await _sqlConnection.QueryAsync <dynamic>(query, queryArgs); Slapper.AutoMapper.Configuration.AddIdentifier(typeof(ChampionshipViewModel), "Id"); Slapper.AutoMapper.Configuration.AddIdentifier(typeof(List <TeamViewModel>), "Id"); ChampionshipViewModel obj = Slapper.AutoMapper.MapDynamic <ChampionshipViewModel>(result).FirstOrDefault(); return(obj); }
public async Task UpdateNotExistingChampionship() { var countriesList = new List <Country> { new Country { Id = 1, Name = "Italy", Code = "IT" } }; var championshipsList = new List <Championship>(); var mockCountryRepo = new Mock <IRepository <Country> >(); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object); var updatedViewModel = new ChampionshipViewModel { Id = 1, Name = "Santiago Bernabeu", CountryId = 1 }; await Assert.ThrowsAsync <Exception>(() => championshipService.UpdateAsync(updatedViewModel)); }
public ChampionshipView() { InitializeComponent(); ViewModel = new ChampionshipViewModel(); ViewModel.OnRequestClose += (s, e) => Close(); DataContext = ViewModel; }
public async Task <IActionResult> Edit(ChampionshipViewModel championshipViewModel) { if (!ModelState.IsValid) { ModelState.AddModelError(string.Empty, "Data is not valid"); championshipViewModel.CountriesItems = countryService.GetAllAsKeyValuePairs(); return(View(championshipViewModel)); } try { await championshipService.UpdateAsync(championshipViewModel); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.InnerException?.Message ?? ex.Message); championshipViewModel.CountriesItems = countryService.GetAllAsKeyValuePairs(); return(View(championshipViewModel)); } TempData["SuccessMessage"] = $"Championship {championshipViewModel.Name} updated successfully."; return(RedirectToAction("Index")); }
public IActionResult Create() { var championshipViewModel = new ChampionshipViewModel { FoundedOn = DateTime.Now, CountriesItems = countryService.GetAllAsKeyValuePairs() }; return(View(championshipViewModel)); }
public async Task SaveAndUpdateChampionshipWithNameOfAnotherdExistingChampionship() { var countriesList = new List <Country> { new Country { Id = 1, Name = "Italy", Code = "IT" } }; var championshipsList = new List <Championship>(); var id = 1; var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); mockChampionshipRepo.Setup(r => r.AddAsync(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Add(new Championship { Id = id++, Name = championship.Name, Country = championship.Country })); var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object); var firstChampionshipViewModel = new ChampionshipViewModel { Name = "Serie A", CountryId = 1 }; var secondChampionshipViewModel = new ChampionshipViewModel { Name = "La Liga", CountryId = 1 }; await championshipService.CreateAsync(firstChampionshipViewModel); await championshipService.CreateAsync(secondChampionshipViewModel); var secondUpdatedViewModel = new ChampionshipViewModel { Id = 2, Name = "Serie A", CountryId = 1 }; await Assert.ThrowsAsync <Exception>(() => championshipService.UpdateAsync(secondUpdatedViewModel)); }
public void Update(ChampionshipViewModel championshipViewModel) { string[] symbol = championshipViewModel.Picture.Split('/'); if (symbol[0] != "data:image") { championshipViewModel.Picture = symbol[symbol.Count() - 1]; } else { championshipViewModel.Picture = Divers.Base64ToImage(championshipViewModel.Picture, "CHAMPIONSHIP"); } _championshipRepository.Update(_mapper.Map <Championship>(championshipViewModel)); }
public void Add(ChampionshipViewModel championshipViewModel) { var config = _configuration.GetValue <string>("Config:AtletaBase64"); if (championshipViewModel.Picture == "") { championshipViewModel.Picture = Divers.Base64ToImage(config, "CHAMPIONSHIP"); } else { championshipViewModel.Picture = Divers.Base64ToImage(championshipViewModel.Picture, "CHAMPIONSHIP"); } _championshipRepository.Add(_mapper.Map <Championship>(championshipViewModel)); }
public async Task GetAllChampionshipsAsKeyValuePairs() { var countriesList = new List <Country> { new Country { Id = 1, Name = "Italy", Code = "IT" } }; var championshipsList = new List <Championship>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.All()).Returns(countriesList.AsQueryable()); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); mockChampionshipRepo.Setup(r => r.AddAsync(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Add(new Championship { Id = 1, Name = championship.Name, Country = championship.Country })); var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object); var firstChampionshipViewModel = new ChampionshipViewModel { Name = "Serie A", CountryId = 1, CountriesItems = new CountryService(mockCountryRepo.Object).GetAllAsKeyValuePairs() }; var secondChampionshipViewModel = new ChampionshipViewModel { Name = "Bundesliga", CountryId = 1 }; await championshipService.CreateAsync(firstChampionshipViewModel); await championshipService.CreateAsync(secondChampionshipViewModel); var keyValuePairs = championshipService.GetAllAsKeyValuePairs().ToList(); Assert.True(keyValuePairs.Count == 2); Assert.True(firstChampionshipViewModel.CountriesItems.Count() == 1); }
public IActionResult Edit(int id) { var championship = championshipService.Get(id); var championshipViewModel = new ChampionshipViewModel { Id = id, Name = championship.Name, FoundedOn = championship.FoundedOn, Description = championship.Description, CountryId = championship.Country.Id, CountryName = championship.Country.Name, CountriesItems = countryService.GetAllAsKeyValuePairs() }; return(View(championshipViewModel)); }
public async Task SaveAndUpdateChampionship() { var countriesList = new List <Country> { new Country { Id = 1, Name = "Italy", Code = "IT" } }; var championshipsList = new List <Championship>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); mockChampionshipRepo.Setup(r => r.AddAsync(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Add(new Championship { Id = 1, Name = championship.Name, Country = championship.Country })); var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object); var championshipViewModel = new ChampionshipViewModel { Name = "Serie A", CountryId = 1 }; await championshipService.CreateAsync(championshipViewModel); var updatedViewModel = new ChampionshipViewModel { Id = 1, Name = "Serie A", CountryId = 1 }; await championshipService.UpdateAsync(updatedViewModel); var savedChampionship = championshipService.Get(1); Assert.Equal(1, savedChampionship.Id); Assert.Equal("Serie A", savedChampionship.Name); }
public IActionResult Delete(int id) { var championship = championshipService.Get(id); var championshipViewModel = new ChampionshipViewModel { Id = id, Name = championship.Name, FoundedOn = championship.FoundedOn, Description = championship.Description, CountryId = championship.Country.Id, CountryName = championship.Country.Name, }; ViewData["EntityName"] = "Championship"; return(View("../Shared/_Delete", championshipViewModel)); }
public async Task <IActionResult> Delete(ChampionshipViewModel championshipViewModel) { try { await championshipService.DeleteAsync(championshipViewModel.Id); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.InnerException?.Message ?? ex.Message); ViewData["EntityName"] = "Championship"; return(View("../Shared/_Delete", championshipViewModel)); } TempData["SuccessMessage"] = "Championship deleted successfully."; return(RedirectToAction("Index")); }
public async Task CreateAsync(ChampionshipViewModel championshipViewModel) { var doesChampionshipExist = championshipRepository.All().Any(c => c.Name == championshipViewModel.Name); if (doesChampionshipExist) { throw new Exception($"Championship with a name {championshipViewModel.Name} already exists."); } var championship = new Championship { Name = championshipViewModel.Name, FoundedOn = championshipViewModel.FoundedOn, Description = championshipViewModel.Description, Country = countryRepository.Get(championshipViewModel.CountryId) }; await championshipRepository.AddAsync(championship); await championshipRepository.SaveChangesAsync(); }
public async Task SaveAndLoadChampionship() { var countriesList = new List <Country> { new Country { Id = 1, Name = "Italy", Code = "IT" } }; var championshipsList = new List <Championship>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); mockChampionshipRepo.Setup(r => r.AddAsync(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Add(championship)); mockChampionshipRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => championshipsList.FirstOrDefault(c => c.Id == id)); var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object); var championshipViewModel = new ChampionshipViewModel { Name = "Serie A", FoundedOn = DateTime.Now, CountryId = 1, CountryName = "Italy", Description = "One of the best championships in the world" }; await championshipService.CreateAsync(championshipViewModel); var savedChampionship = championshipService.Get(10, false); var lastSavedChampionship = championshipService.GetAll().LastOrDefault(); Assert.Null(savedChampionship); Assert.Equal("Serie A", lastSavedChampionship.Name); Assert.Equal("Italy", championshipViewModel.CountryName); Assert.Equal("One of the best championships in the world", championshipViewModel.Description); }
public async Task SaveAndLoadChampionshipsWithRelatedData() { var countriesList = new List <Country> { new Country { Id = 1, Name = "Italy", Code = "IT" } }; var championshipsList = new List <Championship>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); mockChampionshipRepo.Setup(r => r.AddAsync(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Add(new Championship { Id = 1, Name = championship.Name, Country = championship.Country })); var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object); var championshipViewModel = new ChampionshipViewModel { Name = "Serie A", FoundedOn = DateTime.Now, CountryId = 1 }; await championshipService.CreateAsync(championshipViewModel); var savedChampionships = championshipService.GetAll(); Assert.True(savedChampionships.Count() == 1); }
public async Task UpdateAsync(ChampionshipViewModel championshipViewModel) { var allChampionships = championshipRepository.All(); var championship = allChampionships.FirstOrDefault(c => c.Id == championshipViewModel.Id); if (championship is null) { throw new Exception($"Championship not found"); } var doesChampionshipExist = allChampionships.Any(c => c.Id != championshipViewModel.Id && c.Name == championshipViewModel.Name); if (doesChampionshipExist) { throw new Exception($"Championship with a name {championshipViewModel.Name} already exists."); } championship.Name = championshipViewModel.Name; championship.FoundedOn = championshipViewModel.FoundedOn; championship.Description = championshipViewModel.Description; championship.Country = countryRepository.Get(championshipViewModel.CountryId); await championshipRepository.SaveChangesAsync(); }
public async Task SaveTwoChampionshipsWithSameNames() { var countriesList = new List <Country> { new Country { Id = 1, Name = "Italy", Code = "IT" } }; var championshipsList = new List <Championship>(); var mockCountryRepo = new Mock <IRepository <Country> >(); mockCountryRepo.Setup(r => r.Get(It.IsAny <int>())).Returns <int>(id => countriesList.FirstOrDefault(c => c.Id == id)); var mockChampionshipRepo = new Mock <IRepository <Championship> >(); mockChampionshipRepo.Setup(r => r.All()).Returns(championshipsList.AsQueryable()); mockChampionshipRepo.Setup(r => r.AddAsync(It.IsAny <Championship>())).Callback <Championship>(championship => championshipsList.Add(championship)); var championshipService = new ChampionshipService(mockChampionshipRepo.Object, mockCountryRepo.Object); var firstChampionshipViewModel = new ChampionshipViewModel { Name = "Serie A", CountryId = 1 }; var secondChampionshipViewModel = new ChampionshipViewModel { Name = "Serie A", CountryId = 1 }; await championshipService.CreateAsync(firstChampionshipViewModel); await Assert.ThrowsAsync <Exception>(() => championshipService.CreateAsync(secondChampionshipViewModel)); }
public void Post([FromBody] ChampionshipViewModel championshipViewModel) { _championshipAppService.Add(championshipViewModel); }
public void Put([FromBody] ChampionshipViewModel championshipViewModel) { _championshipAppService.Update(championshipViewModel); }