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); }
public LineBotApp(LineMessagingClient lineMessagingClient, jafleetContext context, ToolsContext toolsContext, IServiceScopeFactory serviceScopeFactory) { this.messagingClient = lineMessagingClient; _context = context; _tContext = toolsContext; _services = serviceScopeFactory; }
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(); }
public WorkingCheckLogController(jafleetContext context) { _context = context; }
public MessageController(jafleetContext context, IConfiguration configuration, IServiceScopeFactory serviceScopeFactory) { _context = context; _configuration = configuration; _services = serviceScopeFactory; }
public AircraftDetailController(jafleetContext context, IServiceScopeFactory serviceScopeFactory) { _context = context; _services = serviceScopeFactory; }
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); }
public SearchController(jafleetContext context, IServiceScopeFactory serviceScopeFactory) { _context = context; _services = serviceScopeFactory; }
public ReloadMasterController(jafleetContext context) { _context = context; }
public TypeController(jafleetContext context) { _context = context; }
public LineBotController(jafleetContext context, ToolsContext toolsContext, IServiceScopeFactory serviceScopeFactory) { _context = context; _tContext = toolsContext; _services = serviceScopeFactory; }
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}"); }
public AirlineGroupController(jafleetContext context) { _context = context; }
public CheckController(jafleetContext context) { _context = context; }
public logController(jafleetContext context) { _context = context; }
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()); }
public HomeController(jafleetContext context, IConfiguration configuration) { _context = context; _configuration = configuration; }
public static void ReloadNamedSearchCondition(jafleetContext context) { _namedSearchCondition = context.SearchCondition.AsNoTracking().Where(sc => !string.IsNullOrEmpty(sc.SearchConditionName)).OrderBy(sc => sc.SearchConditionName).ToArray(); }
public NotWorkingInfoController(jafleetContext context) { _context = context; }
public AircraftWithHistoryController(jafleetContext context) { _context = context; }