using AsbCloudApp.Data;
using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    public static class DebugWellOperationsStatService
    {
        public static void Main(/*string[] args*/)
        {
            //var options = new DbContextOptionsBuilder<AsbCloudDbContext>()
            //    .UseNpgsql("Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True")
            //    .Options;
            //using var db = new AsbCloudDbContext(options);
            //var cacheDb = new CacheDb();
            //var telemetryService = new TelemetryService(db, new TelemetryTracker(cacheDb), cacheDb);
            //var wellService = new WellService(db, telemetryService, cacheDb);
            //var wellOptsStat = new OperationsStatService(db, cacheDb, wellService);
            //var tvd = wellOptsStat.GetTvdAsync(1, default).Result;
            //Print(tvd);
        }

        private static void Print(IEnumerable<PlanFactPredictBase<WellOperationDto>> tvd)
        {
            Console.WriteLine("|\tplan\t|\tfact\t|\tprog\t|");
            Console.WriteLine("|:-------------:|:-------------:|:-------------:|");
            foreach (var item in tvd)
                Print(item);
        }

        private static void Print(PlanFactPredictBase<WellOperationDto> item)
        {
            static string GetText(WellOperationDto item)
                => (item is null)
                   ? " --------- "
                   : $"{item.IdCategory} d:{item.DepthStart} ";
            Console.WriteLine($"|\t{GetText(item.Plan)}\t|\t{GetText(item.Fact)}\t|\t{GetText(item.Predict)}\t|");
        }
    }
}