Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Period"></param>
        /// <param name="LoggerProviderName"></param>
        /// <param name="logLevel"></param>
        /// <param name="keyFormatString"></param>
        /// <param name="groupByClause"></param>
        /// <returns></returns>
        public JsonResult ChartDataByTimePeriod(string Period, string LoggerProviderName, string logLevel, string keyFormatString, Func <LogEvent, Object> groupByClause)
        {
            TimePeriod timePeriod = TimePeriodHelper.GetUtcTimePeriod(Period);

            // Grab ALL entries for the chart (DO NOT PAGE REPORTING DATA!!!)
            IPagedList <LogEvent> chartEntries = loggingRepository.GetByDateRangeAndType(0, Int32.MaxValue, timePeriod.Start, timePeriod.End, LoggerProviderName, logLevel);

            var groupedByDate = chartEntries.GroupBy(groupByClause).OrderBy(y => y.Key);

            var groupedByDateAndThenName = groupedByDate.Select(group => new { Key = group.Key, NestedGroup = group.ToLookup(result => result.LoggerProviderName, result => result.Id) });

            var LoggerNames = (from logEvent in chartEntries
                               select new { Name = logEvent.LoggerProviderName }
                               ).Distinct().OrderBy(item => item.Name);

            ChartData chartData = new ChartData();

            // Add columns
            chartData.AddColumn(new ChartColumn("0", "Period", "string"));
            int columnIndex = 1;

            foreach (var name in LoggerNames)
            {
                chartData.AddColumn(new ChartColumn(columnIndex.ToString(), name.Name.ToString(), "number"));
                columnIndex++;
            }

            // add row data
            foreach (var myDate in groupedByDateAndThenName)
            {
                ChartRow row = new ChartRow();

                string dateString = (myDate.Key is DateTime) ? ((DateTime)myDate.Key).ToString(keyFormatString) : myDate.Key.ToString();
                row.AddCellItem(new ChartCellItem(dateString, ""));

                foreach (var name in LoggerNames)
                {
                    bool valueFound = false;
                    foreach (var myLogger in myDate.NestedGroup)
                    {
                        if (myLogger.Key == name.Name.ToString())
                        {
                            row.AddCellItem(new ChartCellItem(myLogger.Count(), ""));
                            valueFound = true;
                        }
                    }
                    if (!valueFound)
                    {
                        row.AddCellItem(new ChartCellItem(0, ""));
                    }
                }

                chartData.AddRow(row);
            }

            return(Json(chartData, "text/x-json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        static ChartRow CreateErrorObject(string StockName, string stockCode)
        {
            ChartRow RowData = new ChartRow();

            RowData.CurrencySymbol  = "";
            RowData.StockName       = "? " + StockName + "\r\n> FAILED LOADING";
            RowData.StockCode       = stockCode;
            RowData.VisualStockCode = stockCode + " - FAILED TO LOAD!";
            RowData.FailedRetrival  = true;
            return(RowData);
        }
Esempio n. 3
0
        public async Task UpdateStockEntries()
        {
            List <StockListEntries> stockItems = SQLiteDatabaseHelper <StockListEntries> .ReadRecordToList();

            if (stockItems.Count == 0)
            {
                return;
            }

            var chartData = await ChartRow.ConvertStockEntriesToChartData(stockItems);

            CorrectListEntriesWhichUpdated(chartData);
        }
Esempio n. 4
0
        public ChartNode(Graph parentGraph)
        {
            var inputRow = new InputRow("Chart", "Number", this);
            var chartRow = new ChartRow();

            Rows = new List <BaseRow> {
                inputRow,
                chartRow
            };
            this.parentGraph   = parentGraph;
            tape               = chartRow.tape;
            inputRow.inputTape = tape;
        }
Esempio n. 5
0
        public static List <ChartRow> BuildChartRows(List <Line> lines)
        {
            // Line chart rows
            var chartRows = new List <ChartRow>();

            // For each line
            foreach (var line in lines)
            {
                var chartRow = new ChartRow(line.Time, line.Value, line.AverageBuy, line.AverageSell);
                chartRows.Add(chartRow);
            }

            // Return
            return(chartRows);
        }
Esempio n. 6
0
        public async void DeleteChartRow(ChartRow chartRow)
        {
            var stockName = chartRow.StockName;
            var stockCode = chartRow.StockCode;
            var deleted   = await SQLiteDatabaseHelper <StockListEntries> .DeleteRecord(row => row.StockCode == stockCode);

            if (!deleted.IsValid)
            {
                var error = deleted.GetErrorResponse();
                await App.Current.MainPage.DisplayAlert("Error Deleting", "Error in deleting row", "OK");

                return;
            }
            ChartListData.Remove(chartRow);
        }
Esempio n. 7
0
        public static async Task <ChartRow> QueryStockInformation(string StockName, string stockCode)
        {
            ChartRow RowData = new ChartRow();

            string searchFor = WebUtility.UrlEncode(stockCode.Trim());
            string region    = "US";
            string language  = "en-US";
            string interval  = Intervals.Days1.GetDescriptionString();
            string range     = Intervals.Months3.GetDescriptionString();

            List <Result> chartData = await YahooAPIQuery.GetChartData(searchFor, region, language, interval, range);

            int takeIndex = 0;

            if (chartData == null || chartData.Count == 0)
            {
                return(CreateErrorObject(StockName, stockCode));
            }

            Result result = chartData[takeIndex];

            double prevClose      = result.meta.chartPreviousClose;
            double regMarketPrice = result.meta.regularMarketPrice;

            RowData.CurrencySymbol  = CurrencySymbolConverter.CurrencyCodeToSymbol(result.meta.currency);
            RowData.StockName       = StockName;
            RowData.StockCode       = stockCode;
            RowData.VisualStockCode = stockCode;
            RowData.CurrentValue    = regMarketPrice;
            RowData.FirstRangeValue = prevClose;
            RowData.CurrentRate     = (float)(prevClose / regMarketPrice * 100.0f);
            RowData.ChartData       = result.indicators.adjclose[takeIndex].adjclose as List <double?>;

            if (RowData.ChartData != null)
            {
                RowData.MinValue  = (double)RowData.ChartData.Min();
                RowData.HighValue = (double)RowData.ChartData.Max();

                var chartEntries = RowData.ChartData.Where(chart => chart != null).Select(chart => new Microcharts.ChartEntry((float)chart - (float)prevClose)).ToList();
                RowData.TheChart = new LineChart {
                    Entries = chartEntries, LineMode = LineMode.Straight, PointMode = PointMode.Square, BackgroundColor = SKColors.Transparent, LineAreaAlpha = 0, AnimationDuration = new TimeSpan(0), IsAnimated = false
                };
            }

            return(await Task.FromResult(RowData));
        }
        private void GenerateData(FrameGroup group)
        {
            List <ThreadRow> rows = new List <ThreadRow>();

            if (group != null)
            {
                rows.Add(new HeaderThreadRow(group)
                {
                    GradientTop    = (ThreadView.OptickAlternativeBackground as SolidColorBrush).Color,
                    GradientBottom = (ThreadView.OptickBackground as SolidColorBrush).Color,
                    TextColor      = Colors.Gray,
                    //Header = new ThreadFilterView(),
                });

                ChartRow cpuCoreChart = EventThreadView.GenerateCoreChart(group);
                if (cpuCoreChart != null)
                {
                    cpuCoreChart.IsExpanded = false;
                    //cpuCoreChart.ExpandChanged += CpuCoreChart_ExpandChanged;
                    //cpuCoreChart.ChartHover += Row_ChartHover;
                    rows.Add(cpuCoreChart);
                }

                //List<EventsThreadRow> threadRows = GenerateThreadRows(group);
                //foreach (EventsThreadRow row in threadRows)
                //{
                //	if (row.Description.Origin == ThreadDescription.Source.Core)
                //	{
                //		row.IsVisible = false;
                //		coreRows.Add(row);
                //	}
                //}
                //rows.AddRange(threadRows);
            }

            ThreadView.Scroll.ViewUnit.Width = 1.0;
            ThreadView.InitRows(rows, group != null ? group.Board.TimeSlice : null);
        }