/// <exception cref="Exception"></exception> private void FindRoutePrivate() { var orig = origProvider.Icao; var dest = destProvider.Icao; EnsureAirportExists(orig); EnsureAirportExists(dest); var sid = origProvider.GetSelectedProcedures().ToList(); var star = destProvider.GetSelectedProcedures().ToList(); var finder = new RouteFinderFacade( airwayNetwork.WptList, airwayNetwork.AirportList, AppOptions.NavDataLocation, checkedCodesLocator.Instance, windCalcGetter()); Route = new RouteGroup( finder.FindRoute( orig, origProvider.Rwy, sid, dest, destProvider.Rwy, star), airwayNetwork.TracksInUse); view.ShowRouteTxt(Route, AppOptions); }
public static Route BestRoute(RouteGroup selectedRouteGroup) { var recentEntry = CommonComponent.Current.UB.History.GetRecentRoute(selectedRouteGroup); if (recentEntry != null) { return(recentEntry.Route); } else { var route = CommonComponent.Current.UB.History.TimetableEntries .Where(h => h.Route.RouteGroup == selectedRouteGroup) .GroupBy(x => x.Route) .Select(x => new { Route = x.Key, Rating1 = x.Min(y => HistoryHelpers.DayPartDistance(y)), Rating2 = x.Sum(y => y.CurrentCount) }) .OrderByDescending(x => x.Rating2).OrderBy(x => x.Rating1) .FirstOrDefault(); if (route != null && route.Rating2 > RouteHistoryCountLimit) { return(route.Route); } else { return(selectedRouteGroup.Routes.First()); } } }
public void AnalyzeRoute() { try { var orig = origProvider.Icao; var dest = destProvider.Icao; EnsureAirportExists(orig); EnsureAirportExists(dest); var input = view.Route.ToUpper(); var result = RouteAnalyzerFacade.AnalyzeWithCommands( input, orig, origProvider.Rwy, dest, destProvider.Rwy, AppOptions.NavDataLocation, airwayNetwork.AirportList, airwayNetwork.WptList); Route = new RouteGroup(result, airwayNetwork.TracksInUse); view.ShowRouteTxt(Route, AppOptions); view.RouteIsValid = true; } catch (Exception ex) { view.ShowMessage(ex.Message, MessageLevel.Warning); } }
public ActionResult Create(RouteGroup group, HttpPostedFileBase iconFile) { var json = new JsonResult(); User loginUser = null; try { string iconFileName = ""; if (iconFile != null) { iconFileName = SaveIcon(iconFile); } using (var ctx = new GlsunViewEntities()) { loginUser = (from u in ctx.User where u.ULoginName == HttpContext.User.Identity.Name select u).FirstOrDefault(); group.CreatorID = loginUser.ID; group.CreationTime = DateTime.Now; //图标没值 if (string.IsNullOrWhiteSpace(group.RGIcon)) { group.RGIcon = iconFileName; } ctx.RouteGroup.Add(group); ctx.SaveChanges(); } json.Data = new { Code = "", Data = "", Message = "保存成功" }; } catch (Exception ex) { json.Data = new { Code = "Exception", Data = "", Message = ex.Message }; } return(json); }
public static void ExportRouteFiles( IMessageDisplay view, RouteGroup Route, IEnumerable <ExportCommand> cmds, AirportManager airportList) { if (Route == null) { view.ShowMessage("Please find or analyze a route first.", MessageLevel.Info); return; } var writer = new FileExporter(Route.Expanded, airportList, cmds); IEnumerable <FileExporter.Status> reports = null; try { reports = writer.Export(); } catch (Exception ex) { view.ShowMessage(ex.Message, MessageLevel.Warning); return; } ShowReports(view, reports.ToList()); }
public static void ExportRouteFiles( IMessageDisplay view, RouteGroup Route, IEnumerable <ExportCommand> cmds, MultiMap <string, Navaid> Navaids, AirportManager airportList, ExportMenu menu) { if (Route == null) { view.ShowMessage("Please find or analyze a route first.", MessageLevel.Info); return; } using (var frm = GetForm(new Size(1, 1))) { menu.Location = new Point(0, 0); menu.Route = Route; menu.Navaids = Navaids; menu.AirportList = airportList; frm.AutoSizeMode = AutoSizeMode.GrowAndShrink; frm.AutoSize = true; frm.FormBorderStyle = FormBorderStyle.FixedToolWindow; frm.Controls.Add(menu); frm.ShowDialog(); frm.Controls.Remove(menu); } }
// Can throw exceptions. private void FindRoute() { var orig = origController.Icao; var dest = destController.Icao; if (AirportList[orig] == null) { throw new ArgumentException("Cannot find origin airport in Nav Data."); } if (AirportList[dest] == null) { throw new ArgumentException("Cannot find destination airport in Nav Data."); } var sid = origController.GetSelectedProcedures(); var star = destController.GetSelectedProcedures(); var finder = new RouteFinderFacade( airwayNetwork.WptList, airwayNetwork.AirportList, AppSettings.NavDataLocation, checkedCodesLocator.Instance, windCalcGetter()); Route = new RouteGroup( finder.FindRoute( orig, origController.Rwy, sid, dest, destController.Rwy, star), airwayNetwork.TracksInUse); ShowRouteTxt(); }
public void OnNavDataChange() { view.OrigRow.OnNavDataChange(); view.DestRow.OnNavDataChange(); view.RouteIsValid = false; Route = null; }
public void AnalyzeRoute() { Debug.Assert(view.IsAirportToAirport()); try { EnsureOrigAirportExists(); EnsureDestAirportExists(); var input = view.Route.ToUpper(); var airwayNetwork = model.FuelPlanningModel.AirwayNetwork; var result = RouteAnalyzerFacade.AnalyzeWithCommands( input, view.OrigIcao, view.OrigRwy, view.DestIcao, view.DestRwy, model.FuelPlanningModel.AppOption.Instance.NavDataLocation, airwayNetwork.AirportList, airwayNetwork.WptList); Route = ToRouteGroup(result); ShowRouteTxt(); view.RouteIsValid = true; } catch (Exception ex) { view.ShowMessage(ex.Message, MessageLevel.Warning); } }
/// <summary> /// Initialize the program. /// </summary> /// /// A new empty route is created. /// The window title is set. /// private void InitializeProgram() { RouteGroup programModes = new RouteGroup(); programModes.AutonomousModes.Add(new AutonomousRoute("new")); SetWindowTitle(""); AddNewRoute(programModes); }
// GET: RouteGroup/Create public ActionResult Create() { RouteGroup group = new RouteGroup { RGIcon = "group.png" }; return(View(group)); }
public static double GetCustomTypePriority(this RouteGroup routeGroup) { if (CommonComponent.Current.Config.CustomTypePriority != null) { return(CommonComponent.Current.Config.CustomTypePriority(routeGroup)); } return(routeGroup.TypePriority); }
private void Category_Tap(object sender, TappedRoutedEventArgs e) { RouteGroup RouteGroup = (RouteGroup)DataContext; if (Click != null && RouteGroup.Routes.Count > 0) { Click(RouteGroup, new EventArgs()); } }
private void Category_Tap(object sender, System.Windows.Input.GestureEventArgs e) { RouteGroup RouteGroup = (RouteGroup)DataContext; if (Click != null && RouteGroup.Routes.Count > 0) { Click(RouteGroup, new EventArgs()); } }
public static void ShowRouteTxt(this ISupportActionContextMenu view, RouteGroup route, AppOptions o) { var selected = o.ShowTrackIdOnly ? route.Folded : route.Expanded; var showDct = !o.HideDctInRoute; view.Route = selected.ToString(showDct); view.DistanceInfo = RouteDistanceDisplay.GetDisplay(route.Expanded, Style.Long); }
private void RouteGroupClicked(object sender, EventArgs e) { RouteGroup selected = sender as RouteGroup; if (RouteGroupSelected != null) { RouteGroupSelected(this, selected); } }
private void GetRouteWaypointToWaypoint() { Route = new RouteGroup( new RouteFinder(wptList, checkedCodesLocator.Instance) .FindRoute(GetWptIndexFrom(), GetWptIndexTo()), tracksInUse); ShowRoute(); }
public static void ShowMapBrowser(this ISupportActionContextMenu view, RouteGroup route) { if (route == null) { view.ShowMessage("Please find a route first.", MessageLevel.Info); return; } view.ShowMapBrowser(route.Expanded); }
public IRecentEntry GetRecentRoute(RouteGroup routeGroup) { lock (ctx) { DateTime now = DateTime.Now; TimeSpan twelveHours = TimeSpan.FromHours(12); return(ctx.RecentEntries.ToList() .Where(e => e.Route.RouteGroup == routeGroup && now - e.CreationTime < twelveHours) .MaxBy(e => e.CreationTime)); } }
/// <summary> /// Save the current data to the specified file. /// </summary> /// /// <param name="filename">The name and path of the file to save to</param> /// private void SaveFile(String filename) { RouteGroup programList = mProgramModes; if (programList != null) { programList.Save(filename); SaveFilename = filename; } }
// GET: RouteGroup/Details/5 public ActionResult Details(int id) { RouteGroup group = null; using (var ctx = new GlsunViewEntities()) { group = ctx.RouteGroup.Find(id); } ViewBag.Action = "Details"; return(View("Create", group)); }
private async void HistoryList_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (HistoryList.SelectedItem != null) { await Task.Delay(100); RouteGroup selected = HistoryList.SelectedItem as RouteGroup; MainPage.Current.NavigationService.Navigate(new Uri("/HistoryItemPage.xaml?id=" + selected.ID, UriKind.Relative)); HistoryList.SelectedItem = null; } }
private ObservableCollection <string> LoadTasksForDropDowns(string filepath) { RouteGroup tasks = RouteGroup.Load(filepath); ObservableCollection <string> taskNames = new ObservableCollection <string>(); foreach (AutonomousRoute task in tasks.AutonomousModes) { taskNames.Add(task.Name); } return(taskNames); }
public void FindRoute() { try { Route = ToRouteGroup(FindRoutePrivate()); ShowRouteTxt(); view.RouteIsValid = true; } catch (Exception e) { view.ShowMessage(e.Message, MessageLevel.Warning); } }
public async Task SetContent(string searchText, bool full, Func <object, bool> searchFilter = null) { searchFilter = searchFilter ?? (o => true); this.SearchKey = searchText; IEnumerable <StopModel> stops = new StopModel[0]; IEnumerable <RouteGroup> routes = new RouteGroup[0]; if (searchText.Length > 0) { routes = await Task.Run(() => CommonComponent.Current.TB.Logic.FindRoutes(searchText) .OrderByText(r => r.Name) .ToList() ); } if (searchText.Length >= 3) { //elvileg nem teljesen pontos, mert lehetnek azonos route-ok a szummában de közelítésnek megteszi //+ A megálló végállomásként is számít stops = await Task.Run(() => CommonComponent.Current.TB.Logic .FindStops(searchText) .Select(s => new StopModel(s, true, true)) .OrderByText(s => s.Name) .OrderByDescending(s => s.RouteCount) .OrderBy(s => s.HighestPriority) .ToList() ); } if (stops.Take(1).Count() == 0) { ResultItems = full ? routes.Where(o => searchFilter(o)).ToList() : routes.Take(5).ToList(); } else if (routes.Take(1).Count() == 0) { var stops1 = full ? stops.ToList() : stops.Take(5).ToList(); ResultItems = stops1.Where(searchFilter).ToList(); } else { var firstRoutes = routes.Where(r => r.Name.Normalize().Contains(searchText.Normalize())).Cast <object>().ToList(); var lastRoutes = routes.Cast <object>().Except(firstRoutes); var routesAndStops = firstRoutes.Concat(stops).Concat(lastRoutes).ToList(); ResultItems = full ? routesAndStops.Where(searchFilter).ToList() : routesAndStops.Take(5).ToList(); } SetSearchResult(stops.Select(s => s.Stop), routes); }
private async void HistoryList_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (HistoryList.SelectedItem != null) { await Task.Delay(100); RouteGroup selected = HistoryList.SelectedItem as RouteGroup; if (HistoryItemSelected != null) { HistoryItemSelected(this, selected); } HistoryList.SelectedItem = null; } }
private void GetRouteAirportToWaypoint() { var sids = fromGroup.controller.GetSelectedProcedures(); Route = new RouteGroup( GetRouteFinder().FindRoute( origin, fromRwyComboBox.Text, sids, GetWptIndexTo()), tracksInUse); ShowRoute(); }
private void GetRouteWaypointToAirport() { var stars = toGroup.controller.GetSelectedProcedures(); Route = new RouteGroup( GetRouteFinder().FindRoute( GetWptIndexFrom(), destination, toRwyComboBox.Text, stars), tracksInUse); ShowRoute(); }
private async void RecentList_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (RecentList.SelectedItem != null) { await Task.Delay(100); RouteGroup selected = RecentList.SelectedItem as RouteGroup; Route route = UserEstimations.BestRoute(selected); StopGroup stop = UserEstimations.BestStop(route); MainPage.Current.NavigationService.Navigate(new Uri("/TimeTablePage.xaml?stopID=" + stop.ID + "&routeID=" + route.ID, UriKind.Relative)); //MainPage.NavigateToRouteStop(MainPage.Current, route, stop); RecentList.SelectedItem = null; } }
/// <summary> /// Handle user request to save a file /// </summary> /// /// This function will save the data in memory to a file. /// /// If a filename hasn't been specified before (by a load or /// previous save) this function will prompt for the name. /// /// <param name="sender"></param> /// <param name="e"></param> /// private void SaveButton_Click(object sender, RoutedEventArgs e) { RouteGroup programList = mProgramModes; if (programList != null) { if (String.IsNullOrEmpty(SaveFilename)) { SaveAsButton_Click(sender, e); } else { SaveFile(SaveFilename); } } }