Example #1
0
        public static async Task <IEnumerable <ContextLoaderDataValidation> > RunTimeSeriesDataPointsLoader()
        {
            var list = new List <ContextLoaderDataValidation>();

            //IProgress<ProgressManager> progress
            var progress = new Progress <ProgressManager>(ContextManager.ProcessDataLogMessage);

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            var configData = ConfigDataHandler.GetTimeSeriesTickDataConfig();
            IEnumerable <ValidFileInfo> validatedData;

            try
            {               //check configs setup correctly. If not throw error as this is a programming error.
                validatedData = configData.Select(x => TimeSeriesDataPointLoadManager.GetValidationInfo(x, progress));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                list.Add(new ContextLoaderDataValidation(false, e.Message));
                return(list);
            }

            var tasks = validatedData.Select(async(validFileInfo) => await TimeSeriesDataPointLoadManager.GetTimeSeries(validFileInfo));

            //note: this wait can be taken out to improve performance, but for the moment the load all files are read then the db update is completed.
            //this can be async up to combine the two processes together.
            var timeSeriesDataPoints = await Task.WhenAll(tasks);


            foreach (var timeSeriesDataPoint in timeSeriesDataPoints)
            {
                if (!timeSeriesDataPoint.Any())
                {
                    continue;
                }

                var source = timeSeriesDataPoint.ToList().ElementAt(0).Source;

                var loadDataValidation = await ContextManager.PopulateData(source, timeSeriesDataPoint, progress);

                list.Add(loadDataValidation);
            }

            //var populatedResults = completed.Select(async (timeSeries) => await  PopulateTimeSeriesDataPoint(timeSeries, progress));

            stopWatch.Stop();

            Console.WriteLine("Total seconds:" + stopWatch.Elapsed.TotalSeconds);

            return(list);
        }
Example #2
0
        public static async Task <ContextLoaderDataValidation> RunTickerLoader(DateTime valueDate)
        {
            var progress = new Progress <ProgressManager>(ConsoleLogger.ProcessDataLogMessage);

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            var configData = ConfigDataHandler.GetDataConfig();


            var validFileInfo = PortfolioLoadManager.GetValidationInfo(configData.First(), progress);
            var data          = await PortfolioLoadManager.GetData(validFileInfo, valueDate);

            var validatedRisk = PortfolioLoadManager.ValidatedPortfolioRisk(data);

            var filteredValidatedPortfolioRisk = validatedRisk.Where(x => x.IsValid).Select(x => x.Value);

            var filteredInValidatedPortfolioRisk = validatedRisk.Where(x => !x.IsValid).Select(x => x.Value);



            var configSaveData    = ConfigDataHandler.GetSaveDataConfig();
            var validSaveFileInfo = configSaveData.SingleOrDefault(x => x.Source.Equals("PortfolioRiskResults"));


            validSaveFileInfo.FileName = "ErrorLog.txt";
            SaveData(filteredInValidatedPortfolioRisk.OfType <PortfolioRisk>(),
                     validSaveFileInfo);


            validSaveFileInfo.FileName = "3.txt";
            SaveData(filteredValidatedPortfolioRisk.AsQueryable().Sort("TenorDays,PortfolioId").OfType <PortfolioRisk>().ToList(),
                     validSaveFileInfo);



            validSaveFileInfo.FileName = "4.txt";
            SaveData(filteredValidatedPortfolioRisk.AsQueryable().Sort("PortfolioId,TenorDays").OfType <PortfolioRisk>(),
                     validSaveFileInfo);


            stopWatch.Stop();

            Console.WriteLine("Total seconds:" + stopWatch.Elapsed.TotalSeconds);
            return(new ContextLoaderDataValidation(true, string.Empty));
        }
Example #3
0
        public static async Task <ContextLoaderDataValidation> RunTickerLoader()
        {
            var list     = new List <ContextLoaderDataValidation>();
            var progress = new Progress <ProgressManager>(ContextManager.ProcessDataLogMessage);

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            var configData = ConfigDataHandler.GetTickerConfig();


            IEnumerable <ValidFileInfo> validatedData;

            try
            {                   //check configs setup correctly. If not throw error as this is a programming error.
                validatedData = configData.Select(x => TickerDataPointLoadManager.GetValidationInfo(x, progress));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(new ContextLoaderDataValidation(false, e.Message));;
            }

            var tasks = validatedData.Select(async(validFileInfo) => await TickerDataPointLoadManager.GetTickers(validFileInfo));

            var results = await Task.WhenAll(tasks);

            foreach (var tickers in results)
            {
                if (!tickers.Any())
                {
                    continue;
                }

                var source = tickers.ToList().ElementAt(0).Source;

                var loadDataValidation = await ContextManager.PopulateData(source, tickers, progress);

                list.Add(loadDataValidation);
            }

            stopWatch.Stop();

            Console.WriteLine("Total seconds:" + stopWatch.Elapsed.TotalSeconds);
            return(new ContextLoaderDataValidation(true, string.Empty));
        }