public override void ChartConfigCondition(Sungero.Domain.Client.ExecuteChildCollectionActionArgs e) { ICondition condition; if (_obj.Condition == null) { condition = Functions.Condition.Remote.CreateCondition(); } else { condition = _obj.Condition; } Functions.ApprovalRuleBase.AddDocumentKindToCondition(_obj.ApprovalRuleBase, condition); condition.ShowModal(); // TODO Belyak: баг платформы 32055. Убрать переполучение условия после исправления. if (!condition.State.IsInserted) { condition = Conditions.As(Functions.ConditionBase.Remote.GetCondition(condition.Id)); } if (!condition.State.IsInserted && !Equals(_obj.Condition, condition)) { _obj.Condition = condition; } }
public override void Created(Sungero.Domain.CreatedEventArgs e) { base.Created(e); if (_obj.State.IsCopied) { foreach (var conditionsList in _obj.Conditions) { var newCondition = Conditions.Copy(Conditions.As(conditionsList.Condition)); newCondition.Save(); conditionsList.Condition = newCondition; } } }
/// <summary> /// Проверить возможность существования данного маршрута с условиями по адресату. /// </summary> /// <param name="allConditions">Все условия в данном маршруте.</param> /// <param name="condition">Текущее условие.</param> /// <returns>Возможность существования данного маршрута.</returns> public bool CheckAddresseeConditions(List <Structures.ApprovalRuleBase.RouteStep> allConditions, Structures.ApprovalRuleBase.RouteStep condition) { var conditionItem = _obj.Conditions.Where(x => x.Number == condition.StepNumber).FirstOrDefault(); var addressees = Conditions.As(conditionItem.Condition).Addressees.Select(x => x.Addressee).ToList(); foreach (var previousCondition in allConditions.TakeWhile(x => !Equals(x, condition))) { var previoisConditionItem = _obj.Conditions.Where(x => x.Number == previousCondition.StepNumber).FirstOrDefault(); var previousAddressees = Conditions.As(previoisConditionItem.Condition).Addressees.Select(x => x.Addressee).ToList(); var result = CheckConsistencyConditions(addressees, previousAddressees, condition, previousCondition); if (result != null) { return(result.Value); } } return(true); }