public virtual ConditionalObjectAccessPermission FilterUnfitItems(object contextObject) { try { Type objectType = contextObject.GetType(); //IObjectSpace objectSpace = ObjectSpace.FindObjectSpace(contextObject); IObjectSpace objectSpace = ObjectSpace.FindObjectSpaceByObject(contextObject); EvaluatorContextDescriptor descriptor = objectSpace != null?objectSpace.GetEvaluatorContextDescriptor(objectType) : new EvaluatorContextDescriptorDefault(objectType); ConditionalObjectAccessPermission result = new ConditionalObjectAccessPermission(); foreach (ConditionalParticularAccessItem item in AccessItemList) { bool itemFits = string.IsNullOrEmpty(item.Condition); if (!itemFits && item.ObjectType == objectType) { LocalizedCriteriaWrapper wrapper = new LocalizedCriteriaWrapper(objectType, item.Condition); wrapper.UpdateParametersValues(contextObject); ExpressionEvaluator evaluator = new ExpressionEvaluator(descriptor, wrapper.CriteriaOperator); itemFits = evaluator.Fit(contextObject); } if (itemFits) { result.AccessItemList.Add(item); } } return(result); } catch (Exception ex) { throw new Exception(ex.ToString()); } }
public void UpdateTrwNomenclature() { if (Nomenclature == null || Order == null) { return; } TrwSaleNomenclature old = _TrwSaleNomenclature; if (old == null || old.Order != Order || old.Nomenclature != Nomenclature) { IObjectSpace os = ObjectSpace.FindObjectSpaceByObject(this); _TrwSaleNomenclature = os.GetObjects <TrwSaleNomenclature>( new OperandProperty("Order") == Order & new OperandProperty("Nomenclature") == Nomenclature, true ).FirstOrDefault(); if (_TrwSaleNomenclature == null) { _TrwSaleNomenclature = os.CreateObject <TrwSaleNomenclature>(); _TrwSaleNomenclature.Order = Order; _TrwSaleNomenclature.Nomenclature = Nomenclature; } OnChanged("TrwSaleNomenclature", old, _TrwSaleNomenclature); } }
public void UpdateTrwNomenclature() { if (Nomenclature == null || Order == null) { return; } TrwSaleNomenclature old = _TrwSaleNomenclature; if (old == null || old.Order != Order || old.Nomenclature != Nomenclature) { IObjectSpace os = ObjectSpace.FindObjectSpaceByObject(this); _TrwSaleNomenclature = os.GetObjects <TrwSaleNomenclature>( new OperandProperty("Order") == Order & new OperandProperty("Nomenclature") == Nomenclature, true).FirstOrDefault(); if (_TrwSaleNomenclature == null) { _TrwSaleNomenclature = os.CreateObject <TrwSaleNomenclature>(); _TrwSaleNomenclature.Order = Order; _TrwSaleNomenclature.Nomenclature = Nomenclature; TrwOrder trw_order = Order.Subject.TrwOrders.FirstOrDefault(x => x.Deal == this.DeliveryUnit.DealVersion.ContractDeal); if (trw_order == null) { Order.Subject.Deals.Add(this.DeliveryUnit.DealVersion.ContractDeal); trw_order = Order.Subject.TrwOrders.FirstOrDefault(x => x.Deal == this.DeliveryUnit.DealVersion.ContractDeal); } if (trw_order != null) { trw_order.TrwSaleNomenclatures.Add(_TrwSaleNomenclature); } } OnChanged("TrwSaleNomenclature", old, _TrwSaleNomenclature); } }
void UpdateDeal() { using (IObjectSpace os = ObjectSpace.FindObjectSpaceByObject(this).CreateNestedObjectSpace()) { TrwSubjectDealSale subj_deal = os.GetObject <TrwSubjectDealSale>(this); TrwSubjectDealLogic.RefreshDeal(os, subj_deal); os.CommitChanges(); } }
// private void TrwRefCashFlowUpdate() { if (Order == null || CostItem == null || !(PayType == fmPRPayType.PREPAYMENT || PayType == fmPRPayType.POSTPAYMENT)) { return; } TrwRefCashFlow = TrwRefCashFlowLogic.AutoDetect(ObjectSpace.FindObjectSpaceByObject(this), false, Order, PayType, CostItem); }
public override void DealUpdated() { using (IObjectSpace os = ObjectSpace.FindObjectSpaceByObject(this).CreateNestedObjectSpace()) { TrwSubjectDealSale subj_deal = os.GetObject <TrwSubjectDealSale>(this); subj_deal.CrmContractDeals.Clear(); subj_deal.CrmContractDeals.Add(subj_deal.Deal); os.Delete(subj_deal.DealSaleOrders); TrwSubjectDealLogic.RefreshDeal(os, subj_deal); os.CommitChanges(); } }
public void Approve() { RuleSetValidationResult check_result = Validator.RuleSet.ValidateTarget(this, "Approve"); if (check_result.State == ValidationState.Invalid) { throw new ValidationException(check_result); } // Validator.RuleSet.ValidateTarget(this, "Approve"); State = TrwPartyState.CONFIRMED; ObjectSpace.FindObjectSpaceByObject(this).CommitChanges(); }
/// <summary> /// Gets the replication key member for object. /// </summary> /// <param name="source">The source.</param> /// <returns>Replication key member</returns> public static IModelMember GetReplicationKeyMember(object source) { IModelMember result = null; if (source != null) { var obs = ObjectSpace.FindObjectSpaceByObject(source); if (obs != null) { var ti = obs.TypesInfo.FindTypeInfo(source.GetType()); result = GetReplicationKeyMember(ti); } else { var ti = XafDeltaModule.XafApp.Model.BOModel.GetClass(source.GetType()).TypeInfo; result = GetReplicationKeyMember(ti); } } return(result); }
/// <summary> /// Creates the log record. /// </summary> /// <param name="packageEventType">Type of the event.</param> /// <param name="comments">The comments.</param> public void CreateLogRecord(PackageEventType packageEventType, string comments) { if (IsInvalidated) { return; } var obs = ObjectSpace.FindObjectSpaceByObject(this); if (obs != null) { var nodeRecord = obs.CreateObject <PackageLogRecord>(); nodeRecord.FileName = FileName; nodeRecord.PackageEventType = packageEventType; nodeRecord.Comments = comments; if (XafDeltaModule.Instance.UseTickets && TicketEventTypes.Contains(packageEventType)) { Ticket.CreateForLogRecord(obs, nodeRecord, this); } } }
/// <summary> /// Loads the package. /// </summary> /// <param name="worker">The worker.</param> /// <param name="package">The package.</param> public bool LoadPackage(ActionWorker worker, Package package) { bool result; Interlocked.Increment(ref loadNesting); try { using (var applicationObjectSpace = XafDeltaModule.XafApp.CreateObjectSpace()) { var currentNodeId = ReplicationNode.GetCurrentNodeId(applicationObjectSpace); result = LoadPackage(new LoadPackageContext(package, worker, applicationObjectSpace, currentNodeId)); applicationObjectSpace.CommitChanges(); } var packageObjectSpace = ObjectSpace.FindObjectSpaceByObject(package); packageObjectSpace.CommitChanges(); } finally { Interlocked.Decrement(ref loadNesting); } return(result); }
public void Transact(FmFinPlanSubjectDocFull doc) { FmFinPlanSubjectLogic.TransactPlan0(ObjectSpace.FindObjectSpaceByObject(this), this, doc); }
public void Calculate() { TrwBudgetPeriodDocDealLogic.Calculate(this, ObjectSpace.FindObjectSpaceByObject(this)); }
public static IObjectSpace FindObjectSpaceByObject(Object obj) { return(ObjectSpace.FindObjectSpaceByObject(obj)); }