private void _overviewItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            List <Model.IReport> newItems;

            if (e.NewItems != null)
            {
                newItems = e.NewItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                newItems = new List <Model.IReport>();
            }
            List <Model.IReport> oldItems;

            if (e.OldItems != null)
            {
                oldItems = e.OldItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                oldItems = new List <Model.IReport>();
            }
            UniReportContent tmpContent;

            switch (e.Action)
            {
            case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new UniReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    OverviewTrend.Add(tmpContent);
                }

                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Move:
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
                UnivariateContent.Clear();
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new UniReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    OverviewTrend[e.OldStartingIndex + i] = tmpContent;
                }
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
                List <UniReportContent> tmpLst = new List <UniReportContent>();
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new UniReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    tmpLst.Add(tmpContent);
                }
                OverviewTrend.Clear();
                OverviewTrend = new ObservableCollection <UniReportContent>(tmpLst);
                break;

            default:
                break;
            }
        }
示例#2
0
        private void _wallRptItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            List <Model.IReport> newItems;

            #region test output for graph

            #region preparing job, unknown
            if (e.NewItems != null)
            {
                newItems = e.NewItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                newItems = new List <Model.IReport>();
            }
            List <Model.IReport> oldItems;
            if (e.OldItems != null)
            {
                oldItems = e.OldItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                oldItems = new List <Model.IReport>();
            }

            WallReportContent    tmpContent;
            WallMtbReportContent tmpMtbContent;
            #endregion

            #region reflection to action
            switch (e.Action)
            {
            case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
                for (int i = 0; i < newItems.Count; i++)
                {
                    //WallMtbContent.Clear();
                    tmpContent    = new WallReportContent();
                    tmpMtbContent = new WallMtbReportContent();
                    #region oxyone
                    if (newItems[i] is Model.IOxyReport)
                    {     //handle the oxy type output
                        Model.IOxyReport rpt = newItems[i] as Model.IOxyReport;
                        for (int j = 0; j < rpt.OxyContents.Count; j++)
                        {
                            Model.IOxyRptOutput output = rpt.OxyContents[j];
                            switch (output.OxyOType)
                            {
                            case Dashboard.Model.OxyOType.GRAPH:
                                switch (output.Tag.ToString())
                                {
                                case "Bar":
                                    tmpContent.BarChart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                    break;

                                case "Pie":
                                    tmpContent.PieChart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                    break;

                                case "Individual":
                                    tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                    break;

                                case "MR":
                                    tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                    break;

                                default:
                                    break;
                                }
                                break;

                            default:
                                break;
                            }
                        }
                        tmpContent.Title   = rpt.Title;
                        tmpContent.RawData = rpt.RawData;
                        WallContent.Add(tmpContent);
                    }
                    #endregion

                    #region mtb one
                    else     // handle the MTB type rpt
                    {
                        Model.IReport rpt = newItems[i];
                        for (int j = 0; j < rpt.Contents.Count; j++)
                        {
                            Model.IRptOutput output = rpt.Contents[j];
                            switch (output.OType)
                            {
                            case Dashboard.Model.MtbOType.GRAPH:
                                switch (output.Tag.ToString())
                                {
                                case "TSPlot":
                                    tmpContent.TSPlot    = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                    tmpMtbContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                    break;

                                default:
                                    break;
                                }
                                break;

                            default:
                                break;
                            }
                        }
                        tmpContent.Title   = rpt.Title;
                        tmpContent.RawData = rpt.RawData;
                        WallContent.Add(tmpContent);

                        tmpMtbContent.Title   = rpt.Title;
                        tmpMtbContent.RawData = rpt.RawData;
                        WallMtbContent.Add(tmpMtbContent);
                    }
                    #endregion
                }
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
                WallContent.Clear();
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
                //need to add some Code for handling oxy and mtb, need testing => no need?
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Move:
            case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
            default:
                break;
            }
            #endregion

            #endregion

            #region successful one(close)
            //List<Model.IOxyReport> newItems;

            //if (e.NewItems != null)
            //{
            //    newItems = e.NewItems.Cast<Model.IOxyReport>().ToList();
            //}
            //else
            //{
            //    newItems = new List<Model.IOxyReport>();
            //}
            //List<Model.IOxyReport> oldItems;
            //if (e.OldItems != null)
            //{
            //    oldItems = e.OldItems.Cast<Model.IOxyReport>().ToList();
            //}
            //else
            //{
            //    oldItems = new List<Model.IOxyReport>();
            //}
            //WallReportContent tmpContent;
            //switch (e.Action)
            //{
            //    case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
            //        for (int i = 0; i < newItems.Count; i++)
            //        {
            //            Model.IOxyReport rpt = newItems[i];
            //            tmpContent = new WallReportContent();
            //            for (int j = 0; j < rpt.OxyContents.Count; j++)
            //            {
            //                Model.IOxyRptOutput output = rpt.OxyContents[j];
            //                switch (output.OxyOType)
            //                {
            //                    case Dashboard.Model.OxyOType.GRAPH:
            //                        switch (output.Tag.ToString())
            //                        {
            //                            case "Bar":
            //                                tmpContent.BarChart = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //                                break;
            //                            case "Pie":
            //                                tmpContent.PieChart = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //                                break;
            //                            case "Individual":
            //                                tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //                                break;
            //                            case "MR":
            //                                tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //                                break;
            //                            default:
            //                                break;
            //                        }
            //                        break;
            //                    default:
            //                        break;
            //                }
            //            }
            //            tmpContent.Title = rpt.Title;
            //            tmpContent.RawData = rpt.RawData; //?
            //            WallContent.Add(tmpContent);
            //        }
            //        break;
            //    case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
            //        WallContent.Clear();
            //        break;
            //    case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
            //        #region after testing add, could be open
            //        //for (int i = 0; i < newItems.Count; i++)
            //        //{
            //        //    Model.IOxyReport rpt = newItems[i];
            //        //    tmpContent = new WallReportContent();
            //        //    for (int j = 0; j < rpt.Contents.Count; j++)
            //        //    {
            //        //        Model.IOxyRptOutput output = rpt.OxyContents[j];
            //        //        switch (output.OxyOType)
            //        //        {
            //        //            case Dashboard.Model.OxyOType.GRAPH:
            //        //                switch (output.Tag.ToString())
            //        //                {
            //        //                    case "Bar":
            //        //                        tmpContent.BarChart = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //        //                        break;
            //        //                    case "Pie":
            //        //                        tmpContent.PieChart = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //        //                        break;
            //        //                    case "Individual":
            //        //                        tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //        //                        break;
            //        //                    case "MR":
            //        //                        tmpContent.TSPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
            //        //                        break;
            //        //                    default:
            //        //                        break;
            //        //                }
            //        //                break;
            //        //            default:
            //        //                break;
            //        //        }
            //        //    }
            //        //    tmpContent.Title = rpt.Title;
            //        //    tmpContent.RawData = rpt.RawData; //?
            //        //    WallContent[e.OldStartingIndex + i] = tmpContent;
            //        //}
            //        #endregion
            //        break;
            //    case System.Collections.Specialized.NotifyCollectionChangedAction.Move:
            //    case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
            //    default:
            //        break;
            //}
            #endregion

            RaisePropertyChanged("_wallRptItems");
        }
        private void _multiRptItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            List <Model.IReport> newItems;

            if (e.NewItems != null)
            {
                newItems = e.NewItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                newItems = new List <Model.IReport>();
            }

            List <Model.IReport> oldItems;

            if (e.OldItems != null)
            {
                oldItems = e.OldItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                oldItems = new List <Model.IReport>();
            }
            MultiReportContent tmpContent;

            #region 針對動作修改對應的 _multivariateContent 內容
            switch (e.Action)
            {
            case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new MultiReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            break;

                        case Dashboard.Model.MtbOType.TABLE:
                            tmpContent.DecomTable = Tool.BinaryToDataTable(output.OutputInByteArr);
                            if (tmpContent.DecomTable != null && tmpContent.DecomTable.Rows.Count > 0)
                            {
                                tmpContent.ShowTable = true;
                            }
                            else
                            {
                                tmpContent.ShowTable = false;
                            }
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    MultiVariateContent.Add(tmpContent);
                }

                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Move:
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
                MultiVariateContent.Clear();
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new MultiReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            break;

                        case Dashboard.Model.MtbOType.TABLE:
                            tmpContent.DecomTable = Tool.BinaryToDataTable(output.OutputInByteArr);
                            if (tmpContent.DecomTable != null && tmpContent.DecomTable.Rows.Count > 0)
                            {
                                tmpContent.ShowTable = true;
                            }
                            else
                            {
                                tmpContent.ShowTable = false;
                            }
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    MultiVariateContent[e.OldStartingIndex + i] = tmpContent;
                }
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
                List <MultiReportContent> tmpLst = new List <MultiReportContent>();
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new MultiReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            tmpContent.Chart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            break;

                        case Dashboard.Model.MtbOType.TABLE:
                            tmpContent.DecomTable = Tool.BinaryToDataTable(output.OutputInByteArr);
                            if (tmpContent.DecomTable != null && tmpContent.DecomTable.Rows.Count > 0)
                            {
                                tmpContent.ShowTable = true;
                            }
                            else
                            {
                                tmpContent.ShowTable = false;
                            }
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    tmpLst.Add(tmpContent);
                }
                MultiVariateContent.Clear();
                MultiVariateContent = new ObservableCollection <MultiReportContent>(tmpLst);
                break;

            default:
                break;
            }
            #endregion
        }
示例#4
0
        private void _corrRptItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            List <Model.IReport> newItems;

            if (e.NewItems != null)
            {
                newItems = e.NewItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                newItems = new List <Model.IReport>();
            }
            List <Model.IReport> oldItems;

            if (e.OldItems != null)
            {
                oldItems = e.OldItems.Cast <Model.IReport>().ToList();
            }
            else
            {
                oldItems = new List <Model.IReport>();
            }
            CorrReportContent tmpContent;

            switch (e.Action)
            {
            case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new CorrReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            if (output.Tag.ToString() == "Trend")
                            {
                                tmpContent.TrendChart             = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                tmpContent.VisibilityOfTrendChart = true;
                            }
                            else
                            {
                                tmpContent.ScatterPlot             = Tool.BinaryToWPFImage(output.OutputInByteArr);
                                tmpContent.VisibilityOfScatterPlot = true;
                            }
                            break;

                        case Dashboard.Model.MtbOType.TABLE:
                            tmpContent.CorrTable = Tool.BinaryToDataTable(output.OutputInByteArr);
                            tmpContent.ShowTable = true;
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    CorrContent.Add(tmpContent);
                }
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
                CorrContent.Clear();
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
                for (int i = 0; i < newItems.Count; i++)
                {
                    Model.IReport rpt = newItems[i];
                    tmpContent = new CorrReportContent();
                    for (int j = 0; j < rpt.Contents.Count; j++)
                    {
                        Model.IRptOutput output = rpt.Contents[j];
                        switch (output.OType)
                        {
                        case Dashboard.Model.MtbOType.GRAPH:
                            if (output.Tag.ToString() == "Trend")
                            {
                                tmpContent.TrendChart = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            }
                            else
                            {
                                tmpContent.ScatterPlot = Tool.BinaryToWPFImage(output.OutputInByteArr);
                            }
                            break;

                        case Dashboard.Model.MtbOType.TABLE:
                            tmpContent.CorrTable = Tool.BinaryToDataTable(output.OutputInByteArr);
                            break;

                        default:
                            break;
                        }
                    }
                    tmpContent.Title   = rpt.Title;
                    tmpContent.RawData = rpt.RawData;
                    CorrContent[e.OldStartingIndex + i] = tmpContent;
                }
                break;

            case System.Collections.Specialized.NotifyCollectionChangedAction.Move:
            case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
            default:
                break;
            }
        }