protected void gvFleetStatus_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType != DataControlRowType.Header) { return; } e.Row.Cells[0].Text = "Fleet Status"; e.Row.Cells[1].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.TotalFleet); e.Row.Cells[2].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Cu); e.Row.Cells[3].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Ha); e.Row.Cells[4].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Hl); e.Row.Cells[5].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Ll); e.Row.Cells[6].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Nc); e.Row.Cells[7].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Pl); e.Row.Cells[8].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Tc); e.Row.Cells[9].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Sv); e.Row.Cells[10].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Ws); e.Row.Cells[11].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.OperationalFleet); e.Row.Cells[12].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Bd); e.Row.Cells[13].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Mm); e.Row.Cells[14].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Tw); e.Row.Cells[15].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Tb); e.Row.Cells[16].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Fs); e.Row.Cells[17].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Rl); e.Row.Cells[18].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Rp); e.Row.Cells[19].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Tn); e.Row.Cells[20].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.AvailableFleet); e.Row.Cells[21].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Idle); e.Row.Cells[22].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.Su); e.Row.Cells[23].Text = TopicTranslation.GetAvailabilityTopicShortDescription(AvailabilityTopic.OnRent); }
private TopicTranslation[] ExtractTopicTranslations(string contents) { TopicTranslation[] returnValue = null; if (_topicTranslationsRegex != null) { MatchCollection topicTranslationMatches = _topicTranslationsRegex.Matches(contents); if (topicTranslationMatches.Count > 0) { string culture; string topicTranslation; returnValue = new TopicTranslation[topicTranslationMatches.Count]; for (int i = 0; i < topicTranslationMatches.Count; i++) { if (topicTranslationMatches[i].Groups[CultureRegexGroup].Success && topicTranslationMatches[i].Groups[TopicTranslationRegexGroup].Success) { culture = topicTranslationMatches[i].Groups[CultureRegexGroup].Value; topicTranslation = topicTranslationMatches[i].Groups[TopicTranslationRegexGroup].Value; returnValue[i] = new TopicTranslation(new CultureInfo(culture), topicTranslation); } } } } return(returnValue); }
public void LoadChart(List <FleetStatusRow> fsd, PercentageDivisorType percentType) { var seriesList = new List <GraphSeries>(); hfPercentageValues.Value = percentType.ToString(); var topics = Enum.GetValues(typeof(AvailabilityTopic)); ShowSeries.Add(TopicTranslation.GetAvailabilityTopicDescription(AvailabilityTopic.Utilization)); ShowSeries.Add(TopicTranslation.GetAvailabilityTopicDescription(AvailabilityTopic.OnRent)); foreach (AvailabilityTopic t in topics) { if (percentType == PercentageDivisorType.Values) { if (t == AvailabilityTopic.Utilization || t == AvailabilityTopic.UtilizationInclOverdue) { continue; } } else { if (t == AvailabilityTopic.OnRent) { continue; } } var seriesName = TopicTranslation.GetAvailabilityTopicDescription(t); var displaySeries = false; if (ShowSeries.Count == 0) { if (t == AvailabilityTopic.Utilization || t == AvailabilityTopic.OnRent) { displaySeries = true; } } else { displaySeries = ShowSeries.Contains(seriesName); } var gs = new GraphSeries(seriesName) { GraphColour = TopicTranslation.GetAvailabilityColour(t), Displayed = displaySeries }; foreach (var f in fsd) { gs.Xvalue.Add(f.Day); var yVal = percentType == PercentageDivisorType.Values ? f.GetValue(t) : f.GetValuePercent(t); gs.Yvalue.Add(yVal); } seriesList.Add(gs); } GraphInformation.SeriesData = seriesList; }
private GraphSeries AddWaterfallSeries(AvailabilityTopic series, double total, double value, bool show = true) { var seriesName = TopicTranslation.GetAvailabilityTopicDescription(series); var gs = new GraphSeries(seriesName) { GraphColour = TopicTranslation.GetAvailabilityColour(series), Displayed = show }; gs.Xvalue.Add(seriesName); gs.Yvalue.Add(total); gs.Yvalue.Add(total - value); return(gs); }
protected void Page_Load(object sender, EventArgs e) { if (ShowSeries == null) { var defaultSeriesName = TopicTranslation.GetAvailabilityTopicDescription(AvailabilityTopic.Utilization); ShowSeries = new List <string> { defaultSeriesName }; } if (GraphInformation == null) { GraphInformation = new GraphData(); } }
protected override bool OnBubbleEvent(object sender, EventArgs args) { var handled = false; if (args is CommandEventArgs) { var commandArgs = args as CommandEventArgs; if (commandArgs.CommandName == FleetStatusChart.RedirectToCarSearch) { var parametersToTransfer = generalParams.GetParameterDictionary(); var barClicked = TopicTranslation.GetAvailabilityTopicFromDescription(commandArgs.CommandArgument.ToString()); List<string> moveTypes; List<string> opStatuses; using (var dataAccess = new BaseDataAccess()) { moveTypes = dataAccess.GetMovementTypesList().Select(d => d.Value).ToList(); opStatuses = dataAccess.GetOperationalStatusList().Select(d => d.Value).ToList(); } var opStatusString = string.Join(",", opStatuses); var moveTypeString = string.Join(",", moveTypes); var excludeOverdue = string.Empty; switch (barClicked) { case AvailabilityTopic.TotalFleet: break; case AvailabilityTopic.Cu: opStatusString = "2"; break; case AvailabilityTopic.Ha: opStatusString = "4"; break; case AvailabilityTopic.Hl: opStatusString = "5"; break; case AvailabilityTopic.Ll: opStatusString = "6"; break; case AvailabilityTopic.Nc: opStatusString = "8"; break; case AvailabilityTopic.Pl: opStatusString = "9"; break; case AvailabilityTopic.Tc: opStatusString = "16"; break; case AvailabilityTopic.Sv: opStatusString = "14"; break; case AvailabilityTopic.Ws: opStatusString = "19"; break; case AvailabilityTopic.OperationalFleet: opStatusString = "1,7,18,15,3,10,11,17,12,13"; break; case AvailabilityTopic.Bd: opStatusString = "1"; break; case AvailabilityTopic.Mm: opStatusString = "7"; break; case AvailabilityTopic.Tw: opStatusString = "18"; break; case AvailabilityTopic.Tb: opStatusString = "15"; break; case AvailabilityTopic.Fs: opStatusString = "3"; break; case AvailabilityTopic.Rl: opStatusString = "10"; break; case AvailabilityTopic.Rp: opStatusString = "11"; break; case AvailabilityTopic.Tn: opStatusString = "17"; break; case AvailabilityTopic.AvailableFleet: opStatusString = "12,13"; break; case AvailabilityTopic.Idle: opStatusString = "12"; moveTypeString = string.Join(",", moveTypes.Where(d => d != "10")); break; case AvailabilityTopic.Su: opStatusString = "13"; break; case AvailabilityTopic.Overdue: opStatusString = "12"; moveTypeString = "10"; excludeOverdue = "-1"; break; case AvailabilityTopic.OnRent: opStatusString = "12"; moveTypeString = "10"; excludeOverdue = "1"; break; case AvailabilityTopic.Utilization: break; case AvailabilityTopic.UtilizationInclOverdue: break; default: throw new ArgumentOutOfRangeException(); } parametersToTransfer[DictionaryParameter.OperationalStatuses] = opStatusString; parametersToTransfer[DictionaryParameter.MovementTypes] = moveTypeString; parametersToTransfer[DictionaryParameter.ExcludeOverdue] = excludeOverdue; Session[FleetStatusSessionParameters] = parametersToTransfer; Response.Redirect("~/App.Site/Availability/CarSearch/CarSearch.aspx"); } handled = true; } return handled; }
private void BuildWaterfallChart() { var ca = new ChartArea { Name = "Total Fleet Area" }; var pos = new ElementPosition { Width = ShowLegend ? 70 : 90, Height = 90, X = 0, Y = 5 }; ca.Position = pos; ca.AxisX.MajorGrid.Enabled = false; //ca.AxisX.CustomLabels.Add(new CustomLabel()); ca.AxisX.Interval = 2; //ca.AxisX.LabelStyle.Angle = -45; ca.AxisY.MajorGrid.Enabled = true; var ls = new LabelStyle { Format = "#,#" }; ca.AxisY.LabelStyle = ls; ca.AxisY.MajorGrid.LineColor = Color.LightGray; //ca.InnerPlotPosition.Width = 55; chrtFleetStatus.ChartAreas.Add(ca); var totalFleet = 0.0; foreach (var cd in GraphInformation.SeriesData) { var cs = new Series(cd.SeriesName) { ChartType = SeriesChartType.RangeColumn , Color = cd.GraphColour , XValueType = ChartValueType.String , YValuesPerPoint = 2 }; //cs["DrawSideBySide"] = "false"; cs["DrawingStyle"] = "Emboss"; if (TodaysData) { cs.PostBackValue = "BarClick/" + cd.SeriesName; } cs.IsValueShownAsLabel = GraphInformation.ShowLabelSeriesNames.Contains(cd.SeriesName); cs.LabelFormat = "#,#"; //cs.Label = cd.SeriesName; //cs.LabelAngle = -45; cs.ToolTip = "#SERIESNAME #CUSTOMPROPERTY(SIZE)"; cs.Points.AddXY(cd.SeriesName, cd.Yvalue.Cast <object>().ToArray()); //cs.Label = string.Format("{0:#,#}", cd.Yvalue[0] - cd.Yvalue[1]); //cs.LabelAngle = -45; cs.AxisLabel = cd.SeriesName; //cs.Points.AddXY(cd.SeriesName, cd.Yvalue[0]); var size = cd.Yvalue[0] - cd.Yvalue[1]; var availTopic = TopicTranslation.GetAvailabilityTopicFromDescription(cd.SeriesName); if (availTopic == AvailabilityTopic.TotalFleet) { totalFleet = cd.Yvalue[0]; } cs.Points[0]["SIZE"] = string.Format("{0:#,#}", size); cs["PixelPointWidth"] = "400"; chrtFleetStatus.Series.Add(cs); var imageLocation = cd.Displayed ? Checkedboximagelocation : Uncheckedboximagelocation; var legendItem = new LegendItem { Name = "Legend Item" }; var legendCell = new LegendCell { CellType = LegendCellType.Image, Image = imageLocation, Name = "Cell1", Margins = { Left = 15, Right = 15 }, PostBackValue = "LegendClick/" + cd.SeriesName }; var seriesHidden = GraphInformation.HiddenSeriesNames.Contains(cd.SeriesName); var legendCell2Colour = cd.GraphColour;//seriesHidden ? MarsColours.ChartLegendValuesHidden : cd.GraphColour; legendItem.Cells.Add(legendCell); legendCell = new LegendCell { Name = "Cell2", Text = cd.SeriesName, ForeColor = legendCell2Colour, Alignment = ContentAlignment.MiddleLeft }; legendItem.Cells.Add(legendCell); legendCell = new LegendCell { Name = "Cell3", Text = string.Format("{0:#,0}", size), ForeColor = legendCell2Colour, Font = new Font("Tahoma", 9), Alignment = ContentAlignment.MiddleRight, //PostBackValue = "LegendShowLabels/" + cd.SeriesName }; legendItem.Cells.Add(legendCell); legendCell = new LegendCell { Name = "Cell4", Text = string.Format("{0:p}", (size / totalFleet)), ForeColor = legendCell2Colour, Font = new Font("Tahoma", 9), Alignment = ContentAlignment.MiddleRight, }; legendItem.Cells.Add(legendCell); chrtFleetStatus.Legends["RightLegend"].CustomItems.Add(legendItem); if (cd.Displayed == false) { cs.IsVisibleInLegend = false; cs.Enabled = false; } } var slideLegendItem = new LegendItem { Name = "SlideButton" }; var slideLegendCell = new LegendCell { Name = "Cell4", Alignment = ContentAlignment.TopRight, PostBackValue = ShowLegend ? "HideLegend" : "ShowLegend", CellType = LegendCellType.Image, Image = ShowLegend ? "~/App.Images/hideRightIcon.gif" : "~/App.Images/hideLeftIcon.gif", }; slideLegendItem.Cells.Add(slideLegendCell); chrtFleetStatus.Legends["SlideLegend"].CustomItems.Add(slideLegendItem); }