public async Task <ScatterPlotData[]> Get(string startDateString, string finishDateString,
                                                  bool product, bool engineering, bool unanticipated,
                                                  bool assessmentsTeam, bool enterpriseTeam)
        {
            var startDate  = DateHelper.GetStartDate(startDateString);
            var finishDate = DateHelper.GetFinishDate(finishDateString);

            var scatterPlotHelper = new ScatterPlotHelper();
            var result            = await scatterPlotHelper
                                    .GetLeadTimeScatterPlotDataAsync(startDate, finishDate, product, engineering, unanticipated, assessmentsTeam, enterpriseTeam);

            var returning = new ScatterPlotData[result.Count];

            for (var i = 0; i < result.Count; i++)
            {
                if (product)
                {
                    returning[i] = result[TaskItemType.Product];
                    product      = false;
                }
                else if (engineering)
                {
                    returning[i] = result[TaskItemType.Engineering];
                    engineering  = false;
                }
                else if (unanticipated)
                {
                    returning[i]  = result[TaskItemType.Unanticipated];
                    unanticipated = false;
                }
            }

            return(returning);
        }
Esempio n. 2
0
        /// <summary>
        ///     Scatter Plot Data from CSV File.
        /// </summary>
        /// <param name="FilePath">File Path to where CSV is stored.</param>
        /// <param name="DomainX">Boundary domain for values along X Axis.</param>
        /// <param name="DomainY">Boundary domain for values along Y Axis.</param>
        /// <returns name="Data">Scatter Plot Data.</returns>
        /// <search>scatter plot, data</search>
        public static ScatterPlotData DataFromCSV(
            string FilePath,
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainX,
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainY)
        {
            List<ScatterPlotDataPoint> dataPoints = new List<ScatterPlotDataPoint>();
            var csv = new List<string[]>();
            var lines = System.IO.File.ReadAllLines(FilePath);
            for (int i = 1; i < lines.Count(); i++)
            {
                string line = lines[i];
                if (i > 0)
                {
                    string lineName = line.Split(',')[0];
                    double lineValueX = Convert.ToDouble(line.Split(',')[1]);
                    double lineValueY = Convert.ToDouble(line.Split(',')[2]);
                    double lineSize = Convert.ToDouble(line.Split(',')[3]);
                    string lineColor = line.Split(',')[4];

                    dataPoints.Add(new ScatterPlotDataPoint { name = lineName, valueX = lineValueX, valueY = lineValueY, size = lineSize, color = lineColor});
                }
            }
            ScatterPlotData scatterData = new ScatterPlotData();
            scatterData.Data = dataPoints;
            scatterData.DomainX = DomainX;
            scatterData.DomainY = DomainY;
            return scatterData;
        }
        private Dictionary <TaskItemType, ScatterPlotData> EstablishScatterPlotDataStructure(List <TaskItemType> cardTypes)
        {
            var scatterPlotDataStructure = new Dictionary <TaskItemType, ScatterPlotData>();

            foreach (var cardType in cardTypes)
            {
                scatterPlotDataStructure[cardType] = new ScatterPlotData
                {
                    name           = cardType.ToString(),
                    turboThreshold = 500000,
                    data           = new List <Datum>()
                };
            }

            return(scatterPlotDataStructure);
        }
Esempio n. 4
0
        /// <summary>
        ///     Scatter Plot Data from CSV File.
        /// </summary>
        /// <param name="FilePath">File Path to where CSV is stored.</param>
        /// <param name="DomainX">Boundary domain for values along X Axis.</param>
        /// <param name="DomainY">Boundary domain for values along Y Axis.</param>
        /// <returns name="Data">Scatter Plot Data.</returns>
        /// <search>scatter plot, data</search>
        public static ScatterPlotData DataFromCSV(
            object FilePath,
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainX,
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainY)
        {
            // get full path to file as string
            // if File.FromPath is used it returns FileInfo class
            string _filePath = "";

            try
            {
                _filePath = (string)FilePath;
            }
            catch
            {
                _filePath = ((FileInfo)FilePath).FullName;
            }

            List <ScatterPlotDataPoint> dataPoints = new List <ScatterPlotDataPoint>();
            var csv   = new List <string[]>();
            var lines = System.IO.File.ReadAllLines(_filePath);

            for (int i = 1; i < lines.Count(); i++)
            {
                string line = lines[i];
                if (i > 0)
                {
                    string lineName   = line.Split(',')[0];
                    double lineValueX = Convert.ToDouble(line.Split(',')[1]);
                    double lineValueY = Convert.ToDouble(line.Split(',')[2]);
                    double lineSize   = Convert.ToDouble(line.Split(',')[3]);
                    int    lineColor  = Convert.ToInt32(line.Split(',')[4]);

                    dataPoints.Add(new ScatterPlotDataPoint {
                        name = lineName, valueX = lineValueX, valueY = lineValueY, size = lineSize, color = lineColor
                    });
                }
            }
            ScatterPlotData scatterData = new ScatterPlotData();

            scatterData.Data    = new JavaScriptSerializer().Serialize(dataPoints);
            scatterData.DomainX = DomainX;
            scatterData.DomainY = DomainY;
            return(scatterData);
        }
Esempio n. 5
0
        /// <summary>
        ///     Scatter Plot Data.
        /// </summary>
        /// <param name="Names">Names for Data Points.</param>
        /// <param name="ValueX">Value along X Axis.</param>
        /// <param name="ValueY">Value along Y Axis.</param>
        /// <param name="Size">Size of displayed dot.</param>
        /// <param name="DomainX">Boundary domain for values along X Axis.</param>
        /// <param name="DomainY">Boundary domain for values along Y Axis.</param>
        /// <returns name="Data">Scatter Plot Data.</returns>
        /// <search>scatter plot, data</search>
        public static ScatterPlotData Data(
            List<string> Names, 
            List<double> ValueX, 
            List<double> ValueY, 
            List<double> Size, 
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainX, 
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainY)
        {
            List<ScatterPlotDataPoint> dataPoints = Names
                .ZipFour(ValueX, ValueY, Size, (x, y, z, v) => new ScatterPlotDataPoint { name = x, valueX = y, valueY = z, size = v })
                .ToList();

            ScatterPlotData spData = new ScatterPlotData();
            spData.Data = dataPoints;
            spData.DomainX = DomainX;
            spData.DomainY = DomainY;
            return spData;
        }
Esempio n. 6
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            ScatterPlotData  data  = null;
            ScatterPlotStyle style = null;

            if (!DA.GetData <ScatterPlotData>(0, ref data))
            {
                return;
            }
            if (!DA.GetData <ScatterPlotStyle>(1, ref style))
            {
                return;
            }

            d3ScatterPlot chart = new d3ScatterPlot(data, style);

            DA.SetData(0, chart);
        }
Esempio n. 7
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            List <string> names   = new List <string>();
            List <double> valuesX = new List <double>();
            List <double> valuesY = new List <double>();
            List <double> sizes   = new List <double>();
            Domain        domainX = null;
            Domain        domainY = null;

            if (!DA.GetDataList <string>(0, names))
            {
                return;
            }
            if (!DA.GetDataList <double>(1, valuesX))
            {
                return;
            }
            if (!DA.GetDataList <double>(2, valuesY))
            {
                return;
            }
            if (!DA.GetDataList <double>(3, sizes))
            {
                return;
            }
            DA.GetData <Domain>(4, ref domainX);
            DA.GetData <Domain>(5, ref domainY);

            List <ScatterPlotDataPoint> dataPoints = names
                                                     .ZipFour(valuesX, valuesY, sizes, (x, y, z, v) => new ScatterPlotDataPoint {
                name = x, valueX = y, valueY = z, size = v
            })
                                                     .ToList();

            ScatterPlotData data = new ScatterPlotData();

            data.Data    = new JavaScriptSerializer().Serialize(dataPoints);
            data.DomainX = domainX;
            data.DomainY = domainY;

            DA.SetData(0, data);
        }
Esempio n. 8
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            string filePath = null;
            Domain domainX  = null;
            Domain domainY  = null;

            if (!DA.GetData <string>(0, ref filePath))
            {
                return;
            }
            DA.GetData <Domain>(1, ref domainX);
            DA.GetData <Domain>(2, ref domainY);

            List <ScatterPlotDataPoint> dataPoints = new List <ScatterPlotDataPoint>();
            var csv   = new List <string[]>();
            var lines = System.IO.File.ReadAllLines(filePath);

            for (int i = 1; i < lines.Count(); i++)
            {
                string line = lines[i];
                if (i > 0)
                {
                    string lineName   = line.Split(',')[0];
                    double lineValueX = Convert.ToDouble(line.Split(',')[1]);
                    double lineValueY = Convert.ToDouble(line.Split(',')[2]);
                    double lineSize   = Convert.ToDouble(line.Split(',')[3]);
                    string lineColor  = line.Split(',')[4];

                    dataPoints.Add(new ScatterPlotDataPoint {
                        name = lineName, valueX = lineValueX, valueY = lineValueY, size = lineSize, color = lineColor
                    });
                }
            }
            ScatterPlotData data = new ScatterPlotData();

            data.Data    = new JavaScriptSerializer().Serialize(dataPoints);
            data.DomainX = domainX;
            data.DomainY = domainY;

            DA.SetData(0, data);
        }
Esempio n. 9
0
        /// <summary>
        ///     Scatter Plot Data.
        /// </summary>
        /// <param name="Names">Names for Data Points.</param>
        /// <param name="ValueX">Value along X Axis.</param>
        /// <param name="ValueY">Value along Y Axis.</param>
        /// <param name="Size">Size of displayed dot.</param>
        /// <param name="Colors">Color of each dot.</param>
        /// <param name="DomainX">Boundary domain for values along X Axis.</param>
        /// <param name="DomainY">Boundary domain for values along Y Axis.</param>
        /// <returns name="Data">Scatter Plot Data.</returns>
        /// <search>scatter plot, data</search>
        public static ScatterPlotData Data(
            List <string> Names,
            List <double> ValueX,
            List <double> ValueY,
            List <double> Size,
            List <int> Colors,
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainX,
            [DefaultArgument("Charts.MiscNodes.GetNull()")] Domain DomainY)
        {
            List <ScatterPlotDataPoint> dataPoints = Names
                                                     .ZipFive(ValueX, ValueY, Size, Colors, (x, y, z, v, w) => new ScatterPlotDataPoint {
                name = x, valueX = y, valueY = z, size = v, color = w
            })
                                                     .ToList();

            ScatterPlotData spData = new ScatterPlotData();

            spData.Data    = new JavaScriptSerializer().Serialize(dataPoints);
            spData.DomainX = DomainX;
            spData.DomainY = DomainY;
            return(spData);
        }
Esempio n. 10
0
        /// <summary>
        ///     Scatter Plot Chart.
        /// </summary>
        /// <param name="Data">Scatter Plot Data.</param>
        /// <param name="Style">Scatter Plot Style.</param>
        /// <returns name="Chart">Scatter Plot Chart.</returns>
        /// <search>scatter plot, chart</search>
        public static d3ScatterPlot Chart(ScatterPlotData Data, ScatterPlotStyle Style)
        {
            d3ScatterPlot chart = new d3ScatterPlot(Data, Style);

            return(chart);
        }