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));
        }
示例#3
0
 public ChampionshipView()
 {
     InitializeComponent();
     ViewModel = new ChampionshipViewModel();
     ViewModel.OnRequestClose += (s, e) => Close();
     DataContext = ViewModel;
 }
示例#4
0
        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"));
        }
示例#5
0
        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);
        }
示例#10
0
        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);
        }
示例#12
0
        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));
        }
示例#13
0
        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));
        }
示例#19
0
 public void Post([FromBody] ChampionshipViewModel championshipViewModel)
 {
     _championshipAppService.Add(championshipViewModel);
 }
示例#20
0
 public void Put([FromBody] ChampionshipViewModel championshipViewModel)
 {
     _championshipAppService.Update(championshipViewModel);
 }