private void SetItemsSource(Point point, ISupportAxes2D series) { try { var chartSeries = series as ChartSeries; double pointx = Math.Truncate(ChartArea.PointToValue(series.ActualXAxis, point)); double pointy = Math.Truncate(ChartArea.PointToValue(series.ActualYAxis, point)); if (chartSeries == null || (!(pointx >= 0) || !(pointx < chartSeries.DataCount))) { return; } customInfo = new ChartCustomInfo { LabelX = chartSeries.Label, LabelY = ChartArea.SecondaryAxis.Header.ToString() }; var dataSource = chartSeries.ItemsSource as List <StockData>; if (dataSource != null) { customInfo.ValueX = dataSource[(int)pointx].TimeStamp.ToString("MM-dd-yyyy"); } customInfo.ValueY = pointy.ToString(series.ActualYAxis.LabelFormat, CultureInfo.CurrentCulture); customInfo.YValues = GetYValuesBasedOnIndex(pointx, chartSeries); yCount = customInfo.YValues.Count; customInfo.LabelYValues = GetLabelYValues(); customInfo.Visibility = Visibility.Visible; PointInfos.Add(customInfo); PositionSummaryControl(pointx, chartSeries); } catch { } }
private void SetItemsSource(Point point, ISupportAxes series) { var chartSeries = series as CartesianSeries; var pointx = Math.Truncate(ChartArea.PointToValue(series.ActualXAxis, point)); var pointy = Math.Truncate(ChartArea.PointToValue(series.ActualYAxis, point)); if (chartSeries == null || (!(pointx >= 0) || !(pointx < chartSeries.DataCount))) { return; } var dataSource = chartSeries.ItemsSource as List <StockDatas>; if (dataSource != null) { customInfo = new ChartCustomInfo { LabelX = chartSeries.Label, ValueX = dataSource[(int)pointx].TimeStamp.ToString("MM-dd-yyyy"), ValueY = pointy.ToString(series.ActualYAxis.LabelFormat, CultureInfo.CurrentCulture), YValues = GetYValuesBasedOnIndex(pointx, chartSeries) } } ; if (AnalyticsInfo.VersionInfo.DeviceFamily != "Windows.Mobile") { customInfo.LabelY = ChartArea.SecondaryAxis.Header.ToString(); } yCount = customInfo.YValues.Count; customInfo.LabelYValues = GetLabelYValues(); customInfo.Visibility = Visibility.Visible; PointInfos.Add(customInfo); PositionSummaryControl(point, chartSeries); }
protected override void OnPointerMoved(PointerRoutedEventArgs e) { base.OnPointerMoved(e); SummaryControl.Visibility = Visibility.Visible; if (PointInfos != null) { PointInfos.Clear(); } if (ChartArea != null && IsActivated) { SetItemsSource(CurrentPoint, ChartArea.Series[0] as ISupportAxes); SummaryControl.ItemsSource = PointInfos.Reverse().ToList(); } }
//protected override void OnModelCreating(DbModelBuilder modelBuilder) //{ // modelBuilder.Entity<RuleTrend>() // .HasRequired(rt => rt.FuzzyLabelTo) // .WithMany() // .HasForeignKey(rt => rt.FuzzyLabelToId) // .WillCascadeOnDelete(false); // modelBuilder.Entity<RuleTrend>() // .HasRequired(rt => rt.FuzzyLabelFrom) // .WithMany() // .HasForeignKey(rt => rt.FuzzyLabelFromId) // .WillCascadeOnDelete(false); // modelBuilder.Entity<RuleTrend>() // .HasRequired(rt => rt.FuzzyTrend) // .WithMany() // .HasForeignKey(rt => rt.FuzzyTrendId) // .WillCascadeOnDelete(false); // modelBuilder.Entity<StatisticsByFuzzy>() // .HasRequired(rt => rt.EndStateFuzzyLabel) // .WithMany() // .HasForeignKey(rt => rt.EndStateFuzzyLabelId) // .WillCascadeOnDelete(false); // modelBuilder.Entity<StatisticsByFuzzy>() // .HasRequired(rt => rt.EndStateFuzzyTrend) // .WithMany() // .HasForeignKey(rt => rt.EndStateFuzzyTrendId) // .WillCascadeOnDelete(false); // modelBuilder.Entity<StatisticsByFuzzy>() // .HasRequired(rt => rt.StartStateFuzzyLabel) // .WithMany() // .HasForeignKey(rt => rt.StartStateFuzzyLabelId) // .WillCascadeOnDelete(false); // modelBuilder.Entity<StatisticsByFuzzy>() // .HasRequired(rt => rt.StartStateFuzzyTrend) // .WithMany() // .HasForeignKey(rt => rt.StartStateFuzzyTrendId) // .WillCascadeOnDelete(false); // base.OnModelCreating(modelBuilder); //} /// <summary> /// Удаления для диагностического теста и временного ряда /// </summary> /// <returns></returns> public override int SaveChanges() { var entrieDTs = ChangeTracker.Entries <DiagnosticTest>(); foreach (var entry in entrieDTs) { if (entry.State == EntityState.Deleted) { var entity = entry.Entity; DiagnosticTestRecords.RemoveRange(DiagnosticTestRecords.Where(rec => rec.DiagnosticTestId == entity.Id)); GranuleFuzzys.RemoveRange(GranuleFuzzys.Where(rec => rec.DiagnosticTestId == entity.Id)); GranuleEntropys.RemoveRange(GranuleEntropys.Where(rec => rec.DiagnosticTestId == entity.Id)); GranuleUXs.RemoveRange(GranuleUXs.Where(rec => rec.DiagnosticTestId == entity.Id)); GranuleFTs.RemoveRange(GranuleFTs.Where(rec => rec.DiagnosticTestId == entity.Id)); PointInfos.RemoveRange(PointInfos.Where(rec => rec.DiagnosticTestId == entity.Id)); } } var entrieSDs = ChangeTracker.Entries <SeriesDescription>(); foreach (var entry in entrieSDs) { if (entry.State == EntityState.Deleted) { var entity = entry.Entity; var diagnosticsTests = DiagnosticTests.Where(rec => rec.SeriesDiscriptionId == entity.Id).Select(rec => rec.Id).ToList(); DiagnosticTestRecords.RemoveRange(DiagnosticTestRecords.Where(rec => diagnosticsTests.Contains(rec.DiagnosticTestId))); Granules.RemoveRange(Granules.Where(rec => diagnosticsTests.Contains(rec.DiagnosticTestId))); GranuleFuzzys.RemoveRange(GranuleFuzzys.Where(rec => diagnosticsTests.Contains(rec.DiagnosticTestId))); GranuleEntropys.RemoveRange(GranuleEntropys.Where(rec => diagnosticsTests.Contains(rec.DiagnosticTestId))); GranuleUXs.RemoveRange(GranuleUXs.Where(rec => diagnosticsTests.Contains(rec.DiagnosticTestId))); GranuleFTs.RemoveRange(GranuleFTs.Where(rec => diagnosticsTests.Contains(rec.DiagnosticTestId))); PointInfos.RemoveRange(PointInfos.Where(rec => diagnosticsTests.Contains(rec.DiagnosticTestId))); DiagnosticTestRecords.RemoveRange(DiagnosticTestRecords.Where(rec => rec.DiagnosticTestId == entity.Id)); DiagnosticTests.RemoveRange(DiagnosticTests.Where(rec => rec.SeriesDiscriptionId == entity.Id)); StatisticsByEntropys.RemoveRange(StatisticsByEntropys.Where(rec => rec.SeriesDiscriptionId == entity.Id)); StatisticsByFuzzys.RemoveRange(StatisticsByFuzzys.Where(rec => rec.SeriesDiscriptionId == entity.Id)); AnomalyInfos.RemoveRange(AnomalyInfos.Where(rec => rec.SeriesDiscriptionId == entity.Id)); PointTrends.RemoveRange(PointTrends.Where(rec => rec.SeriesDiscriptionId == entity.Id)); RuleTrends.RemoveRange(RuleTrends.Where(rec => rec.SeriesDiscriptionId == entity.Id)); FuzzyTrends.RemoveRange(FuzzyTrends.Where(rec => rec.SeriesDiscriptionId == entity.Id)); FuzzyLabels.RemoveRange(FuzzyLabels.Where(rec => rec.SeriesDiscriptionId == entity.Id)); } } return(base.SaveChanges()); }
protected override void OnLayoutUpdated() { if (SummaryControl != null && SummaryControl.Visibility == Visibility.Visible) { if (PointInfos != null) { PointInfos.Clear(); } if (ChartArea != null && IsActivated) { SetItemsSource(CurrentPoint, ChartArea.Series[0] as ISupportAxes); SummaryControl.ItemsSource = PointInfos.Reverse().ToList(); } } base.OnLayoutUpdated(); }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); try { SummaryControl.Visibility = Visibility.Visible; if (PointInfos != null) { PointInfos.Clear(); } if (ChartArea == null || !IsActivated) { return; } SetItemsSource(CurrentPoint, ChartArea.Series[0] as ISupportAxes2D); if (PointInfos != null) { SummaryControl.ItemsSource = PointInfos.Reverse().ToList(); } } catch {} }