public void TestUpdateSportObjectMethodReturnFalse() { //Arrange var sportobjects = new SportObject[] { new SportObject { Name = "sportobject 1" }, new SportObject { Name = "sportobject 2" }, new SportObject { Name = "sportobject 3" }, new SportObject { Name = "sportobject 4" } }; var mockRepo = new Mock <ISportRepository>(); mockRepo.Setup(s => s.GetAllSportObjects()).Returns(sportobjects); var manager = new SportManager(mockRepo.Object); var updatedSportObject = new SportObject { SportObjectId = 6, Name = "VoetBall" }; //Act var result = manager.UpdateSportObject(updatedSportObject); //Assert Assert.False(result); }
public void TestUpdateInvalidSportObjectRedirectsToIndexAction() { var model = new SportObjectModel { Sport = new Sport { SportId = 1, Name = "testsport" }, SportObject = new SportObject { SportObjectId = 3, Name = "TestOBJECT" } }; var mockManager = new Mock <ISportManager>(); var mockTempData = new Mock <ITempDataDictionary>(); var controller = new SportController(mockManager.Object) { TempData = mockTempData.Object }; controller.ModelState.AddModelError("", ""); mockManager.Setup(x => x.UpdateSportObject(It.IsAny <SportObject>())).Throws <Exception>(); var objectToTest = new SportObject { SportObjectId = 3, Name = "Test" }; //Act var result = (ViewResult)controller.UpdateObject(objectToTest); //Assert Assert.True(result.ViewName == "UpdateObject"); }
public void TestDeleteSportObjectMethodReturnTrueIfExist() { //Arrange var sportobjects = new SportObject[] { new SportObject { Name = "sportobject 1" }, new SportObject { Name = "sportobject 2" }, new SportObject { Name = "sportobject 3" }, new SportObject { Name = "sportobject 4" } }; var mockRepo = new Mock <ISportRepository>(); mockRepo.Setup(s => s.GetAllSportObjects()).Returns(sportobjects); var manager = new SportManager(mockRepo.Object); //Act var result = manager.DeleteSportObject(sportobjects[1]); var resultFalse = manager.DeleteSportObject(new SportObject() { Name = "sportobject 5" }); //Assert Assert.True(result); Assert.False(resultFalse); }
public void AddSportObjectMethodReturnsTrueIfNewEntry() { //Arrange var sportobjects = new SportObject { Name = "KongballObject" }; var dummysport = new Sport { Name = "KongBall", }; var mockRepo = new Mock <ISportRepository>(); mockRepo.Setup(s => s.AddSportObject(dummysport, sportobjects)); var manager = new SportManager(mockRepo.Object); //Act var result = manager.AddSportObject(dummysport, sportobjects); //Assert Assert.True(result); }
public void TestUpdateSportObjectRedirectsToIndexAction() { //Arrange var model = new SportObjectModel { Sport = new Sport { SportId = 1, Name = "testsport" }, SportObject = new SportObject { SportObjectId = 3, Name = "TestOBJECT" } }; var mockManager = new Mock <ISportManager>(); var mockTempData = new Mock <ITempDataDictionary>(); var controller = new SportController(mockManager.Object) { TempData = mockTempData.Object }; mockManager.Setup(x => x.UpdateSportObject(It.IsAny <SportObject>())).Throws <Exception>(); var objectToTest = new SportObject { SportObjectId = 3, Name = "Test" }; //Act var result = controller.UpdateObject(objectToTest); //Assert Assert.IsType(typeof(RedirectToActionResult), result); }
public async Task <IActionResult> Edit(int id, [Bind("Id,ObjectType,City,Street,BuildingNumber")] SportObject sportObject) { if (id != sportObject.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(sportObject); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SportObjectExists(sportObject.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(sportObject)); }
public ActionResult UpdateObject(SportObject sportObject) { if (!ModelState.IsValid) { return(View("UpdateObject")); } try { SportObject original = _iSportManager.ReadSportObject(sportObject.SportObjectId); if (original != null) { original.Name = sportObject.Name; original.SportObjectHalls = sportObject.SportObjectHalls; original.SportObjectSports = sportObject.SportObjectSports; _iSportManager.UpdateSportObject(original); TempData["notification"] = sportObject.Name.UpdateMessage("Materiaal"); } } catch (Exception) { TempData["notification"] = sportObject.Name.ErrorUpdateMessage("Materiaal"); } return(RedirectToAction("Index")); }
public bool DeleteSportObject(SportObject sportObject) { if (SportObjects().Any(o => o.Name == sportObject.Name)) { _sportRepository.DeleteSportObject(sportObject); return(true); } return(false); }
public bool UpdateSportObject(SportObject sportObject) { if (SportObjects().Any(o => o.SportObjectId == sportObject.SportObjectId)) { _sportRepository.UpdateSportObject(sportObject); return(true); } return(false); }
public SportObject Update(SportObject sportObjectChanges) { var sportObject = context.SportObjects.Attach(sportObjectChanges); sportObject.State = Microsoft.EntityFrameworkCore.EntityState.Modified; context.SaveChanges(); return(sportObjectChanges); }
public void AddSportObject(Sport sport, SportObject sportObject) { _sportContext.SportObjects.Add(sportObject); SportObjectSport sportObjectSport = new SportObjectSport { Sport = sport, SportId = sport.SportId, SportObject = sportObject, SportObjectId = sportObject.SportObjectId }; _sportContext.SportObjectSports.Add(sportObjectSport); _sportContext.SaveChanges(); }
public async Task <IActionResult> Create([Bind("Id,ObjectType,City,Street,BuildingNumber")] SportObject sportObject) { if (ModelState.IsValid) { _context.Add(sportObject); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(sportObject)); }
public bool AddSportObject(Sport sport, SportObject sportObject) { if (SportObjects().All(o => o.Name != sportObject.Name)) { _sportRepository.AddSportObject(sport, sportObject); return(true); } else { return(false); } }
public SportObject Delete(int id) { SportObject sportObject = context.SportObjects.Find(id); if (sportObject != null) { context.SportObjects.Remove(sportObject); context.SaveChanges(); } return(sportObject); }
public async Task <bool> CheckIfClientIsOwnerAsync(SportObject sportObject) { var userId = _currentUserService.UserId; var user = await _userManager.FindByIdAsync(userId); var isClient = await _userManager.IsInRoleAsync(user, RolesEnum.Client); if (!isClient && user.Email != sportObject.Email) { return(false); } return(true); }
public async Task <IActionResult> EditSportObject(int id) { SportObject model = sportObjectRepository.Get(id); SportObjectEditViewModel sportObjectEditViewModel = new SportObjectEditViewModel { Id = model.Id, Name = model.Name, Email = model.Email, Address = model.Address, CityId = model.CityId, WorkEnds = model.WorkEnds, WorkStarts = model.WorkStarts, Description = model.Description, SportId = model.SportId, Phone = model.Phone, PriceForHour = model.PriceForHour, IsPayed = model.IsPayed, ExistingImage1Path = model.Image1Path, ExistingImage2Path = model.Image2Path, Cities = sportObjectRepository.GetAllCities(), Sports = sportObjectRepository.GetAllSports() }; if (User.IsInRole("Client")) { var user = await userManager.FindByIdAsync(User.FindFirstValue(ClaimTypes.NameIdentifier)); if (user == null) { ViewBag.ErrorMessage = $"User with ID = {user.Id} cannot be found"; return(View("NotFound")); } if (user.Email != model.Email) { return(RedirectToAction("AccessDenied", "Administration")); } } return(View(sportObjectEditViewModel)); }
public async Task <int> Handle(CreateSportObjectCommand request, CancellationToken cancellationToken) { var sportObject = new SportObject { Email = request.Email, Name = request.Name, Address = request.Address, Phone = request.Phone, Description = request.Description, IsPayed = request.IsPayed, IsPremium = request.IsPremium, SportId = request.SportId, CityId = request.CityId }; _context.SportObjects.Add(sportObject); await _context.SaveChangesAsync(cancellationToken); return(sportObject.Id); }
public void FailedAddSportObject() { var dummysportobject = new SportObject { Name = "sportobject 1", }; var dummysport = new Sport { Name = "KongBall", }; var sportobjects = new SportObject[] { new SportObject { Name = "sportobject 1" }, new SportObject { Name = "sportobject 2" }, new SportObject { Name = "sportobject 3" }, new SportObject { Name = "sportobject 4" } }; var mockRepo = new Mock <ISportRepository>(); mockRepo.Setup(s => s.GetAllSportObjects()).Returns(sportobjects); mockRepo.Setup(x => x.AddSportObject(dummysport, dummysportobject)); var manager = new SportManager(mockRepo.Object); //Act var result = manager.AddSportObject(dummysport, dummysportobject); //Assert Assert.False(result); }
private void ChangeExistingPrice(SportObject sportObject, Price price) { var timeDifference = 0; var midnightHours = 24; var hours = 0; if (price.TimeTo.Hours == 0) { timeDifference = midnightHours - price.TimeFrom.Hours; hours = 23; } else { timeDifference = price.TimeTo.Hours - price.TimeFrom.Hours; hours = price.TimeTo.Hours - 1; } if (timeDifference > 1) { price.TimeTo = new TimeSpan(hours, 0, 0); } else if (timeDifference == 1) { var priceBefore = sportObject.Prices.FirstOrDefault(p => p.TimeTo == price.TimeFrom); price.TimeFrom = new TimeSpan(price.TimeFrom.Hours - 1, 0, 0); price.TimeTo = new TimeSpan(hours, 0, 0); if (priceBefore == null) { return; } ChangeExistingPrice(sportObject, priceBefore); } return; }
public void GetAllSportObjectsMethodReturnListWithSportsObjects() { //Arrange var sportobjects = new SportObject[] { new SportObject { Name = "sportobject 1" }, new SportObject { Name = "sportobject 2" }, new SportObject { Name = "sportobject 3" }, new SportObject { Name = "sportobject 4" } }; var mockRepo = new Mock <ISportRepository>(); mockRepo.Setup(s => s.GetAllSportObjects()).Returns(sportobjects); var manager = new SportManager(mockRepo.Object); }
public IActionResult CreateSportObject(SportObjectCreateViewModel model) { if (ModelState.IsValid) { string uniqueFileName1 = ProcessUploadFile(model.Image1); string uniqueFileName2 = ProcessUploadFile(model.Image2); SportObject newSportObject = new SportObject { Name = model.Name, Email = model.Email, Address = model.Address, CityId = model.CityId, WorkEnds = model.WorkEnds, WorkStarts = model.WorkStarts, Description = model.Description, SportId = model.SportId, Phone = model.Phone, PriceForHour = model.PriceForHour, IsPayed = model.IsPayed, Image1Path = uniqueFileName1, Image2Path = uniqueFileName2 }; sportObjectRepository.Add(newSportObject); return(RedirectToAction("Details", "SportObject", new { id = newSportObject.Id })); } else { var sportObject = new SportObjectCreateViewModel { Cities = sportObjectRepository.GetAllCities(), Sports = sportObjectRepository.GetAllSports() }; return(View("CreateSportObject", sportObject)); } }
public void UpdateSportObject(SportObject sportObject) { _sportContext.SportObjects.Update(sportObject); _sportContext.SaveChanges(); }
public List <FreeTermDto> GetFreeTerms(SportObject sportObject) { var workingHours = sportObject.WorkingHours.ToList(); if (!workingHours.Any()) { throw new Exception("Sport object doesn't have working hours"); } var maxTimeWorkingHour = sportObject.WorkingHours.Min(wh => wh.CloseTime); if (maxTimeWorkingHour.Hours != 0) { maxTimeWorkingHour = sportObject.WorkingHours.Max(wh => wh.CloseTime); } var prices = sportObject.Prices.ToList(); if (!prices.Any()) { throw new Exception("Sport object doesn't have prices"); } var futureDays = 7; var reservations = sportObject.Reservations .Where(r => r.Date >= DateTime.Today && r.Date <= DateTime.Today.AddDays(futureDays)) .ToList(); var freeTerms = new List <FreeTermDto>(); for (int i = 0; i <= futureDays; i++) { var date = DateTime.Today.AddDays(i); var day = (int)date.DayOfWeek == 0 ? 7 : (int)date.DayOfWeek; var wh = workingHours.Find(w => w.Day == day); var openTimeHours = wh.OpenTime.Hours; var closeTimeHours = wh.CloseTime.Hours; if (closeTimeHours == 0) { closeTimeHours = 24; } for (int j = openTimeHours; j < closeTimeHours; j++) { var startTime = new TimeSpan(j, 0, 0); var endTime = startTime.Add(TimeSpan.FromHours(1)); if (startTime.Hours == 23) { endTime = new TimeSpan(0, 0, 0); } var price = sportObject.Prices.SingleOrDefault(p => startTime >= p.TimeFrom && startTime < p.TimeTo && p.TimeTo != maxTimeWorkingHour); if (price == null) { price = sportObject.Prices.SingleOrDefault(p => p.TimeTo == maxTimeWorkingHour); } var freeTerm = new FreeTermDto { Date = date, StartTime = startTime, Price = price.PricePerHour }; freeTerms.Add(freeTerm); } } List <FreeTermDto> output = new List <FreeTermDto>(); foreach (var ft in freeTerms) { output.Add(ft); foreach (var res in reservations) { if (ft.Date == res.Date && ft.StartTime == res.StartTime) { output.Remove(ft); } } } return(output); }
public IActionResult EditSportObject(SportObjectEditViewModel model) { if (ModelState.IsValid) { SportObject sportObject = sportObjectRepository.Get(model.Id); sportObject.Name = model.Name; sportObject.Email = model.Email; sportObject.Address = model.Address; sportObject.CityId = model.CityId; sportObject.WorkEnds = model.WorkEnds; sportObject.WorkStarts = model.WorkStarts; sportObject.Description = model.Description; sportObject.SportId = model.SportId; sportObject.Phone = model.Phone; sportObject.PriceForHour = model.PriceForHour; sportObject.IsPayed = model.IsPayed; if (model.Image1 != null) { if (model.ExistingImage1Path != null) { string filePath = Path.Combine(webHostEnvironment.WebRootPath, "images", model.ExistingImage1Path); System.IO.File.Delete(filePath); } sportObject.Image1Path = ProcessUploadFile(model.Image1); } if (model.Image2 != null) { if (model.ExistingImage2Path != null) { string filePath = Path.Combine(webHostEnvironment.WebRootPath, "images", model.ExistingImage2Path); System.IO.File.Delete(filePath); } sportObject.Image2Path = ProcessUploadFile(model.Image2); } sportObjectRepository.Update(sportObject); return(RedirectToAction("Details", "SportObject", new { id = sportObject.Id })); } //return RedirectToAction("EditSportObject"); SportObject modelOld = sportObjectRepository.Get(model.Id); SportObjectEditViewModel sportObjectEditViewModel = new SportObjectEditViewModel { Id = modelOld.Id, Name = modelOld.Name, Email = modelOld.Email, Address = modelOld.Address, CityId = modelOld.CityId, WorkEnds = modelOld.WorkEnds, WorkStarts = modelOld.WorkStarts, Description = modelOld.Description, SportId = modelOld.SportId, Phone = modelOld.Phone, PriceForHour = modelOld.PriceForHour, IsPayed = modelOld.IsPayed, ExistingImage1Path = modelOld.Image1Path, ExistingImage2Path = modelOld.Image2Path, Cities = sportObjectRepository.GetAllCities(), Sports = sportObjectRepository.GetAllSports() }; return(View(sportObjectEditViewModel)); }
public SportObject Add(SportObject sportObject) { context.SportObjects.Add(sportObject); context.SaveChanges(); return(sportObject); }
public static void EnsurePopulated(IApplicationBuilder app) { { ApplicationDbContext context = app.ApplicationServices .GetRequiredService <ApplicationDbContext>(); if (context.Sports.Any()) { return; } var sports = new Sport[] { new Sport { Name = "Voetbal" }, new Sport { Name = "Basketbal" }, new Sport { Name = "Trefbal" }, new Sport { Name = "Hockey" }, new Sport { Name = "Fitness" }, new Sport { Name = "Volleyball" }, new Sport { Name = "Badminton" } }; foreach (Sport s in sports) { context.Sports.Add(s); } context.SaveChanges(); var buildings = new Building[] { new Building { Name = "Fitness Group" }, new Building { Name = "Sport For Free" }, new Building { Name = "Sport Fit" } }; foreach (Building b in buildings) { context.Buildings.Add(b); } context.SaveChanges(); var addresses = new Address[] { new Address { City = "Breda", HouseNumber = 51, ZipCode = "4815AA", StreetName = "Sportstraat", Country = "Nederland", State = "Noord-Brabant", BuildingId = buildings.Single(b => b.Name == "Fitness Group").BuildingId }, new Address { City = "Breda", HouseNumber = 101, ZipCode = "4819BB", StreetName = "Van Voorstelstraat", Country = "Nederland", State = "Noord-Brabant", BuildingId = buildings.Single(b => b.Name == "Sport For Free").BuildingId }, new Address { City = "Breda", HouseNumber = 33, ZipCode = "4814CC", StreetName = "Dijkweg", Country = "Nederland", State = "Noord-Brabant", BuildingId = buildings.Single(b => b.Name == "Sport Fit").BuildingId } }; foreach (Address a in addresses) { context.Addresses.Add(a); } context.SaveChanges(); var halls = new Hall[] { new Hall { Name = "Hall 1", Price = 10, Size = "Groot", BuildingId = buildings.Single(b => b.Name == "Sport Fit").BuildingId, Available = true }, new Hall { Name = "Hall 2", Price = 20, Size = "Klein", BuildingId = buildings.Single(b => b.Name == "Fitness Group").BuildingId, Available = false }, new Hall { Name = "Hall 3", Price = 50, Size = "Klein", BuildingId = buildings.Single(b => b.Name == "Sport Fit").BuildingId, Available = true }, new Hall { Name = "Hall 4", Price = 40, Size = "Groot", BuildingId = buildings.Single(b => b.Name == "Sport For Free").BuildingId, Available = false }, new Hall { Name = "Hall 5", Price = 100, Size = "Middel", BuildingId = buildings.Single(b => b.Name == "Sport Fit").BuildingId, Available = true }, new Hall { Name = "Hall 6", Price = 40, Size = "Middel", BuildingId = buildings.Single(b => b.Name == "Fitness Group").BuildingId, Available = true } }; foreach (var h in halls) { context.Halls.Add(h); } context.SaveChanges(); var sportHalls = new SportHall[] { new SportHall { SportId = sports.Single(s => s.Name == "Voetbal").SportId, HallId = halls.Single(h => h.Name == "Hall 1").HallId }, new SportHall { SportId = sports.Single(s => s.Name == "Basketbal").SportId, HallId = halls.Single(h => h.Name == "Hall 2").HallId }, new SportHall { SportId = sports.Single(s => s.Name == "Volleyball").SportId, HallId = halls.Single(h => h.Name == "Hall 4").HallId }, new SportHall { SportId = sports.Single(s => s.Name == "Hockey").SportId, HallId = halls.Single(h => h.Name == "Hall 5").HallId }, new SportHall { SportId = sports.Single(s => s.Name == "Volleyball").SportId, HallId = halls.Single(h => h.Name == "Hall 6").HallId } }; foreach (var h in sportHalls) { context.SportHalls.Add(h); } context.SaveChanges(); var openingHours = new OpeningHours[] { new OpeningHours { Day = "Maandag", ClosingTime = "18", OpeningTime = "10" }, new OpeningHours { Day = "Dinsdag", ClosingTime = "18", OpeningTime = "8" }, new OpeningHours { Day = "Woensdag", ClosingTime = "20", OpeningTime = "8" }, new OpeningHours { Day = "Donderdag", ClosingTime = "22", OpeningTime = "10" }, new OpeningHours { Day = "Vrijdag", ClosingTime = "22", OpeningTime = "10" }, new OpeningHours { Day = "Zaterdag", ClosingTime = "20", OpeningTime = "11" }, new OpeningHours { Day = "Zondag", ClosingTime = "18", OpeningTime = "12" }, new OpeningHours { Day = "Maandag2", ClosingTime = "16", OpeningTime = "8" }, new OpeningHours { Day = "Maandag3", ClosingTime = "16", OpeningTime = "9" } }; foreach (var openingHour in openingHours) { context.OpeningHours.Add(openingHour); } context.SaveChanges(); var hallOpeningHours = new HallOpeningHours[] { new HallOpeningHours { HallId = halls.Single(h => h.Name == "Hall 1").HallId, OpeningHoursId = openingHours.Single(o => o.Day == "Maandag").OpeningHoursId }, new HallOpeningHours { HallId = halls.Single(h => h.Name == "Hall 1").HallId, OpeningHoursId = openingHours.Single(o => o.Day == "Dinsdag").OpeningHoursId }, new HallOpeningHours { HallId = halls.Single(h => h.Name == "Hall 1").HallId, OpeningHoursId = openingHours.Single(o => o.Day == "Woensdag").OpeningHoursId }, new HallOpeningHours { HallId = halls.Single(h => h.Name == "Hall 1").HallId, OpeningHoursId = openingHours.Single(o => o.Day == "Donderdag").OpeningHoursId }, new HallOpeningHours { HallId = halls.Single(h => h.Name == "Hall 1").HallId, OpeningHoursId = openingHours.Single(o => o.Day == "Vrijdag").OpeningHoursId }, new HallOpeningHours { HallId = halls.Single(h => h.Name == "Hall 1").HallId, OpeningHoursId = openingHours.Single(o => o.Day == "Zaterdag").OpeningHoursId }, new HallOpeningHours { HallId = halls.Single(h => h.Name == "Hall 1").HallId, OpeningHoursId = openingHours.Single(o => o.Day == "Zondag").OpeningHoursId } //TODO add some more openinghours foreach hall }; foreach (HallOpeningHours h in hallOpeningHours) { context.HallOpeningHours.Add(h); } context.SaveChanges(); var sportObjects = new SportObject[] { new SportObject { Name = "Voetbal" }, new SportObject { Name = "Volleybal" }, new SportObject { Name = "Hockeystick" }, new SportObject { Name = "Basketbal" }, new SportObject { Name = "Goal" }, new SportObject { Name = "Springtouw" }, new SportObject { Name = "Zachte bal" }, new SportObject { Name = "Badminton racket" }, new SportObject { Name = "Badminton net" }, new SportObject { Name = "Bench press" }, new SportObject { Name = "Gewichten" }, new SportObject { Name = "Mat" }, new SportObject { Name = "Volleybal net" }, new SportObject { Name = "Basketbal net" } //TODO new sports, new items }; foreach (SportObject so in sportObjects) { context.SportObjects.Add(so); } context.SaveChanges(); var sportObjectSport = new SportObjectSport[] { new SportObjectSport { SportId = sports.Single(s => s.Name == "Voetbal").SportId, SportObjectId = sportObjects.Single(so => so.Name == "Voetbal").SportObjectId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Mat").SportObjectId, SportId = sports.Single(s => s.Name == "Fitness").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Gewichten").SportObjectId, SportId = sports.Single(s => s.Name == "Fitness").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Bench press").SportObjectId, SportId = sports.Single(s => s.Name == "Fitness").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Badminton net").SportObjectId, SportId = sports.Single(s => s.Name == "Badminton").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Badminton racket").SportObjectId, SportId = sports.Single(s => s.Name == "Badminton").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Zachte bal").SportObjectId, SportId = sports.Single(s => s.Name == "Trefbal").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Springtouw").SportObjectId, SportId = sports.Single(s => s.Name == "Fitness").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Goal").SportObjectId, SportId = sports.Single(s => s.Name == "Voetbal").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Basketbal").SportObjectId, SportId = sports.Single(s => s.Name == "Basketbal").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Hockeystick").SportObjectId, SportId = sports.Single(s => s.Name == "Hockey").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Goal").SportObjectId, SportId = sports.Single(s => s.Name == "Hockey").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Volleybal").SportObjectId, SportId = sports.Single(s => s.Name == "Volleyball").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Basketbal net").SportObjectId, SportId = sports.Single(s => s.Name == "Basketbal").SportId }, new SportObjectSport { SportObjectId = sportObjects.Single(so => so.Name == "Volleybal net").SportObjectId, SportId = sports.Single(s => s.Name == "Volleyball").SportId } }; foreach (SportObjectSport sop in sportObjectSport) { context.SportObjectSports.Add(sop); } context.SaveChanges(); var sportObjectHall = new SportObjectHall[] { new SportObjectHall { HallId = halls.Single(s => s.Name == "Hall 1").HallId, SportObjectId = sportObjects.Single(so => so.Name == "Voetbal").SportObjectId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Mat").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 3").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Gewichten").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 3").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Bench press").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 3").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Badminton net").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 6").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Badminton racket").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 6").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Zachte bal").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 1").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Springtouw").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 3").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Goal").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 1").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Basketbal").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 2").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Hockeystick").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 5").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Goal").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 5").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Volleybal").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 4").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Basketbal net").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 2").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Volleybal net").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 4").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Volleybal net").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 6").HallId }, new SportObjectHall { SportObjectId = sportObjects.Single(so => so.Name == "Volleybal").SportObjectId, HallId = halls.Single(s => s.Name == "Hall 6").HallId } }; foreach (SportObjectHall soh in sportObjectHall) { context.SportObjectHalls.Add(soh); } context.SaveChanges(); } }
public List <TermByDateDto> GetAllTerms(SportObject sportObject) { var workingHours = sportObject.WorkingHours.ToList(); if (!workingHours.Any()) { throw new Exception("Sport object doesn't have working hours"); } var maxTimeWorkingHour = sportObject.WorkingHours.Min(wh => wh.CloseTime); if (maxTimeWorkingHour.Hours != 0) { maxTimeWorkingHour = sportObject.WorkingHours.Max(wh => wh.CloseTime); } var prices = sportObject.Prices.ToList(); if (!prices.Any()) { throw new Exception("Sport object doesn't have prices"); } var futureDays = 7; var reservations = sportObject.Reservations .Where(r => r.Date >= DateTime.Today && r.Date <= DateTime.Today.AddDays(futureDays)) .ToList(); var termsByDate = new List <TermByDateDto>(); for (int i = 0; i <= futureDays; i++) { var date = DateTime.Today.AddDays(i); var day = (int)date.DayOfWeek == 0 ? 7 : (int)date.DayOfWeek; var wh = workingHours.Find(w => w.Day == day); var openTimeHours = wh.OpenTime.Hours; var closeTimeHours = wh.CloseTime.Hours; if (closeTimeHours == 0) { closeTimeHours = 24; } var termByDate = new TermByDateDto(); termByDate.Date = date; for (int j = openTimeHours; j < closeTimeHours; j++) { var startTime = new TimeSpan(j, 0, 0); var endTime = startTime.Add(TimeSpan.FromHours(1)); if (startTime.Hours == 23) { endTime = new TimeSpan(0, 0, 0); } var price = sportObject.Prices.SingleOrDefault(p => startTime >= p.TimeFrom && startTime < p.TimeTo && p.TimeTo != maxTimeWorkingHour); if (price == null) { price = sportObject.Prices.SingleOrDefault(p => p.TimeTo == maxTimeWorkingHour); } var term = new TermDto { StartTime = startTime, Price = price.PricePerHour, Status = "free", IsExpired = false }; termByDate.Terms.Add(term); } termsByDate.Add(termByDate); } foreach (var res in reservations) { foreach (var termByDate in termsByDate) { foreach (var term in termByDate.Terms) { if (termByDate.Date == res.Date && term.StartTime == res.StartTime) { term.Status = res.Status.Status; } if (termByDate.Date == DateTime.Today && term.StartTime < DateTime.Now.TimeOfDay) { term.Status = Status.Accepted; } } } } return(termsByDate); }
public void DeleteSportObject(SportObject sportObject) { _sportContext.Remove(sportObject); _sportContext.SaveChanges(); }