public void SaveDocumentsList(BaseEntityObject parent, IList <Document> unsavedDocuments) { foreach (var unsavedDocument in unsavedDocuments) { _newKeeper.Save(unsavedDocument); } }
public void Save(BaseEntityObject value, bool saveAttachedFile = true, bool writeAudit = true) { if (_casEnvironment.IdentityUser.UserType == UsetType.ReadOnly) { return; } value.CorrectorId = _casEnvironment.IdentityUser.ItemId; value.Updated = DateTime.Now; var type = AuditOperation.Created; if (value.ItemId > 0) { type = AuditOperation.Changed; } var blType = value.GetType(); var dto = (DtoAttribute)blType.GetCustomAttributes(typeof(DtoAttribute), false).FirstOrDefault(); var method = typeof(INewKeeper).GetMethods().FirstOrDefault(i => i.Name == "SaveGeneric")?.MakeGenericMethod(blType, dto.Type); method.Invoke(this, new object[] { value, saveAttachedFile }); if (writeAudit) { _auditRepository.WriteAsync(value, type, _casEnvironment.IdentityUser); } }
///<summary> /// Создается объект, описывающий отображение добавления директивы ///</summary> /// <param name="directiveContainer">Родительский объект, в который добавляется директива</param> public OutOfPhaseReferenceScreen(BaseEntityObject directiveContainer) : this() { if (directiveContainer == null) { throw new ArgumentNullException("directiveContainer"); } _directiveType = DirectiveType.OutOfPhase; if (directiveContainer is BaseComponent) { var baseComponent = (BaseComponent)directiveContainer; _currentBaseComponent = baseComponent; _currentOutOfPhase = new Directive { ParentBaseComponent = baseComponent, DirectiveType = _directiveType }; } else { var aircraftFrame = GlobalObjects.ComponentCore.GetBaseComponentById(((Aircraft)directiveContainer).AircraftFrameId); _currentOutOfPhase = new Directive { ParentBaseComponent = aircraftFrame, DirectiveType = _directiveType }; } Initialize(); }
/// <summary> /// Заполняет listview элементами /// </summary> /// <param name="item">Массив элементов</param> public virtual void AddItem(BaseEntityObject item) { if (item == null) { throw new ArgumentNullException("item", "itemsArray can't be null"); } try { ListViewItem listViewItem = new ListViewItem(GetListViewSubItems(item), null) { Tag = item }; ListViewItemList.Add(listViewItem); ListViewItemList.Sort(new BaseListViewComparer(OldColumnIndex, SortMultiplier)); SetGroupsToItems(); SetItemColor(listViewItem, item); itemsListView.Items.Insert(ListViewItemList.IndexOf(listViewItem), listViewItem); SetTotalText(); } catch (Exception ex) { Program.Provider.Logger.Log("Error while building data", ex); return; } }
/// <summary> /// Заполняет listview элементами /// </summary> /// <param name="item">Массив элементов</param> public virtual void RemoveItem(BaseEntityObject item) { if (item == null) { throw new ArgumentNullException("item", "itemsArray can't be null"); } try { ListViewItem listViewItem = itemsListView.Items.OfType <ListViewItem>() .FirstOrDefault(i => i.Tag is BaseEntityObject && ((BaseEntityObject)i.Tag).ItemId == item.ItemId && ((BaseEntityObject)i.Tag).SmartCoreObjectType.Equals(item.SmartCoreObjectType)); if (listViewItem != null) { ListViewItemList.Remove(listViewItem); itemsListView.Items.Remove(listViewItem); } SetTotalText(); } catch (Exception ex) { Program.Provider.Logger.Log("Error while building data", ex); return; } }
public Lifelength GetFlightLifelengthOnStartOfDay(BaseEntityObject source, DateTime effDate) { if (source == null) { return(Lifelength.Null); } if (source is Operator) { if (effDate.Date <= DateTimeExtend.GetCASMinDateTime()) { return(Lifelength.Zero); } // вычисляем результат var res = new Lifelength { Days = GetDays(DateTimeExtend.GetCASMinDateTime(), effDate.Date) }; return(res); } if (source is Aircraft) { return(GetFlightLifelengthOnStartOfDay((Aircraft)source, effDate)); } if (source is BaseComponent) { return(GetFlightLifelengthOnStartOfDay((BaseComponent)source, effDate)); } //TODO:(Evgenii Babak) выяснить почему берется наработка на конец дня и не делается cast к Component if (source is Entities.General.Accessory.Component) { return(GetFlightLifelengthOnEndOfDay(source, effDate)); } return(Lifelength.Null); }
protected override void SetItemColor(GridViewRowInfo listViewItem, BaseEntityObject item) { var sdi = item as StockComponentInfo; if (sdi == null) { return; } foreach (GridViewCellInfo cell in listViewItem.Cells) { cell.Style.CustomizeFill = true; if (sdi.Current < sdi.ShouldBeOnStock) { cell.Style.BackColor = Color.FromArgb(Highlight.Red.Color); } if (sdi.Current == sdi.ShouldBeOnStock) { cell.Style.BackColor = Color.FromArgb(Highlight.Yellow.Color); } if (sdi.ShouldBeOnStock == 0) { cell.Style.BackColor = Color.FromArgb(Highlight.Blue.Color); } } }
///<summary> /// Создается объект, описывающий отображение добавления директивы ///</summary> /// <param name="directiveContainer">Родительский объект, в который добавляется директива</param> public DamageDirectiveScreen(BaseEntityObject directiveContainer) : this() { if (directiveContainer == null) { throw new ArgumentNullException("directiveContainer"); } if (directiveContainer is BaseComponent) { var baseComponent = (BaseComponent)directiveContainer; _currentBaseComponent = baseComponent; _currentDamage = new DamageItem { ParentBaseComponent = baseComponent }; } else { var aircraftFrame = GlobalObjects.ComponentCore.GetBaseComponentById(((Aircraft)directiveContainer).AircraftFrameId); _currentDamage = new DamageItem { ParentBaseComponent = aircraftFrame }; } Initialize(); }
public Lifelength GetFlightLifelengthOnEndOfDay(BaseEntityObject source, DateTime effDate) { if (source is Operator || source == null) { if (effDate.Date <= DateTimeExtend.GetCASMinDateTime()) { return(Lifelength.Zero); } // вычисляем результат var res = new Lifelength { Days = GetDays(DateTimeExtend.GetCASMinDateTime(), effDate.Date) }; return(res); } if (source is Aircraft) { return(GetFlightLifelengthOnEndOfDay((Aircraft)source, effDate)); } if (source is BaseComponent) { return(GetFlightLifelengthOnEndOfDay((BaseComponent)source, effDate)); } if (source is Entities.General.Accessory.Component) { return(GetFlightLifelengthOnEndOfDay((Entities.General.Accessory.Component)source, effDate)); } return(Lifelength.Null); }
protected override void SetItemColor(ListViewItem listViewItem, BaseEntityObject item) { if (item is ComponentDirective) { listViewItem.ForeColor = Color.Gray; ComponentDirective dd = item as ComponentDirective; listViewItem.BackColor = dd.ItemRelations.Count > 0 ? Color.FromArgb(Highlight.Grey.Color) : UsefulMethods.GetColor(item); } if (item is Component) { listViewItem.ForeColor = Color.Black; listViewItem.BackColor = UsefulMethods.GetColor(item); } if (item.IsDeleted) { //запись так же может быть удаленной //шрифт серым цветом listViewItem.ForeColor = Color.Gray; if (listViewItem.ToolTipText.Trim() != "") { listViewItem.ToolTipText += "\n"; } listViewItem.ToolTipText += $"This {item.SmartCoreObjectType} is deleted"; } }
/* * Сохранение данных */ #region public void Save(BaseSmartCoreObject obj) /// <summary> /// Сохраняет <see cref="BaseEntityObject"/> в БД сохраняет если такой уже есть или создает новый если такой объект появляется первый раз /// </summary> /// <param name="obj">Принимает <see cref="BaseEntityObject"/></param> /// <param name="saveAttachedFile">Сохранять прикрепленные файлы</param> public void Save(BaseEntityObject obj, bool saveAttachedFile = true) { if (_casEnvironment.IdentityUser.UserType == UsetType.ReadOnly) { return; } obj.CorrectorId = _casEnvironment.IdentityUser.ItemId; obj.Updated = DateTime.Now; if (obj.ItemId <= 0) { var qr = BaseQueries.GetInsertQuery(obj); var ds = _casEnvironment.Execute(qr, BaseQueries.GetParameters(obj)); obj.ItemId = DbTypes.ToInt32(ds.Tables[0].Rows[0][0]); _auditRepository.WriteAsync(obj, AuditOperation.Created, _casEnvironment.IdentityUser); } else { // update уже существующей записи var qr = BaseQueries.GetUpdateQuery(obj); _casEnvironment.Execute(qr, BaseQueries.GetParameters(obj)); _auditRepository.WriteAsync(obj, AuditOperation.Changed, _casEnvironment.IdentityUser); } if (obj is IFileContainer && saveAttachedFile) { SaveAttachedFile(obj as IFileContainer); } if (obj is IFileDTOContainer && saveAttachedFile) { SaveAttachedFileDTO(obj as IFileDTOContainer); } }
/// <summary> /// Возвращает Котировочные ордера воздушного судна /// </summary> /// <param name="parent">Владелец котировочного оредера. При пережаче null вернет все Котировочные ордера</param> /// <param name="statuses">Фильтр статуса Котировочные ордера. (По умолчанию = WorkPackageStatus.All)</param> /// <param name="loadWorkPackageItems">Флаг загрузки элементов Котировочного ордера</param> /// <param name="includedAccessory">Задачи, которые должны содержать ордера (при передаче пустои коллекции запрос вернет 0 Котировочного ордера)</param> /// <returns></returns> public IList <RequestForQuotation> GetRequestForQuotation(BaseEntityObject parent, WorkPackageStatus[] statuses = null, bool loadWorkPackageItems = false, Product[] includedAccessory = null) { return(_packageCore.GetPackages <RequestForQuotation, RequestForQuotationRecord>(parent, statuses, loadWorkPackageItems, includedAccessory) .ToArray()); }
/// <summary> /// Возвращает Котировочные ордера воздушного судна /// </summary> /// <param name="parent">Владелец котировочного оредера. При пережаче null вернет все Котировочные ордера</param> /// <param name="statuses">Фильтр статуса Котировочные ордера. (По умолчанию = WorkPackageStatus.All)</param> /// <param name="loadWorkPackageItems">Флаг загрузки элементов Котировочного ордера</param> /// <param name="includedAccessory">Задачи, которые должны содержать ордера (при передаче пустои коллекции запрос вернет 0 Котировочного ордера)</param> /// <returns></returns> public IList <InitialOrder> GetInitialOrders(BaseEntityObject parent, WorkPackageStatus[] statuses = null, bool loadWorkPackageItems = false, Product[] includedAccessory = null) { return(_packageCore.GetPackages <InitialOrder, InitialOrderRecord>(parent, statuses, loadWorkPackageItems, includedAccessory) .ToArray()); }
/// <summary> /// Конструктор создает объект с привязкой родительского объекта /// </summary> public TemplateKit(BaseEntityObject parent) : this() { if (parent != null) { ParentId = parent.ItemId; } }
//caa public DocumentForm(Document doc, BaseEntityObject parent, int?operatorId) : this() { _operatorId = operatorId; _currentDocument = doc; _parent = parent; _animatedThreadWorker.DoWork += AnimatedThreadWorkerDoLoad; _animatedThreadWorker.RunWorkerCompleted += BackgroundWorkerRunWorkerLoadCompleted; }
/// <summary> /// Сохраняет <see cref="BaseEntityObject"/> в БД сохраняет если такой уже есть или создает новый если такой объект появляется первый раз /// </summary> /// <param name="obj">Принимает <see cref="BaseEntityObject"/></param> /// <param name="saveChild">Сохранять дочерние объекты</param> /// <param name="saveForsed">Сохранять свойства, помеченные как "принудительные"</param> public void SaveAll(BaseEntityObject obj, bool saveChild = false, bool saveForsed = false) { if (_casEnvironment.IdentityUser.UserType == UsetType.ReadOnly) { return; } SaveAllInternal(obj, saveChild, saveForsed); }
public static string Set(BaseEntityObject objData, PropertyInfo property) { string result; var markedUCWord = (UCWordsFieldAttribute)System.Attribute.GetCustomAttribute(property, typeof(UCWordsFieldAttribute)); var markedLowerCase = (LowerCaseFieldAttribute)System.Attribute.GetCustomAttribute(property, typeof(LowerCaseFieldAttribute)); result = (markedUCWord != null) ? StringManipulation.UppercaseFirst(property.GetValue(objData, null).ToString()) : property.GetValue(objData, null).ToString(); result = (markedLowerCase != null) ? result.ToLower() : result; return(result); }
/// <summary> /// Загружает все элементы рабочего пакета /// </summary> /// <param name="package"></param> public void LoadPackageItems <T, TV>(T package) where T : AbstractPackage <TV>, new() where TV : BasePackageRecord, new() { // Компоненты package.PackageRecords.Clear(); package.PackageRecords.AddRange(_loader.GetObjectListAll <TV>(BasePackageRecord.ParentPackageIdProperty, package.ItemId)); foreach (TV record in package.PackageRecords) { record.ParentPackage = package; } IEnumerable <IGrouping <SmartCoreType, TV> > groupedRecordsByTaskType = package.PackageRecords .Where(pr => pr.PackageItemType != SmartCoreType.Unknown) .GroupBy(pr => pr.PackageItemType); foreach (IGrouping <SmartCoreType, TV> groupedRecords in groupedRecordsByTaskType) { if (groupedRecords.Key.ObjectType == null) { continue; } Type objectType = groupedRecords.Key.ObjectType; ICommonFilter filter = new CommonFilter <int>(BaseEntityObject.ItemIdProperty, FilterType.In, groupedRecords.Select(wpr => wpr.PackageItemId).ToArray()); IList directiveCollection = _loader.GetObjectList(objectType, new[] { filter }, true, true, ignoreConditions: true); if (directiveCollection.Count > 0) { foreach (TV adWpr in groupedRecords) { BaseEntityObject d = directiveCollection .OfType <BaseEntityObject>() .FirstOrDefault(i => i.ItemId == adWpr.PackageItemId); if (d != null) { adWpr.PackageItem = d; } else { package.PackageRecords.RemoveById(adWpr.ItemId); } } } } // ставим флаг о том, что все элементы рабочего пакета считаны package.PackageItemsLoaded = true; }
/// <summary> /// Создает запись без дополнительной информации /// </summary> public InitialOrderRecord(int rfqId, Product accessory, double quantity, BaseEntityObject parent, DateTime effDate, ComponentStatus costCondition, NextPerformance perfornamce = null, DeferredCategory category = null) : this() { ParentPackageId = rfqId; if (accessory != null) { ProductId = accessory.ItemId; ProductType = accessory.SmartCoreObjectType; EffectiveDate = effDate; DeferredCategory = category ?? DeferredCategory.Unknown; CostCondition = costCondition; _quantity = quantity; if (perfornamce != null) { Task = perfornamce.Parent; PackageItemId = perfornamce.Parent.ItemId; PackageItemType = perfornamce.Parent.SmartCoreObjectType; PerformanceNumFromStart = perfornamce.PerformanceNum; IsSchedule = true; } if (DeferredCategory != DeferredCategory.Unknown && DeferredCategory.Threshold != null) { LifeLimit = DeferredCategory.Threshold.FirstPerformanceSinceEffectiveDate; LifeLimitNotify = DeferredCategory.Threshold.FirstNotification; IsSchedule = false; } if (parent != null && !parent.SmartCoreObjectType.Equals(SmartCoreType.Operator)) { DestinationObject = parent; DestinationObjectType = parent.SmartCoreObjectType; DestinationObjectId = parent.ItemId; } } else { PackageItemId = -1; EffectiveDate = DateTime.Today; costCondition = ComponentStatus.Unknown; PackageItemType = SmartCoreType.Unknown; DeferredCategory = DeferredCategory.Unknown; _quantity = 0; Task = null; ProductId = -1; ProductType = SmartCoreType.Unknown; PerformanceNumFromStart = -1; IsSchedule = false; } }
/* * Глобальные коллекции */ #region public void Save(BaseSmartCoreObject saveObject) public void Save(BaseEntityObject saveObject) { if (saveObject == null) { return; } saveObject.CorrectorId = _casEnvironment.IdentityUser.ItemId; var type = AuditOperation.Created; if (saveObject.ItemId > 0) { type = AuditOperation.Changed; } CasEnvironment.Keeper.Save(saveObject); _auditRepository.WriteAsync(saveObject, type, _casEnvironment.IdentityUser); if (saveObject is AbstractDictionary) { IDictionaryCollection col = CasEnvironment.GetDictionary(saveObject.GetType()); if (col == null) { return; } AbstractDictionary dict = (AbstractDictionary)col.GetItemById(saveObject.ItemId); if (dict == null || saveObject.ItemId != dict.ItemId) { col.Add(saveObject); } else { dict.SetProperties((AbstractDictionary)saveObject); } } if (saveObject is Store) { Store o = CasEnvironment.Stores.GetItemById(saveObject.ItemId); if (o == null || saveObject.ItemId != o.ItemId) { CasEnvironment.Stores.Add((Store)saveObject); } } if (saveObject is BaseComponent) { BaseComponent o = _componentCore.GetBaseComponentById(saveObject.ItemId); if (o == null || saveObject.ItemId != o.ItemId) { CasEnvironment.BaseComponents.Add((BaseComponent)saveObject); } } }
public IList <Relation.ItemsRelation> CheckRelations(BaseEntityObject first, BaseEntityObject second) { var qr = BaseQueries.GetSelectQuery <Relation.ItemsRelation>(true) + $" WHERE (FirstItemId = {first.ItemId} AND FirtsItemTypeId = {first.SmartCoreObjectType.ItemId} AND SecondItemTypeId = {second.SmartCoreObjectType.ItemId}) " + $" OR (SecondItemId = {first.ItemId} AND SecondItemTypeId = {first.SmartCoreObjectType.ItemId} AND FirtsItemTypeId = {second.SmartCoreObjectType.ItemId}) " + $"AND (SecondItemTypeId != FirtsItemTypeId) AND IsDeleted = 0"; var ds = _casEnvironment.Execute(qr); return(BaseQueries.GetObjectList <Relation.ItemsRelation>(ds.Tables[0])); }
/// <summary> /// Конструктор создает объект с параметрами по умолчанию /// </summary> public TemplateKit() { ItemId = -1; ParentId = -1; IsNonRoutineKit = false; Description = ""; PartNumber = ""; Remarks = ""; Manufacturer = ""; _parent = new BaseEntityObject(); }
/// <summary> /// Обновляет подсветку для переданного элемента /// </summary> /// <param name="item">Элемент, для которого требуется обновить подсветку</param> public void UpdateItemColor(BaseEntityObject item) { List <ListViewItem> lvi = itemsListView.Items.Cast <ListViewItem>() .Where(listViewItem => listViewItem.Tag == item) .ToList(); foreach (ListViewItem listViewItem in lvi) { SetItemColor(listViewItem, (BaseEntityObject)listViewItem.Tag); } }
private static DisplayerParams GetEditScreenInternal(BaseEntityObject forObject) { try { IBaseEntityObject parent; if (forObject is NextPerformance) { parent = ((NextPerformance)forObject).Parent; } else if (forObject is AbstractPerformanceRecord) { parent = ((AbstractPerformanceRecord)forObject).Parent; } else { parent = forObject; } if (parent is Directive) { return(GetDirectiveScreen((Directive)parent)); } if (parent is BaseComponent) { return(GetBaseComponentScreen((BaseComponent)parent)); } if (parent is Component) { return(GetComponentScreen((Component)parent)); } if (parent is ComponentDirective) { return(GetComponentDirectiveScreen((ComponentDirective)parent)); } if (parent is MaintenanceCheck) { return(GetMaintenanceCheckScreen((MaintenanceCheck)parent)); } if (parent is MaintenanceDirective) { return(GetMaintenanceDirectiveScreen((MaintenanceDirective)parent)); } return(null); } catch (Exception ex) { Program.Provider.Logger.Log("Error while return ReferenceEventArgs", ex); return(null); } }
///<summary> /// Создаёт экземпляр элемента управления, отображающего список директив ///</summary> ///<param name="currentAircraft">ВС, которому принадлежат директивы</param> public RequestForQuotationListScreen(Aircraft currentAircraft) : this() { if (currentAircraft == null) { throw new ArgumentNullException("currentAircraft"); } _parent = currentAircraft; CurrentAircraft = currentAircraft; StatusTitle = "Aircraft Quotations"; InitToolStripMenuItems(); InitListView(); }
///<summary> /// создает форму на основе документа ///</summary> public DocumentForm(Document doc, bool loadtemplate = true) : this() { _currentDocument = doc; if (_currentDocument != null) { _parent = _currentDocument.Parent; } _loadTemplate = loadtemplate; _animatedThreadWorker.DoWork += AnimatedThreadWorkerDoLoad; _animatedThreadWorker.RunWorkerCompleted += BackgroundWorkerRunWorkerLoadCompleted; UpdateControls(); }
///<summary> /// Создаёт экземпляр элемента управления, отображающего список директив ///</summary> ///<param name="currentAircraft">ВС, которому принадлежат директивы</param> public InitialOrderListScreen(Aircraft currentAircraft) : this() { if (currentAircraft == null) { throw new ArgumentNullException("currentAircraft"); } _parent = currentAircraft; CurrentAircraft = currentAircraft; StatusTitle = "Aircraft Initials"; InitToolStripMenuItems(); InitListView(); }
///<summary> /// Создаёт экземпляр элемента управления, отображающего список директив ///</summary> ///<param name="currentOperator">Оператор, которому принадлежат директивы</param> public RequestOffersListScreen(Operator currentOperator) : this() { if (currentOperator == null) { throw new ArgumentNullException("currentOperator"); } _parent = currentOperator; aircraftHeaderControl1.Operator = currentOperator; StatusTitle = "Operator Quotations"; labelTitle.Visible = false; InitListView(); }
///<summary> /// Создаёт экземпляр элемента управления, отображающего список директив ///</summary> ///<param name="currentOperator">Оператор, которому принадлежат директивы</param> public InitialOrderListScreen(Operator currentOperator) : this() { if (currentOperator == null) { throw new ArgumentNullException("currentOperator"); } _parent = currentOperator; aircraftHeaderControl1.Operator = currentOperator; StatusTitle = "Operator Initials"; labelTitle.Visible = false; InitToolStripMenuItems(); InitListView(); }
///<summary> /// Проверяется, подходит ли элемент под фильтр ///</summary> ///<param name="item">Проверяемый элемент</param> ///<returns>Результат - подходит ли элемент</returns> public bool Acceptable(BaseEntityObject item) { bool acceptable = true; for (int j = 0; j < Items.Count; j++) { if (!Items[j].Acceptable(item)) { acceptable = false; break; } } return(acceptable); }