public async Task UpdateRouteAsync(int id, RouteQueued routeQueued) { var routeFromDb = await _context .RoutesQueued .Include(r => r.CarrierQueued) .SingleOrDefaultAsync(x => x.Id == id); routeQueued.Id = routeFromDb.Id; if (routeFromDb.VotingStartedDatetime == null) { routeQueued.VotingStartedDatetime = DateTime.Now.Date; routeQueued.VotingEndedDateTime = routeQueued.VotingStartedDatetime.Value.AddDays(14); } _context.Entry(routeFromDb).CurrentValues.SetValues(routeQueued); _context.Entry(routeFromDb).State = EntityState.Modified; if (routeQueued.CarrierQueued != null) { _context.Entry(routeFromDb.CarrierQueued).CurrentValues.SetValues(routeQueued.CarrierQueued); _context.Entry(routeFromDb.CarrierQueued).State = EntityState.Modified; } await _context.SaveChangesAsync(); }
private void Move(RouteQueued routeQueued) { var busStops = routeQueued.BusStopsQueued.Select(q => new BusStop { Address = q.Address, Hour = q.Hour, Label = q.Label, Latitude = q.Latitude, Longitude = q.Longitude }).ToList(); var route = new Route { Name = routeQueued.Name, BusStops = busStops, DayOfTheWeek = routeQueued.DayOfTheWeek, }; if (routeQueued.CarrierQueued != null && routeQueued.CarrierId == null) { route.Carrier = new Carrier { Name = routeQueued.CarrierQueued.Name }; } else { route.CarrierId = (int)routeQueued.CarrierId; } _context.Routes.Add(route); _context.SaveChanges(); }
public async Task <bool> PostRouteQueuedAsync(RouteQueued routeQueued) { var json = JsonConvert.SerializeObject(routeQueued); var result = await _httpClient.PostAsync(Uri + "/queues/routes", AddMediaTypeHeaderValueToJson(json)); return(result.IsSuccessStatusCode); }
public async Task <bool> UpdateQueuedRoute(int id, RouteQueued updatedRouteQueued) { var json = JsonConvert.SerializeObject(updatedRouteQueued); var result = await _httpClient.PutAsync($"{Uri}queues/routes/{id}", AddMediaTypeHeaderValueToJson(json)); return(result.IsSuccessStatusCode); }
public async Task AddRouteToQueueAsync(RouteQueued routeQueued) { var orderedBusStops = routeQueued.BusStopsQueued.OrderBy(b => b.Hour).ToList(); routeQueued.BusStopsQueued = orderedBusStops; await _context.RoutesQueued.AddAsync(routeQueued); await _context.SaveChangesAsync(); }
private void DeleteAfterMove(RouteQueued routeQueuedToRemove) { if (routeQueuedToRemove.CarrierQueued != null) { _context.CarriersQueued.Remove(routeQueuedToRemove.CarrierQueued); } else { _context.RoutesQueued.Remove(routeQueuedToRemove); } _context.SaveChanges(); }
public async Task AddRouteToQueueAsync_WhenBusStopsHoursAreNotInOrder_AddingBusStopsAnywayInGoodOrder() { var timeSpanList = new List <TimeSpan> { new TimeSpan(12, 0, 0), new TimeSpan(12, 5, 0), new TimeSpan(12, 25, 0), new TimeSpan(12, 40, 0) }; var routeToAdd = new RouteQueued { Id = 1034, Name = "Name", CarrierQueuedId = 5, BusStopsQueued = new List <BusStopQueued> { new BusStopQueued { Id = 2001, Hour = timeSpanList[2] }, new BusStopQueued { Id = 2002, Hour = timeSpanList[0] }, new BusStopQueued { Id = 2003, Hour = timeSpanList[3] }, new BusStopQueued { Id = 2004, Hour = timeSpanList[1] }, } }; await _queueRepository.AddRouteToQueueAsync(routeToAdd); var result = await _context.RoutesQueued.ToListAsync(); var resultHours = result .Last() .BusStopsQueued .Select(b => b.Hour) .ToList(); Assert.AreEqual(timeSpanList, resultHours); }
public async Task <IActionResult> PutRoute([FromRoute] int id, [FromBody] RouteQueued routeQueued) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { await _service.UpdateRouteAsync(id, routeQueued); } catch (Exception) { return(BadRequest("Wrong body data")); } return(StatusCode(202)); }
public async Task <IActionResult> PostRouteToQueue([FromBody] RouteQueued routeQueued) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { await _service.AddRouteToQueueAsync(routeQueued); } catch (DbUpdateException) { return(BadRequest("Route queued object is incomplete or contains wrong data.")); } return(StatusCode(201)); }
public async Task SetUp() { var options = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase(databaseName: "TestDb") .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; _context = new DatabaseContext(options); _queueRepository = new QueueRepository(_context); var carrierQueued1 = new CarrierQueued { Id = 1, Name = "CarrierQueued" }; var carrierQueued2 = new CarrierQueued { Id = 2, Name = "CarrierQueued2" }; var carrierQueued3 = new CarrierQueued { Id = 3, Name = "CarrierQueued3" }; var carrierQueued4 = new CarrierQueued { Id = 4, Name = "CarrierQueued4" }; var carrierQueued5 = new CarrierQueued { Id = 5, Name = "CarrierQueued4" }; var route1 = new RouteQueued { Id = 1, Name = "routeQueuedName", CarrierQueued = carrierQueued1, CreatedDatetime = new DateTime(1998, 1, 1), VotingStartedDatetime = new DateTime(1998, 1, 1), VotingEndedDateTime = new DateTime(1998, 1, 15), DayOfTheWeek = "1,2,3", PositiveVotes = 10, NegativeVotes = 2, BusStopsQueued = new List <BusStopQueued> { new BusStopQueued //150km { Id = 1, Address = "Address1", Label = "Label1", Latitude = 53.553832, Longitude = 21.422401 }, new BusStopQueued //8km { Id = 2, Address = "Address2", Label = "Label2", Latitude = 52.295105, Longitude = 20.944934 } } }; var route2 = new RouteQueued { Id = 2, Name = "routeQueuedName2", CarrierQueued = carrierQueued2, CreatedDatetime = new DateTime(1998, 1, 1), VotingStartedDatetime = new DateTime(1998, 1, 2), VotingEndedDateTime = new DateTime(1998, 1, 16), DayOfTheWeek = "1,2,3", PositiveVotes = 6, NegativeVotes = 2, BusStopsQueued = new List <BusStopQueued> { new BusStopQueued //150km { Id = 3, Address = "Address1", Label = "Label1", Latitude = 53.553832, Longitude = 21.422401 }, new BusStopQueued //170km { Id = 4, Address = "Address2", Label = "Label2", Latitude = 53.733411, Longitude = 21.451130 }, new BusStopQueued //10.3km { Id = 5, Address = "Address3", Label = "Label3", Latitude = 52.215682, Longitude = 20.855198 } } }; var route3 = new RouteQueued { Id = 3, Name = "routeQueuedName3", CarrierQueued = carrierQueued3, CreatedDatetime = new DateTime(1998, 1, 1), VotingStartedDatetime = new DateTime(1998, 1, 3), VotingEndedDateTime = new DateTime(1998, 1, 16), DayOfTheWeek = "1,2,3", PositiveVotes = 22, NegativeVotes = 2, BusStopsQueued = new List <BusStopQueued> { new BusStopQueued //150km { Id = 6, Address = "Address6", Label = "Label1", Latitude = 53.553832, Longitude = 21.422401 }, new BusStopQueued //170km { Id = 7, Address = "Address7", Label = "Label2", Latitude = 53.733411, Longitude = 21.451130 }, new BusStopQueued //10.3km { Id = 8, Address = "Address8", Label = "Label3", Latitude = 52.215682, Longitude = 20.855198 } } }; var route4 = new RouteQueued { Id = 4, Name = "routeQueuedName4", CarrierQueued = carrierQueued4, CreatedDatetime = new DateTime(1998, 1, 5), VotingStartedDatetime = new DateTime(1998, 1, 6), VotingEndedDateTime = new DateTime(1998, 1, 20), DayOfTheWeek = "1,2,3", PositiveVotes = 22, NegativeVotes = 2, BusStopsQueued = new List <BusStopQueued> { new BusStopQueued //150km { Id = 9, Address = "Address6", Label = "Label1", Latitude = 53.553832, Longitude = 21.422401 }, new BusStopQueued //170km { Id = 10, Address = "Address7", Label = "Label2", Latitude = 53.733411, Longitude = 21.451130 }, new BusStopQueued //10.3km { Id = 11, Address = "Address8", Label = "Label3", Latitude = 52.215682, Longitude = 20.855198 } } }; var route5 = new RouteQueued { Id = 5, Name = "routeQueuedName5", CarrierQueued = carrierQueued5, CreatedDatetime = new DateTime(1998, 1, 5), VotingStartedDatetime = new DateTime(1998, 1, 2), VotingEndedDateTime = new DateTime(1998, 1, 15), DayOfTheWeek = "1,2,3", PositiveVotes = 15, NegativeVotes = 15, BusStopsQueued = new List <BusStopQueued> { new BusStopQueued //150km { Id = 12, Address = "Address6", Label = "Label1", Latitude = 53.553832, Longitude = 21.422401 }, new BusStopQueued //170km { Id = 13, Address = "Address7", Label = "Label2", Latitude = 53.733411, Longitude = 21.451130 }, new BusStopQueued //10.3km { Id = 14, Address = "Address8", Label = "Label3", Latitude = 52.215682, Longitude = 20.855198 } } }; var routes = new List <RouteQueued>() { route1, route2, route3, route4, route5 }; await _context.RoutesQueued.AddRangeAsync(routes); await _context.SaveChangesAsync(); }
public async Task UpdateRouteAsync(int id, RouteQueued routeQueued) => await _repository.UpdateRouteAsync(id, routeQueued);
public async Task AddRouteToQueueAsync(RouteQueued routeQueued) => await _repository.AddRouteToQueueAsync(routeQueued);