Ejemplo n.º 1
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, jafleetContext context)
        {
            app.UseExceptionHandler("/Home/Error");

            app.UseLoggingMiddleware();
            app.UseStaticFiles();
            app.UseCookiePolicy();
            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute("EditStore", "E/Store",
                                             defaults: new { controller = "E", action = "Store" });
                endpoints.MapControllerRoute("Edit1", "e/{id?}",
                                             defaults: new { controller = "E", action = "Index" });
                endpoints.MapControllerRoute("Edit2", "E/{id?}",
                                             defaults: new { controller = "E", action = "Index" });
                endpoints.MapControllerRoute("Log", "log/{id?}",
                                             defaults: new { controller = "log", action = "Index" });
                endpoints.MapControllerRoute("AircraftDetail1", "AircraftDetail/{id?}",
                                             defaults: new { controller = "AircraftDetail", action = "Index" });
                endpoints.MapControllerRoute("AircraftDetail2", "AD/{id?}",
                                             defaults: new { controller = "AircraftDetail", action = "Index" });
                endpoints.MapControllerRoute("AircraftDetail3", "ADN/{id?}",
                                             defaults: new { controller = "AircraftDetail", action = "IndexNohead" });
                endpoints.MapControllerRoute("AircraftDetail4", "ADNB/{id?}",
                                             defaults: new { controller = "AircraftDetail", action = "IndexNoheadBack" });
                endpoints.MapControllerRoute("Logy", "logy",
                                             defaults: new { controller = "log", action = "Yesterday" });
                endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}/{id2?}");
            });

            MasterManager.ReadAll(context);
        }
Ejemplo n.º 2
0
 public LineBotApp(LineMessagingClient lineMessagingClient, jafleetContext context, ToolsContext toolsContext, IServiceScopeFactory serviceScopeFactory)
 {
     this.messagingClient = lineMessagingClient;
     _context             = context;
     _tContext            = toolsContext;
     _services            = serviceScopeFactory;
 }
Ejemplo n.º 3
0
 private void StoreAircraftPhoto(jafleetContext context, AircraftPhoto photo, string photoUrl, string reg, string directUrl)
 {
     if (photo != null)
     {
         photo.PhotoUrl       = photoUrl;
         photo.PhotoDirectUrl = directUrl;
         photo.LastAccess     = DateTime.Now;
         context.AircraftPhoto.Update(photo);
     }
     else
     {
         context.AircraftPhoto.Add(new AircraftPhoto {
             RegistrationNumber = reg, PhotoUrl = photoUrl, LastAccess = DateTime.Now
         });
     }
     context.SaveChanges();
 }
Ejemplo n.º 4
0
 public WorkingCheckLogController(jafleetContext context)
 {
     _context = context;
 }
Ejemplo n.º 5
0
 public MessageController(jafleetContext context, IConfiguration configuration, IServiceScopeFactory serviceScopeFactory)
 {
     _context       = context;
     _configuration = configuration;
     _services      = serviceScopeFactory;
 }
Ejemplo n.º 6
0
 public AircraftDetailController(jafleetContext context, IServiceScopeFactory serviceScopeFactory)
 {
     _context  = context;
     _services = serviceScopeFactory;
 }
Ejemplo n.º 7
0
        public async Task ExecuteCheckAsync()
        {
            int intervalSum = 0;
            var sw          = new Stopwatch();

            sw.Start();
            Processing = true;
            var parser = new HtmlParser();

            using var context = new jafleetContext(Options.Options);
            var toWorkingTest = new SortedDictionary <string, string>(); //テストレジが飛行した(テスト飛行した)
            var toWorking0    = new SortedDictionary <string, string>(); //予約登録かつ非稼働が稼働した(テスト飛行した)
            var toWorking1    = new SortedDictionary <string, string>(); //製造中かつ非稼働が稼働した(テスト飛行継続)
            var toWorking2    = new SortedDictionary <string, string>(); //デリバリーかつ非稼働が稼働した(営業運航投入)
            var toWorking3    = new SortedDictionary <string, string>(); //運用中で非稼働が稼働した
            var toWorking7    = new SortedDictionary <string, string>(); //退役で非稼働が稼働した(退役フェリーされた)
            var toNotWorking  = new SortedDictionary <string, string>(); //非稼働になった
            var mainteStart   = new SortedDictionary <string, string>(); //整備開始の疑い
            var mainteEnd     = new SortedDictionary <string, string>(); //整備終了の疑い
            var mainteing     = new SortedDictionary <string, string>(); //整備中の疑い
            var allLog        = new StringBuilder();

            foreach (AircraftView a in _targetRegistrationNumber)
            {
                bool      success   = false;
                int       failCount = 0;
                Exception exBack    = null;
                while (!success && failCount <= 5)
                {
                    try
                    {
                        var htmlDocument = parser.ParseDocument(await HttpClientManager.GetInstance().GetStringAsync(FR24_DATA_URL + a.RegistrationNumber));
                        var row          = htmlDocument.GetElementsByClassName("data-row");
                        var status       = context.WorkingStatus.Where(s => s.RegistrationNumber == a.RegistrationNumber).FirstOrDefault();
                        var r            = new Random();
                        if (row !.Length != 0)
                        {
                            //rowがもつ日付
                            string   timestamp   = row[0].GetAttribute("data-timestamp");
                            DateTime latestDate  = DateTimeOffset.FromUnixTimeSeconds(long.Parse(timestamp)).LocalDateTime;
                            var      currentInfo = new StringBuilder();
                            string   notifyMark  = string.Empty;
                            if (!string.IsNullOrEmpty(a.SpecialLivery))
                            {
                                notifyMark = "◎";
                            }
                            else if (a.MaintenanceNotify.HasValue && a.MaintenanceNotify.Value)
                            {
                                notifyMark = "☆";
                            }
                            currentInfo.Append($"{a.RegistrationNumber}{notifyMark}({a.TypeDetailName}):{latestDate:yyyy/MM/dd HH:mm} ");

                            //tdの各値
                            var td = row[0].GetElementsByTagName("td");
                            if (td !.Length != 0)
                            {
                                currentInfo.Append($"{td[3].TextContent!.Trim()} {td[4].TextContent!.Trim()} {td[5].TextContent!.Trim()} {td[11].TextContent!.Trim()}");
                            }

                            bool?    previousWorking;
                            DateTime?previousDate;
                            if (status == null)
                            {
                                status = new WorkingStatus()
                                {
                                    RegistrationNumber = a.RegistrationNumber
                                };
                                context.WorkingStatus.Add(status);
                            }
                            previousWorking     = status.Working;
                            previousDate        = status.FlightDate;
                            status.FlightDate   = latestDate;
                            status.FromAp       = td[3].TextContent !.Trim();
                            status.ToAp         = td[4].TextContent !.Trim();
                            status.FlightNumber = td[5].TextContent !.Trim();
                            status.Status       = td[11].TextContent !.Trim();
                            status.Working      = (DateTime.Now.Date < latestDate.Date) || ((DateTime.Now.Date - latestDate.Date) <= CompareTargetTimeSpan);

                            if ((!previousWorking.HasValue || !previousWorking.Value) && status.Working !.Value)
                            {
                                string infoString = $"{currentInfo} ← {previousDate:yyyy/MM/dd HH:mm}";
                                //非稼働から稼働になった
                                switch (a.OperationCode)
                                {
                                case OperationCode.RESERVED:
                                    toWorking0.Add(a.RegistrationNumber, infoString);
                                    break;

                                case OperationCode.MAKING:
                                    toWorking1.Add(a.RegistrationNumber, infoString);
                                    break;

                                case OperationCode.DELIVERY:
                                    toWorking2.Add(a.RegistrationNumber, infoString);
                                    break;

                                case OperationCode.INTERNATIONAL:
                                case OperationCode.DOMESTIC:
                                case OperationCode.BOTH:
                                case OperationCode.CARGO:
                                    toWorking3.Add(a.RegistrationNumber, infoString);
                                    break;

                                case OperationCode.RETIRE_REGISTERED:
                                    toWorking7.Add(a.RegistrationNumber, infoString);
                                    break;
                                }
                                //整備終了の疑い
                                if (status.Maintenancing.HasValue && status.Maintenancing.Value)
                                {
                                    status.Maintenancing = false;
                                    mainteEnd.Add(a.RegistrationNumber, currentInfo.ToString());
                                }
                            }
                            else if (previousWorking.HasValue && previousWorking.Value && !status.Working.Value)
                            {
                                //稼働から非稼働になった
                                toNotWorking.Add(a.RegistrationNumber, currentInfo.ToString());
                                //整備開始の疑い
                                if (MAINTE_PLACE.Any(m => status.ToAp.Contains(m)))
                                {
                                    status.Maintenancing = true;
                                    mainteStart.Add(a.RegistrationNumber, currentInfo.ToString());
                                }
                            }
                            else if (status.Maintenancing.HasValue && status.Maintenancing.Value && a.OperationCode != OperationCode.RETIRE_REGISTERED)
                            {
                                mainteing.Add(a.RegistrationNumber, currentInfo.ToString());
                            }
                            Console.WriteLine(currentInfo);
                        }
Ejemplo n.º 8
0
 public SearchController(jafleetContext context, IServiceScopeFactory serviceScopeFactory)
 {
     _context  = context;
     _services = serviceScopeFactory;
 }
Ejemplo n.º 9
0
 public ReloadMasterController(jafleetContext context)
 {
     _context = context;
 }
Ejemplo n.º 10
0
 public TypeController(jafleetContext context)
 {
     _context = context;
 }
Ejemplo n.º 11
0
 public LineBotController(jafleetContext context, ToolsContext toolsContext, IServiceScopeFactory serviceScopeFactory)
 {
     _context  = context;
     _tContext = toolsContext;
     _services = serviceScopeFactory;
 }
Ejemplo n.º 12
0
        public static string GetReportStringMyNormal1(jafleetContext context)
        {
            var garesults = ga.GetReportMyNormal1();

            int todayUsers = 0, todaySessions = 0, todayPageViews = 0;
            int yesterdayUsers = 0, yesterdaySessions = 0, yesterdayPageViews = 0;

            foreach (var result in garesults)
            {
                string metricsName = result.ColumnHeader.MetricHeader.MetricHeaderEntries?[0].Name;
                foreach (var row in result.Data.Rows)
                {
                    if (row.Dimensions?[0] == DateTime.Now.ToString("yyyyMMdd"))
                    {
                        switch (metricsName)
                        {
                        case "ga:users":
                            todayUsers = Int32.Parse(row.Metrics[0].Values[0]);
                            break;

                        case "ga:sessions":
                            todaySessions = Int32.Parse(row.Metrics[0].Values[0]);
                            break;

                        case "ga:pageviews":
                            todayPageViews = Int32.Parse(row.Metrics[0].Values[0]);
                            break;

                        default:
                            break;
                        }
                    }
                    else if (row.Dimensions?[0] == DateTime.Now.AddDays(-1).ToString("yyyyMMdd"))
                    {
                        switch (metricsName)
                        {
                        case "ga:users":
                            yesterdayUsers = Int32.Parse(row.Metrics[0].Values[0]);
                            break;

                        case "ga:sessions":
                            yesterdaySessions = Int32.Parse(row.Metrics[0].Values[0]);
                            break;

                        case "ga:pageviews":
                            yesterdayPageViews = Int32.Parse(row.Metrics[0].Values[0]);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }

            string today     = DateTime.Now.Date.ToString("yyyyMMdd");
            string yesterday = DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
            List <DailyStatistics> ds;

            ds = context.DailyStatistics.Where(q => q.LogDateYyyyMmDd == today || q.LogDateYyyyMmDd == yesterday).ToList();

            var dsToday     = ds.Where(q => q.LogDateYyyyMmDd == today).FirstOrDefault();
            var dsYesterday = ds.Where(q => q.LogDateYyyyMmDd == yesterday).FirstOrDefault();

            return($"今日:u{todayUsers},s{todaySessions},pv{todayPageViews}\n" +
                   $"   p{dsToday?.PhotoCount ?? 0},l{dsToday?.LineCount ?? 0},s{dsToday?.SearchCount ?? 0},e{dsToday?.ExCount ?? 0}\n" +
                   $"昨日:u{yesterdayUsers},s{yesterdaySessions},pv{yesterdayPageViews}\n" +
                   $"   p{dsYesterday?.PhotoCount ?? 0},l{dsYesterday?.LineCount ?? 0},s{dsYesterday?.SearchCount ?? 0},e{dsYesterday?.ExCount ?? 0}");
        }
Ejemplo n.º 13
0
 public AirlineGroupController(jafleetContext context)
 {
     _context = context;
 }
Ejemplo n.º 14
0
 public CheckController(jafleetContext context)
 {
     _context = context;
 }
Ejemplo n.º 15
0
 public logController(jafleetContext context)
 {
     _context = context;
 }
Ejemplo n.º 16
0
        public static void ReadAll(jafleetContext context)
        {
            var tempaa = context.Airline.Where(a => !a.Deleted).OrderBy(p => p.DisplayOrder).ToList();

            tempaa.ForEach(aa =>
            {
                switch (aa.AirlineGroupCode)
                {
                case AirlineGroupCode.ANAGroup:
                    aa.AirlineGroup = "ANAグループ";
                    break;

                case AirlineGroupCode.JALGroup:
                    aa.AirlineGroup = "JALグループ";
                    break;

                case AirlineGroupCode.LCC:
                    aa.AirlineGroup = "LCC";
                    break;

                case AirlineGroupCode.Other:
                    aa.AirlineGroup = "その他";
                    break;
                }
            });
            _allAirline = tempaa.ToArray();

            _ana               = context.Airline.AsNoTracking().Where(p => p.AirlineGroupCode == AirlineGroupCode.ANAGroup && !p.Deleted).OrderBy(p => p.DisplayOrder).ToArray();
            _jal               = context.Airline.AsNoTracking().Where(p => p.AirlineGroupCode == AirlineGroupCode.JALGroup && !p.Deleted).OrderBy(p => p.DisplayOrder).ToArray();
            _lcc               = context.Airline.AsNoTracking().Where(p => p.AirlineGroupCode == AirlineGroupCode.LCC && !p.Deleted).OrderBy(p => p.DisplayOrder).ToArray();
            _other             = context.Airline.AsNoTracking().Where(p => p.AirlineGroupCode == AirlineGroupCode.Other && !p.Deleted).OrderBy(p => p.DisplayOrder).ToArray();
            _type              = context.Type.AsNoTracking().OrderBy(p => p.DisplayOrder).ToArray();
            _wifi              = context.Code.AsNoTracking().Where(p => p.CodeType == CodeType.WIFI).OrderBy(p => p.Key).ToArray();
            _adminUser         = context.AdminUser.AsNoTracking().Select(e => e.UserId).ToList();
            _typeDetailGroup   = context.TypeDetailView.AsNoTracking().OrderBy(p => p.DisplayOrder).ThenBy(p => p.TypeDetailName).ToArray();
            _seatConfiguration = context.SeatConfigration.AsNoTracking().OrderBy(p => p.Airline).ThenBy(p => p.Type).ToArray();
            AppInfo            = context.AppInfo.SingleOrDefault();
            ReloadNamedSearchCondition(context);
            var tempop = context.Code.AsNoTracking().Where(p => p.CodeType == CodeType.OPERATION_CODE).OrderBy(p => p.Key).ToList();

            tempop.ForEach(o => {
                if (OperationCode.PRE_OPERATION.Contains(o.Key))
                {
                    o.OptGroup = "運用前";
                }
                else if (OperationCode.IN_OPERATION.Contains(o.Key))
                {
                    o.OptGroup = "運用中";
                }
                else if (OperationCode.RETIRE.Contains(o.Key))
                {
                    o.OptGroup = "退役";
                }
                else if (OperationCode.OTHERS.Contains(o.Key))
                {
                    o.OptGroup = "その他";
                }
            });
            _operation = tempop.ToArray();

            var airlineType = context.AircraftView.AsNoTracking().Select(av => new { av.Airline, av.TypeCode }).Distinct().OrderBy(av => av.Airline).ToList();

            _airlineType = new Dictionary <string, List <Type> >();
            string currentAirline = airlineType[0].Airline;
            var    typelist       = new List <Type>();

            foreach (var at in airlineType)
            {
                if (currentAirline != at.Airline)
                {
                    _airlineType.Add(currentAirline, typelist.OrderBy(t => t.DisplayOrder).ToList());
                    currentAirline = at.Airline;
                    typelist       = new List <Type>();
                }
                typelist.Add(_type.Where(t => t.TypeCode == at.TypeCode).SingleOrDefault());
            }
            //最後の1つを処理
            _airlineType.Add(currentAirline, typelist.OrderBy(t => t.DisplayOrder).ToList());
        }
Ejemplo n.º 17
0
 public HomeController(jafleetContext context, IConfiguration configuration)
 {
     _context       = context;
     _configuration = configuration;
 }
Ejemplo n.º 18
0
 public static void ReloadNamedSearchCondition(jafleetContext context)
 {
     _namedSearchCondition = context.SearchCondition.AsNoTracking().Where(sc => !string.IsNullOrEmpty(sc.SearchConditionName)).OrderBy(sc => sc.SearchConditionName).ToArray();
 }
Ejemplo n.º 19
0
 public NotWorkingInfoController(jafleetContext context)
 {
     _context = context;
 }
Ejemplo n.º 20
0
 public AircraftWithHistoryController(jafleetContext context)
 {
     _context = context;
 }