public EditDriver(MongoTools database, string collectionName, ObjectId id) { this.database = database; this.collectionName = collectionName; this.id = id; InitializeComponent(); }
public static IMongoCollection <T> CollectionAs <T>() where T : ServerLog { return(MongoTools.GetCollection <T>()); }
private string getHtmlData(MongoTools database, string collectionName) { string htmlData = ""; if (collectionName == "drivers") { List <Driver> drivers = database.LoadAllDocuments <Driver>("drivers"); int count = drivers.Count(); DateTime dt = DateTime.Now; string dayOfWeek = dt.ToString("ddd"); int withWorkingBusesCount = drivers.Where(driver => database.LoadDocumentById <Bus>("buses", driver.BusId).IsWorking).Count(); List <Driver> todayWorkingList = drivers.Where(driver => driver.Schedule.Contains(dayOfWeek)).ToList(); int todayWorkingCount = todayWorkingList.Count(); string todayWorkingHtml = ""; foreach (Driver driver in todayWorkingList) { Bus bus = database.LoadDocumentById <Bus>("buses", driver.BusId); todayWorkingHtml += $"<div class=\"drivers__drivers\">{driver.LastName} {driver.Name}: <span>{bus.Number}</span></div>"; } htmlData = $"<div class=\"data__block\"><span>Количество водителей: </span> {count}</div>" + $"<div class=\"data__block\"><span>Количество водителей с работающими автобусами: </span> {withWorkingBusesCount}</div>" + $"<div class=\"data__block\"><span>Сегодня работает водителей: </span> {todayWorkingCount}</div>" + $"<div class=\"data__block\"><span>Сегодня работают: </span> {todayWorkingHtml}</div>"; } else if (collectionName == "buses") { List <Bus> buses = database.LoadAllDocuments <Bus>("buses"); int count = buses.Count(); int workingCount = buses.Where(bus => bus.IsWorking).Count(); int maxEndTime = 0; string maxEndTimeStr = ""; string driversList = ""; foreach (var bus in buses) { List <Driver> drivers = database.LoadAllDocuments <Driver>("drivers"); Driver driver = drivers.Find(d => d.BusId == bus.Id); if (driver != null) { ObjectId routeId = driver.RouteId; Route route = database.LoadDocumentById <Route>("routes", routeId); driversList += $"<div class='bus__drivers'><span>{bus.Number}</span>: {driver.LastName} {driver.Name}</div>"; string endTimeStr = route.EndTime; int endTime = Convert.ToInt32(endTimeStr[0]) + Convert.ToInt32(endTimeStr[1]); if (endTime > maxEndTime) { maxEndTime = endTime; maxEndTimeStr = endTimeStr; } } } htmlData = $"<div class=\"data__block\"><span>Количество автобусов:</span> {count}</div>" + $"<div class=\"data__block\"><span>Количество сломанных автобусов:</span> {count - workingCount}</div>" + $"<div class=\"data__block\"><span>Последний автобус приедет в:</span> {maxEndTimeStr}</div>" + $"<div class=\"data__block\"><span>Список водителей:</span> {driversList}</div>"; } else if (collectionName == "routes") { List <Route> routes = database.LoadAllDocuments <Route>("routes"); List <Driver> drivers = database.LoadAllDocuments <Driver>("drivers"); List <Bus> buses = database.LoadAllDocuments <Bus>("buses"); int count = routes.Count(); string busesByRoutesCountHtml = ""; foreach (Route route in routes) { List <Driver> driversByRoute = drivers.Where(driver => driver.RouteId == route.Id).ToList(); int driversByRouteCount = driversByRoute.Count; if (driversByRouteCount > 0) { busesByRoutesCountHtml += $"<div class=\"bold tab\">Автобусы на маршруте {route.Number} ({driversByRouteCount} автобусов): </div>"; foreach (Driver driver in driversByRoute) { Bus bus = database.LoadDocumentById <Bus>("buses", driver.BusId); busesByRoutesCountHtml += $"<div class=\"routes__drivers\">{driver.LastName}: <span>{bus.Number}</span></div>"; } } } htmlData = $"<div class=\"data__block\"><span>Количество маршрутов:</span> {count}</div>" + $"<div class=\"data__block\"><span>Маршруты:</span> {busesByRoutesCountHtml}</div>"; } return(htmlData); }
public static MongoCollection <T> CollectionAs <T>() where T : User { return(MongoTools.GetCollection <T>()); }