public void ImportAdTAskCArdOrCrateNew() { var env = GetEnviroment(); var itemRelationCore = new ItemsRelationsDataAccess(env); var aircraftCore = new AircraftsCore(env.Loader, env.NewKeeper, null); var directiveCore = new DirectiveCore(env.NewKeeper, env.NewLoader, env.Keeper, env.Loader, itemRelationCore); var componentCore = new ComponentCore(env, env.Loader, env.NewLoader, env.NewKeeper, aircraftCore, itemRelationCore); var aircraftId = 2336; var aircraft = env.NewLoader.GetObject <AircraftDTO, Aircraft>(new Filter("ItemId", aircraftId)); var directiveList = directiveCore.GetDirectives(aircraft, DirectiveType.AirworthenessDirectives); var bd = componentCore.GetAicraftBaseComponents(aircraftId, BaseComponentType.Frame.ItemId).LastOrDefault(); var d = new DirectoryInfo(@"D:\Work\doc\ALL AD 757 13 Feb 2019 1111\FAA 757"); var files = d.GetFiles(); foreach (var file in files) { var name = file.Name.Replace(" ", "").Replace(".pdf", ""); var directive = directiveList.FirstOrDefault(i => i.Title.Contains(name)); if (directive != null) { var _fileData = UsefulMethods.GetByteArrayFromFile(file.FullName); var attachedFile = new AttachedFile { FileData = _fileData, FileName = file.Name, FileSize = _fileData.Length }; directive.ADNoFile = attachedFile; env.NewKeeper.Save(directive); } else { var newDirective = new Directive { Title = name, DirectiveType = DirectiveType.AirworthenessDirectives, ADType = ADType.Airframe, HiddenRemarks = "NEW", IsApplicability = true, ParentBaseComponent = bd }; var _fileData = UsefulMethods.GetByteArrayFromFile(file.FullName); var attachedFile = new AttachedFile { FileData = _fileData, FileName = file.Name, FileSize = _fileData.Length }; newDirective.ADNoFile = attachedFile; env.NewKeeper.Save(newDirective); } } }
public void ImportAdTAskCArd() { var env = GetEnviroment(); var itemRelationCore = new ItemsRelationsDataAccess(env); var directiveCore = new DirectiveCore(env.NewKeeper, env.NewLoader, env.Keeper, env.Loader, itemRelationCore); var aircraft = env.NewLoader.GetObject <AircraftDTO, Aircraft>(new Filter("ItemId", 2348)); var directiveList = directiveCore.GetDirectives(aircraft, DirectiveType.AirworthenessDirectives); var d = new DirectoryInfo(@"H:\CRJ200 27.02.18 AD"); var files = d.GetFiles(); foreach (var mpd in directiveList) { var file = files.FirstOrDefault(f => mpd.Title.Contains(f.Name.Replace(" ", "").Replace(".pdf", ""))); if (file != null) { var _fileData = UsefulMethods.GetByteArrayFromFile(file.FullName); var attachedFile = new AttachedFile { FileData = _fileData, FileName = file.Name, FileSize = _fileData.Length }; mpd.ADNoFile = attachedFile; env.NewKeeper.Save(mpd); } } }
public void Kit() { var env = GetEnviroment(); var itemRelationCore = new ItemsRelationsDataAccess(env); var directiveCore = new DirectiveCore(env.NewKeeper, env.NewLoader, env.Keeper, env.Loader, itemRelationCore); var aircraftfrom = env.NewLoader.GetObject <AircraftDTO, Aircraft>(new Filter("ItemId", 2345)); var directivesfrom = directiveCore.GetDirectives(aircraftfrom, DirectiveType.All); var aircraftto = env.NewLoader.GetObject <AircraftDTO, Aircraft>(new Filter("ItemId", 2347)); var directivesfTo = directiveCore.GetDirectives(aircraftto, DirectiveType.All); foreach (var dir in directivesfrom.Where(i => i.Kits.Count > 0)) { Trace.WriteLine(dir.ToString()); var find = directivesfTo.FirstOrDefault(i => i.Title == dir.Title); Trace.WriteLine(find?.ToString() ?? "!!!!!!!!!!!!!!!!!!!!!!!!!!"); if (find != null) { foreach (var kit in dir.Kits) { var kitCopy = kit.GetCopyUnsaved(); kitCopy.ParentId = find.ItemId; env.Keeper.Save(kitCopy); Trace.WriteLine(kitCopy.ToString()); } } Trace.WriteLine(""); } }
public void ImportReliability() { string reg = ""; DateTime date = new DateTime(); string flNum = ""; var env = GetEnviroment(); var aircraftCore = new AircraftsCore(env.Loader, env.NewKeeper, env.NewLoader); var itemRelationCore = new ItemsRelationsDataAccess(env); var directiveCore = new DirectiveCore(env.NewKeeper, env.NewLoader, env.Keeper, env.Loader, itemRelationCore); var aircraftFlightCore = new AircraftFlightCore(env, env.Loader, env.NewLoader, directiveCore, env.Manipulator, null, env.NewKeeper, aircraftCore); var discrepanciesCore = new DiscrepanciesCore(env.Loader, env.NewLoader, directiveCore, aircraftFlightCore); aircraftCore.LoadAllAircrafts(); var res = discrepanciesCore.GetDiscrepancies().ToArray(); foreach (var discrepancy in res) { discrepancy.ParentFlight.Aircraft = aircraftCore.GetAircraftById(discrepancy.ParentFlight.AircraftId); } //Экспортируем полеты в Dataset из Excel файла var ds = ExcelToDataTableUsingExcelDataReader(@"H:\1.xlsx"); foreach (DataTable table in ds.Tables) { foreach (DataRow row in table.Rows) { if (!string.IsNullOrEmpty(row[0].ToString()) && !string.IsNullOrEmpty(row[1].ToString())) { reg = row[0].ToString(); date = DateTime.Parse(row[1].ToString()); flNum = $"{row[5]}"; } var find = res.Where(i => i.ParentFlight.Aircraft != null).FirstOrDefault(i => i.ParentFlight.FlightNumber.FullName.Contains(flNum) && i.ParentFlight.FlightDate.Date.Equals(date.Date) && i.ParentFlight.Aircraft.RegistrationNumber.Contains(reg)); if (find != null) { if (!string.IsNullOrEmpty(row[6].ToString())) { find.FDR += $"{row[6]} | {row[7]} | {row[8]} | {row[9]} "; env.NewKeeper.Save(find); } Trace.WriteLine($"{reg} = {find.ParentFlight.Aircraft.RegistrationNumber} | {flNum} = {find.ParentFlight.FlightNumber} | {date} = {find.ParentFlight.FlightDate.Date}"); } } } }
public void CopyAircraft() { var env = GetEnviroment(); var aircraftCore = new AircraftsCore(env.Loader, env.NewKeeper, env.NewLoader); var itemRelationCore = new ItemsRelationsDataAccess(env); var componentCore = new ComponentCore(env, env.Loader, env.NewLoader, env.NewKeeper, aircraftCore, itemRelationCore); var directiveCore = new DirectiveCore(env.NewKeeper, env.NewLoader, env.Keeper, env.Loader, itemRelationCore); var maintenanceCore = new MaintenanceCore(env, env.NewLoader, env.NewKeeper, itemRelationCore, aircraftCore); var newBaseComponent = new List <BaseComponent>(); var newComponents = new List <Entities.General.Accessory.Component>(); var directives = new List <Directive>(); var maintenanceDirective = new List <MaintenanceDirective>(); //Грузим ВС, делаем с него копию и сохраняем var aircrafts = env.NewLoader.GetObject <AircraftDTO, Aircraft>(new Filter("ItemId", 2346), true); var newAircraft = aircrafts.GetCopyUnsaved(); //newAircraft.RegistrationNumber += "- COPY"; env.NewKeeper.Save(newAircraft); //Грузим базовые агрегаты ВС, делаем с копии и сохраняем var baseComponents = new BaseComponentCollection(componentCore.GetAicraftBaseComponents(aircrafts.ItemId)); LoadDocuments(baseComponents, env); foreach (var baseComponent in baseComponents) { var newComponent = (BaseComponent)baseComponent.GetCopyUnsaved(); newComponent.ParentAircraftId = newAircraft.ItemId; env.NewKeeper.Save(newComponent); newBaseComponent.Add(newComponent); foreach (var transferRecord in baseComponent.TransferRecords) { var newTransferRecord = transferRecord.GetCopyUnsaved(); if (newTransferRecord.DestinationObjectType == SmartCoreType.Aircraft) { newTransferRecord.DestinationObjectId = newAircraft.ItemId; } newTransferRecord.ParentId = newComponent.ItemId; env.NewKeeper.Save(newTransferRecord); } foreach (var componentDirective in baseComponent.ComponentDirectives) { var newcomponentDirective = componentDirective.GetCopyUnsaved(); newcomponentDirective.ComponentId = newComponent.ItemId; env.NewKeeper.Save(newcomponentDirective); } } //Грузим агрегаты ВС, делаем с копии и сохраняем var components = componentCore.GetComponents(aircrafts.ItemId); foreach (var component in components) { var newComponent = component.GetCopyUnsaved(); newComponent.ParentAircraftId = newAircraft.ItemId; env.NewKeeper.Save(newComponent); newComponents.Add(newComponent); foreach (var transferRecord in component.TransferRecords) { var newTransferRecord = transferRecord.GetCopyUnsaved(); if (newTransferRecord.DestinationObjectType == SmartCoreType.BaseComponent) { newTransferRecord.DestinationObjectId = newBaseComponent.FirstOrDefault(b => b.SerialNumber == ((BaseComponent)newTransferRecord.DestinationObject).SerialNumber).ItemId; } newTransferRecord.ParentId = newComponent.ItemId; env.NewKeeper.Save(newTransferRecord); } foreach (var componentDirective in component.ComponentDirectives) { var newcomponentDirective = componentDirective.GetCopyUnsaved(); newcomponentDirective.ComponentId = newComponent.ItemId; env.NewKeeper.Save(newcomponentDirective); } } //Грузим директивы ВС, делаем с копии и сохраняем directives.Clear(); directives.AddRange(directiveCore.GetDirectives(aircrafts, DirectiveType.All)); foreach (var directive in directives) { var newDirective = directive.GetCopyUnsaved(); newDirective.ParentBaseComponent = newBaseComponent.FirstOrDefault(b => b.SerialNumber == newDirective.ParentBaseComponent.SerialNumber); newDirective.PerformanceRecords.Clear(); newDirective.CategoriesRecords.Clear(); env.NewKeeper.Save(newDirective); } //Грузим MPD ВС, делаем с копии и сохраняем maintenanceDirective.Clear(); maintenanceDirective.AddRange(maintenanceCore.GetMaintenanceDirectives(aircrafts)); foreach (var directive in maintenanceDirective) { var newDirective = directive.GetCopyUnsaved(); if (directive.ParentBaseComponent != null) { newDirective.ParentBaseComponent = newBaseComponent.FirstOrDefault(b => b.SerialNumber == directive.ParentBaseComponent.SerialNumber); } newDirective.PerformanceRecords.Clear(); newDirective.CategoriesRecords.Clear(); env.NewKeeper.Save(newDirective); } }
/* public static Presenters Presenters * { * get { return presenters; } * }*/ static Program() { var exePath = Path.GetDirectoryName(Application.ExecutablePath); var path = Path.Combine(exePath, "AppSettings.json"); var json = File.ReadAllText(path); GlobalObjects.Config = JsonConvert.DeserializeObject <JObject>(json); AuditContext auditContext = null; try { auditContext = new AuditContext((string)GlobalObjects.Config["ConnectionStrings"]["Audit"]); } catch {} GlobalObjects.AuditRepository = new AuditRepository(auditContext); GlobalObjects.AuditContext = auditContext; var environment = DbTypes.CasEnvironment = new CasEnvironment(); environment.AuditRepository = GlobalObjects.AuditRepository; environment.ApiProvider = new ApiProvider((string)GlobalObjects.Config["ConnectionStrings"]["ScatTest"]); var nonRoutineJobDataAccess = new NonRoutineJobDataAccess(environment.Loader, environment.Keeper); var itemsRelationsDataAccess = new ItemsRelationsDataAccess(environment); var filesDataAccess = new FilesDataAccess(environment.NewLoader); var workPackageRecordsDataAccess = new WorkPackageRecordsDataAccess(environment); var storeService = new StoreCore(environment); var aircraftService = new AircraftsCore(environment.Loader, environment.NewKeeper, environment.NewLoader); var compontntService = new ComponentCore(environment, environment.Loader, environment.NewLoader, environment.NewKeeper, aircraftService, itemsRelationsDataAccess); var averageUtilizationService = new AverageUtilizationCore(aircraftService, storeService, compontntService); var directiveService = new DirectiveCore(environment.NewKeeper, environment.NewLoader, environment.Keeper, environment.Loader, itemsRelationsDataAccess); var aircraftFlightService = new AircraftFlightCore(environment, environment.Loader, environment.NewLoader, directiveService, environment.Manipulator, compontntService, environment.NewKeeper, aircraftService); var flightTrackService = new FlightTrackCore(environment.NewLoader, environment.Loader, environment); var calculator = new Calculator(environment, compontntService, aircraftFlightService, aircraftService); var mtopCalculator = new MTOPCalculator(calculator, aircraftService, averageUtilizationService); var planOpsCalculator = new PlanOpsCalculator(environment.NewLoader, environment.NewKeeper, aircraftService, flightTrackService); var performanceCalculator = new PerformanceCalculator(calculator, averageUtilizationService, mtopCalculator); var packageService = new PackagesCore(environment, environment.NewKeeper, environment.Loader, aircraftService, compontntService); var purchaseService = new PurchaseCore(environment, environment.NewLoader, environment.Loader, packageService, environment.NewKeeper, performanceCalculator); var calcStockService = new StockCalculator(environment, environment.NewLoader, compontntService); var documentService = new DocumentCore(environment, environment.NewLoader, environment.Loader, aircraftService, environment.NewKeeper, compontntService); var maintenanceService = new MaintenanceCore(environment, environment.NewLoader, environment.NewKeeper, itemsRelationsDataAccess, aircraftService); var maintenanceCheckCalculator = new MaintenanceCheckCalculator(calculator, averageUtilizationService, performanceCalculator); var analystService = new AnalystCore(compontntService, maintenanceService, directiveService, maintenanceCheckCalculator, performanceCalculator); var discrepanciesService = new DiscrepanciesCore(environment.Loader, environment.NewLoader, directiveService, aircraftFlightService); var kitsService = new KitsCore(environment, environment.Loader, environment.NewKeeper, compontntService, nonRoutineJobDataAccess); var smsService = new SMSCore(environment.Manipulator); var personelService = new PersonnelCore(environment); var transferRecordCore = new TransferRecordCore(environment.NewLoader, environment.NewKeeper, compontntService, aircraftService, calculator, storeService, filesDataAccess); var bindedItemsService = new BindedItemsCore(compontntService, directiveService, maintenanceService); var performanceService = new PerformanceCore(environment.NewKeeper, environment.Keeper, calculator, bindedItemsService); var workPackageService = new WorkPackageCore(environment, environment.NewLoader, maintenanceService, environment.NewKeeper, calculator, compontntService, aircraftService, nonRoutineJobDataAccess, directiveService, filesDataAccess, performanceCalculator, performanceService, bindedItemsService, workPackageRecordsDataAccess, mtopCalculator, averageUtilizationService); var nonRoutineJobService = new NonRoutineJobCore(environment, workPackageService, nonRoutineJobDataAccess, environment.NewLoader); var auditService = new AuditCore(environment, environment.Loader, environment.NewLoader, environment.NewKeeper, calculator, performanceCalculator, performanceService); DbTypes.AircraftsCore = aircraftService; GlobalObjects.CasEnvironment = environment; GlobalObjects.PackageCore = packageService; GlobalObjects.PurchaseCore = purchaseService; GlobalObjects.ComponentCore = compontntService; GlobalObjects.AnalystCore = analystService; GlobalObjects.StockCalculator = calcStockService; GlobalObjects.DocumentCore = documentService; GlobalObjects.AuditCore = auditService; GlobalObjects.MaintenanceCore = maintenanceService; GlobalObjects.WorkPackageCore = workPackageService; GlobalObjects.NonRoutineJobCore = nonRoutineJobService; GlobalObjects.DirectiveCore = directiveService; GlobalObjects.AircraftFlightsCore = aircraftFlightService; GlobalObjects.DiscrepanciesCore = discrepanciesService; GlobalObjects.KitsCore = kitsService; GlobalObjects.SmsCore = smsService; GlobalObjects.PersonnelCore = personelService; GlobalObjects.TransferRecordCore = transferRecordCore; GlobalObjects.AircraftsCore = aircraftService; GlobalObjects.ItemsRelationsDataAccess = itemsRelationsDataAccess; GlobalObjects.StoreCore = storeService; GlobalObjects.BindedItemsCore = bindedItemsService; GlobalObjects.AverageUtilizationCore = averageUtilizationService; GlobalObjects.MaintenanceCheckCalculator = maintenanceCheckCalculator; GlobalObjects.MTOPCalculator = mtopCalculator; GlobalObjects.PerformanceCalculator = performanceCalculator; GlobalObjects.PlanOpsCalculator = planOpsCalculator; GlobalObjects.PerformanceCore = performanceService; GlobalObjects.FlightTrackCore = flightTrackService; environment.SetAircraftCore(aircraftService); environment.Calculator = calculator; environment.Manipulator.PurchaseService = GlobalObjects.PurchaseCore; environment.Manipulator.MaintenanceCore = GlobalObjects.MaintenanceCore; environment.Manipulator.WorkPackageCore = GlobalObjects.WorkPackageCore; environment.Manipulator.AircraftFlightCore = GlobalObjects.AircraftFlightsCore; environment.Manipulator.ComponentCore = GlobalObjects.ComponentCore; environment.Manipulator.AircraftsCore = GlobalObjects.AircraftsCore; environment.Manipulator.BindedItemCore = GlobalObjects.BindedItemsCore; InitLoadingVariants(); InitializePresenters(); }
public void GetBindedItemsForMpd() { const int aircraftId = 2316; // Воздушное судно 4LimaTest //инициализация core - ов var enviroment = GetEnviroment(); var itemRelationDA = new ItemsRelationsDataAccess(enviroment); var airctaftCore = new AircraftsCore(enviroment.Loader, enviroment.NewKeeper, enviroment.NewLoader); airctaftCore.LoadAllAircrafts(); var componentCore = new ComponentCore(enviroment, enviroment.Loader, enviroment.NewLoader, enviroment.NewKeeper, airctaftCore, itemRelationDA); var directiveCore = new DirectiveCore(enviroment.NewKeeper, enviroment.NewLoader, enviroment.Keeper, enviroment.Loader, itemRelationDA); var maintenanceCore = new MaintenanceCore(enviroment, enviroment.NewLoader, enviroment.NewKeeper, itemRelationDA, null); var bindedItemCore = new BindedItemsCore(componentCore, directiveCore, maintenanceCore); //Загрузка базового компонента для того что бы привязать его к mpd и ad var baseDetail = enviroment.BaseComponents.FirstOrDefault(x => x.ParentAircraftId == aircraftId); var detail = componentCore.GetComponents(baseDetail).FirstOrDefault(); var mpd = new MaintenanceDirective { ParentBaseComponent = baseDetail }; var dd = new ComponentDirective { ComponentId = detail.ItemId, Remarks = "DDTest" }; var ad = new Directive { ParentBaseComponent = baseDetail, Remarks = "ADTest" }; enviroment.NewKeeper.Save(dd); enviroment.NewKeeper.Save(ad); enviroment.NewKeeper.Save(mpd); mpd.ItemRelations.Add(new ItemsRelation { FirstItemId = mpd.ItemId, FirtsItemTypeId = mpd.SmartCoreObjectType.ItemId, SecondItemId = dd.ItemId, SecondItemTypeId = dd.SmartCoreObjectType.ItemId, RelationTypeId = WorkItemsRelationType.CalculationAffect }); mpd.ItemRelations.Add(new ItemsRelation { FirstItemId = mpd.ItemId, FirtsItemTypeId = mpd.SmartCoreObjectType.ItemId, SecondItemId = ad.ItemId, SecondItemTypeId = ad.SmartCoreObjectType.ItemId, RelationTypeId = WorkItemsRelationType.CalculationAffect }); foreach (var itemRelation in mpd.ItemRelations) { enviroment.NewKeeper.Save(itemRelation); } var bindedItemsADOnly = bindedItemCore.GetBindedItemsFor(aircraftId, new[] { mpd }, new [] { SmartCoreType.Directive.ItemId }); var bindedItemsDDOnly = bindedItemCore.GetBindedItemsFor(aircraftId, new[] { mpd }, new [] { SmartCoreType.ComponentDirective.ItemId }); var bindedItemsAll = bindedItemCore.GetBindedItemsFor(aircraftId, new[] { mpd }); foreach (var itemRelation in mpd.ItemRelations) { enviroment.NewKeeper.Delete(itemRelation); } enviroment.NewKeeper.Delete(mpd); enviroment.NewKeeper.Delete(dd); enviroment.NewKeeper.Delete(ad); Assert.IsTrue(bindedItemsADOnly[mpd].Count == 1); var forCheckAd = (Directive)bindedItemsADOnly[mpd].Single(); Assert.AreEqual(forCheckAd.Remarks, ad.Remarks); Assert.IsTrue(bindedItemsDDOnly[mpd].Count == 1); var forCheckDd = (ComponentDirective)bindedItemsDDOnly[mpd].Single(); Assert.AreEqual(forCheckDd.Remarks, dd.Remarks); Assert.IsTrue(bindedItemsAll[mpd].Count == 2); }
public void FindFlights() { var env = GetEnviroment(); var aircraftCore = new AircraftsCore(env.Loader, env.NewKeeper, env.NewLoader); var itemRelationCore = new ItemsRelationsDataAccess(env); var directiveCore = new DirectiveCore(env.NewKeeper, env.NewLoader, env.Keeper, env.Loader, itemRelationCore); var componentCore = new ComponentCore(env, env.Loader, env.NewLoader, env.NewKeeper, aircraftCore, itemRelationCore); var aircraftFlightCore = new AircraftFlightCore(env, env.Loader, env.NewLoader, directiveCore, env.Manipulator, componentCore, env.NewKeeper, aircraftCore); aircraftFlightCore.LoadAircraftFlights(2344); var flights = aircraftFlightCore.GetAircraftFlightsByAircraftId(2343); var codes = env.GetDictionary <AirportsCodes>().ToArray().Cast <AirportsCodes>(); var flightNums = env.GetDictionary <FlightNum>().Cast <FlightNum>().ToList(); //Экспортируем полеты в Dataset из Excel файла var ds = ExcelToDataTableUsingExcelDataReader(@"H:\007.xlsx", false); int time = 0; foreach (DataTable table in ds.Tables) { foreach (DataRow row in table.Rows) { var pageNo = row[0].ToString(); AirportsCodes stationFromId = AirportsCodes.Unknown; AirportsCodes stationToId = AirportsCodes.Unknown; if (row[3] != null) { stationFromId = codes.FirstOrDefault(c => c.ShortName.ToUpper() == row[3].ToString().Trim().ToUpper()); } if (row[4] != null) { stationToId = codes.FirstOrDefault(c => c.ShortName.ToUpper() == row[4].ToString().Trim().ToUpper()); } var dateOut = DateTime.Parse(row[5].ToString()); var dateIn = DateTime.Parse(row[6].ToString()); var outTime = (int)dateOut.TimeOfDay.TotalMinutes; var inTime = (int)dateIn.TimeOfDay.TotalMinutes; var takeOffTime = outTime; var lDGTime = inTime; DateTime res; if (!DateTime.TryParse(row[1].ToString(), out res)) { Trace.WriteLine($"!!!!!!!!!Нету: {pageNo} | {row[1]} | {row[3]} - {row[4]} | ({outTime}-{inTime})"); if (outTime > inTime) { time += outTime - inTime; } else { time += inTime - outTime; } continue; } var flightDate = DateTime.Parse(row[1].ToString()); var find = flights.Where(i => i.PageNo == pageNo); if (!find.Any()) { Trace.WriteLine($"Нету: {pageNo} | {flightDate} | {row[3]} - {row[4]} | ({outTime}-{inTime})"); time += inTime - outTime; } } Trace.WriteLine(time); } }