/// <summary> /// Создает несохраненного клона (Itemid которого =-1) переданного элемента /// </summary> /// <param name="toCopy">Элемент для клонирования (иожет быть равен null)</param> /// <returns>Склонированный элемент или элемент по умолчанию</returns> public DirectiveRecord(DirectiveRecord toCopy) : this() { if (toCopy == null) { return; } Completed = toCopy.Completed; Dispatched = toCopy.Dispatched; MaintenanceOrganization = toCopy.MaintenanceOrganization; ODR = toCopy.ODR; _onLifelength = toCopy.OnLifelength; _parent = toCopy.Parent; _parentId = toCopy.ParentId; _parentType = toCopy.ParentType; _performanceNum = toCopy.PerformanceNum; _recordDate = toCopy.RecordDate; RecordTypeId = toCopy.RecordTypeId; Reference = toCopy.Reference; _remarks = toCopy.Remarks; _directivePackage = toCopy.DirectivePackage; _directivePackageId = toCopy.DirectivePackageId; _attachedFile = toCopy.AttachedFile; }
/* * Методы */ #region public ActualStateRecord() /// <summary> /// Создает воздушное судно без дополнительной информации /// </summary> public ActualStateRecord() { ItemId = -1; _workRegime = FlightRegime.UNK; _workRegimeType = SmartCoreType.FlightRegime; SmartCoreObjectType = SmartCoreType.ActualStateRecord; }
/// <summary> /// Возвращает количество записей о выполнении /// </summary> /// <typeparam name="T">Тип записей (DirectiveRecord, MaintenanceCheckRecord и т.д.)</typeparam> /// <param name="parentType">Тип родителя (Directive, ComponentDirective, MaintenanceCheck)</param> /// <param name="parentId"></param> /// <returns></returns> public int GetCountPerformanceRecords <T>(SmartCoreType parentType, int parentId) where T : AbstractPerformanceRecord { var qr = BaseQueries.GetCountPerformancesQuery <T>(parentType, parentId); var ds = _casEnvironment.Execute(qr); var result = (int)ds.Tables[0].Rows[0][0]; // возвращаем результат return(result); }
/// <summary> /// /// </summary> /// <typeparam name="T">Тип записей (DirectiveRecord, MaintenanceCheckRecord и т.д.)</typeparam> /// <param name="parentType">Тип родителя (Directive, ComponentDirective, MaintenanceCheck и т.д.)</param> /// <param name="parentId">Идентификатор родителя</param> /// <param name="lastOnly">True - грузится только последняя запись о выполнении</param> /// <returns></returns> public T GetPerformances <T>(SmartCoreType parentType, int parentId, bool lastOnly = false) where T : AbstractPerformanceRecord, new() { var qr = BaseQueries.GetPerformancesQuery <T>(parentType, parentId, lastOnly); var ds = _casEnvironment.Execute(qr); var result = BaseQueries.GetObjectList <T>(ds.Tables[0])[0]; // возвращаем результат return(result); }
///<summary> ///</summary> public ReplaceComponentFormItem(Component replacedComponent, Component replacedByComponent, SmartCoreType parentType) { _parentComponent = replacedComponent; _replacedByComponent = replacedByComponent; _parentType = parentType; ConfirmTransfer = true; InitializeComponent(); }
///<summary> ///</summary> public ReplaceComponentForm(ComponentCollection replacedComponents, ComponentCollection replacedByComponents, ReplaceComponentFormItem[] replacedItems, SmartCoreType parentType) { _replacedComponents = replacedComponents; _replacedByComponents = replacedByComponents; _replaceItems = replacedItems; _parentType = parentType; InitializeComponent(); UpdateInformation(); }
protected override async void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e) { _initial.Clear(); _result.Clear(); AnimatedThreadWorker.ReportProgress(0, "load Activities"); try { List <AuditEntity> activity = new List <AuditEntity>(); if (_operatorId > 0) { activity = GlobalObjects.AuditContext.AuditCollection .FindSync(i => i.Date >= dateTimePickerDateFrom.Value && i.Date <= dateTimePickerDateTo.Value && i.OperatorId == _operatorId) .ToList(); } else { activity = GlobalObjects.AuditContext.AuditCollection .FindSync(i => i.Date >= dateTimePickerDateFrom.Value && i.Date <= dateTimePickerDateTo.Value) .ToList(); } var users = GlobalObjects.CaaEnvironment.ApiProvider.GetAllUsersAsync(); foreach (var bsonElement in activity) { Enum.TryParse(bsonElement.Action, out AuditOperation myStatus); var userr = users.FirstOrDefault(i => i.ItemId == bsonElement.UserId); _initial.Add(new ActivityDTO() { Date = bsonElement.Date, User = userr != null ? new User(userr): new User() { Name = $"Deleted User with Id:{bsonElement.UserId}" }, Operation = myStatus, ObjectId = bsonElement.ObjectId, Type = SmartCoreType.GetSmartCoreTypeById(bsonElement.ObjectTypeId), Information = bsonElement.AdditionalParameters?.Count > 0 ? string.Join(",", bsonElement.AdditionalParameters.Select(i => i.Value.ToString())) : "" }); } } catch (Exception ex) { Program.Provider.Logger.Log("Error while load documents", ex); } AnimatedThreadWorker.ReportProgress(70, "filter documents"); FilterItems(_initial, _result); AnimatedThreadWorker.ReportProgress(100, "Complete"); }
///<summary> ///</summary> public ReplaceComponentFormItem(Component replacedComponent, Component replacedByComponent, TransferRecord replacedTransfer, TransferRecord replacedByTransfer, SmartCoreType parentType) { _parentComponent = replacedComponent; _parentDetailTransfer = replacedTransfer; _replacedByComponent = replacedByComponent; _replacedDetailByTransfer = replacedByTransfer; _parentType = parentType; ConfirmTransfer = true; InitializeComponent(); }
/// <summary> /// Создает воздушное судно без дополнительной информации /// </summary> public ActualStateRecord(ActualStateRecord toCopy) : this() { if (toCopy == null) { return; } ComponentId = toCopy.ComponentId; _onLifelength = new Lifelength(toCopy.OnLifelength); ParentComponent = toCopy.ParentComponent; _recordDate = toCopy.RecordDate.Date; _remarks = toCopy.Remarks; _workRegime = toCopy.WorkRegime; _workRegimeType = toCopy.WorkRegimeType; }
/// <summary> /// Возвращает все записи об удалении агрегатов с данного склада /// </summary> /// <returns></returns> public TransferRecordCollection GetLastTransferRecordsFrom(Store store, SmartCoreType componentType) { if (store == null) { return(null); } var transferRecords = _newLoader.GetObjectListAll <TransferRecordDTO, TransferRecord>(new List <Filter>() { new Filter("ParentType", componentType.ItemId), new Filter("FromStoreID", store.ItemId), new Filter("PODR", false) }, true).OrderByDescending(t => t.TransferDate); var collection = new TransferRecordCollection(transferRecords.ToArray()); // возвращаем результат SetParents(collection); return(collection); }
/// <summary> /// Создает воздушное судно без дополнительной информации /// </summary> public ComponentLLPCategoryChangeRecord(ComponentLLPCategoryChangeRecord toCopy) : this() { if (toCopy == null) { return; } _file = toCopy.AttachedFile; _onLifelength = new Lifelength(toCopy.OnLifelength); ParentComponent = toCopy.ParentComponent; _parentId = toCopy.ParentId; _parentType = toCopy.ParentType; _performanceNum = toCopy.PerformanceNum; _remarks = toCopy.Remarks; ToCategory = toCopy.ToCategory; _wpId = toCopy.DirectivePackageId; _directivePackage = toCopy.DirectivePackage; }
/// <summary> /// Создает несохраненного клона (Itemid которого =-1) переданного элемента /// </summary> /// <param name="toCopy">Элемент для клонирования (иожет быть равен null)</param> /// <returns>Склонированный элемент или элемент по умолчанию</returns> public DirectiveRecord(AbstractPerformanceRecord toCopy) : this() { if (toCopy == null) { return; } _onLifelength = toCopy.OnLifelength; _parent = toCopy.Parent; _parentId = toCopy.ParentId; _parentType = toCopy.ParentType; _performanceNum = toCopy.PerformanceNum; _recordDate = toCopy.RecordDate; _remarks = toCopy.Remarks; _directivePackage = toCopy.DirectivePackage; _directivePackageId = toCopy.DirectivePackageId; _attachedFile = toCopy.AttachedFile; }
///<summary> ///Конструктор заполняющий всю необходимую информацию о переданном объекте ///</summary> public TransferedComponentForm(IEnumerable <Component> removedDetails, IEnumerable <TransferRecord> removedTransfers, IEnumerable <Component> waitRemoveDetails, IEnumerable <TransferRecord> waitRemoveTransfers, IEnumerable <Component> installedDetails, IEnumerable <TransferRecord> installedTransfers, SmartCoreType parentType) : this() { _removedComponents = new ComponentCollection(); _removedComponents.AddRange(removedDetails); _removedTransfers = new TransferRecordCollection(); _removedTransfers.AddRange(removedTransfers); _waitremovedConfirmComponents = new ComponentCollection(); _waitremovedConfirmComponents.AddRange(waitRemoveDetails); _waitRemovedTransfers = new TransferRecordCollection(); _waitRemovedTransfers.AddRange(waitRemoveTransfers); _installedComponents = new ComponentCollection(); _installedComponents.AddRange(installedDetails); _installedTransfers = new TransferRecordCollection(); _installedTransfers.AddRange(installedTransfers); _parentType = parentType; UpdateInformation(); }
protected override async void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e) { _initial.Clear(); _result.Clear(); AnimatedThreadWorker.ReportProgress(0, "load Activities"); try { var activity = GlobalObjects.AuditContext.AuditCollection .FindSync(i => i.Date >= dateTimePickerDateFrom.Value && i.Date <= dateTimePickerDateTo.Value) .ToList(); var users = GlobalObjects.CasEnvironment.ApiProvider.GetAllUsersAsync(); foreach (var bsonElement in activity) { Enum.TryParse(bsonElement.Action, out AuditOperation myStatus); var userr = users.FirstOrDefault(i => i.ItemId == bsonElement.UserId); _initial.Add(new ActivityDTO() { Date = bsonElement.Date, User = userr != null ? new User(userr): new User() { Name = $"Deleted User with Id:{bsonElement.UserId}" }, Operation = myStatus, ObjectId = bsonElement.ObjectId, Type = SmartCoreType.GetSmartCoreTypeById(bsonElement.ObjectTypeId), Information = bsonElement.AdditionalParameters?.Count > 0 ? string.Join(",", bsonElement.AdditionalParameters.Select(i => i.Value.ToString())) : "" }); } AnimatedThreadWorker.ReportProgress(50, "load Parents"); foreach (var obj in _initial.GroupBy(i => i.Type?.ItemId)) { if (obj.Key == SmartCoreType.WorkPackage.ItemId) { var ids = obj.Select(i => i.ObjectId); var wps = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <WorkPackageDTO, WorkPackage>(new Filter("ItemId", ids), getDeleted: true); foreach (var dto in obj) { var wp = wps.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (wp == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(wp.ParentId); dto.Title = wp.Title; } } else if (obj.Key == SmartCoreType.WorkPackageRecord.ItemId) { var ids = obj.Select(i => i.ObjectId); var wpr = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <WorkPackageRecordDTO, WorkPackageRecord>(new Filter("ItemId", ids), getDeleted: true); var wpIds = wpr.Select(i => i.WorkPakageId); var wps = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <WorkPackageDTO, WorkPackage>(new Filter("ItemId", wpIds), getDeleted: true); foreach (var dto in obj) { var wp = wps.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (wp == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(wp.ParentId); dto.Title = wp.Title; } } else if (obj.Key == SmartCoreType.MaintenanceDirective.ItemId) { var ids = obj.Select(i => i.ObjectId); var mpds = GlobalObjects.CasEnvironment.Loader.GetObjectList <MaintenanceDirective>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); foreach (var dto in obj) { var mpd = mpds.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (mpd == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(mpd.ParentBaseComponent.ParentAircraftId); dto.Title = mpd.Title; } } else if (obj.Key == SmartCoreType.Directive.ItemId) { var ids = obj.Select(i => i.ObjectId); var directives = GlobalObjects.CasEnvironment.Loader.GetObjectList <Directive>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); foreach (var dto in obj) { var directive = directives.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (directive == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(directive.ParentBaseComponent.ParentAircraftId); dto.Title = directive.Title; } } else if (obj.Key == SmartCoreType.DirectiveRecord.ItemId) { var ids = obj.Select(i => i.ObjectId); var directiveRecords = GlobalObjects.CasEnvironment.Loader.GetObjectList <DirectiveRecord>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); var directiveIds = directiveRecords.Select(i => i.ParentId); var directives = GlobalObjects.CasEnvironment.Loader.GetObjectList <Directive>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, directiveIds.ToArray()), getDeleted: true); foreach (var dto in obj) { var directive = directives.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (directive == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(directive.ParentBaseComponent.ParentAircraftId); dto.Title = directive.Title; } } else if (obj.Key == SmartCoreType.BaseComponent.ItemId) { var ids = obj.Select(i => i.ObjectId); var baseComponents = GlobalObjects.CasEnvironment.Loader.GetObjectList <BaseComponent>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); foreach (var dto in obj) { var baseComponent = baseComponents.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (baseComponent == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(baseComponent.ParentAircraftId); dto.Title = baseComponent.SerialNumber; } } else if (obj.Key == SmartCoreType.Component.ItemId) { var ids = obj.Select(i => i.ObjectId); var components = GlobalObjects.CasEnvironment.Loader.GetObjectList <SmartCore.Entities.General.Accessory.Component>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); foreach (var dto in obj) { var component = components.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (component == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(component.ParentAircraftId); dto.Title = component.SerialNumber; } } else if (obj.Key == SmartCoreType.ComponentDirective.ItemId) { var ids = obj.Select(i => i.ObjectId); var componentDirectives = GlobalObjects.CasEnvironment.Loader.GetObjectList <ComponentDirective>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); var componentIds = componentDirectives.Select(i => i.ComponentId); var components = GlobalObjects.CasEnvironment.Loader.GetObjectList <SmartCore.Entities.General.Accessory.Component>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, componentIds.ToArray()), getDeleted: true); foreach (var dto in obj) { var component = components.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (component == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(component.ParentAircraftId); dto.Title = component.SerialNumber; } } else if (obj.Key == SmartCoreType.AircraftFlight.ItemId) { var ids = obj.Select(i => i.ObjectId); var flights = GlobalObjects.CasEnvironment.Loader.GetObjectList <AircraftFlight>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); foreach (var dto in obj) { var flight = flights.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (flight == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(flight.AircraftId); dto.Title = flight.ToString(); } } else if (obj.Key == SmartCoreType.Discrepancy.ItemId) { var ids = obj.Select(i => i.ObjectId); var discrepancies = GlobalObjects.CasEnvironment.Loader.GetObjectList <Discrepancy>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, ids.ToArray()), getDeleted: true); var flIds = discrepancies.Select(i => i.FlightId); var flights = GlobalObjects.CasEnvironment.Loader.GetObjectList <AircraftFlight>(new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, flIds.ToArray()), getDeleted: true); foreach (var dto in obj) { var flight = flights.FirstOrDefault(i => i.ItemId == dto.ObjectId); if (flight == null) { continue; } dto.Aircraft = GlobalObjects.AircraftsCore.GetAircraftById(flight.AircraftId); dto.Title = flight.ToString(); } } } } catch (Exception ex) { Program.Provider.Logger.Log("Error while load documents", ex); } AnimatedThreadWorker.ReportProgress(70, "filter documents"); FilterItems(_initial, _result); AnimatedThreadWorker.ReportProgress(100, "Complete"); }
/// <summary> /// Создает запись о задаче в рабочем пакете на основе переданных параметров /// </summary> public WorkOrderRecord(int workPakageId, int directiveId, SmartCoreType directiveType) { DirectiveId = directiveId; ParentId = workPakageId; PackageItemType = directiveType; }
public static bool IsAllRelationWith(this IEnumerable <ItemsRelation> relationsCollection, SmartCoreType smartCoreType) { return(relationsCollection.All(i => i.FirtsItemTypeId == smartCoreType.ItemId || i.SecondItemTypeId == smartCoreType.ItemId)); }