public static void EnsureNotReadOnly(this IReadOnlyScope scope) { scope.EnsureNotNull(nameof(scope)); // if (scope.IsReadOnly) { throw new EonException(FormatXResource(typeof(InvalidOperationException), "CanNotModifyObjectDueReadOnly", scope)); } }
// TODO: Put strings into the resources. // public static void EnsureChangeToPermanentReadOnly(this IReadOnlyScope scope, ReadOnlyStateTag newState) { scope.EnsureNotNull(nameof(scope)); newState.EnsureNotNull(nameof(newState)); // if (newState.IsReadOnly && !newState.IsPermanent) { throw new EonException(message: $"Изменение состояния доступности редактирования данного объекта согласно указанным параметрам не может быть выполнено. Возможно, объект не поддерживает такое изменение состояния доступности редактирования.{Environment.NewLine}\tОбъект:{scope.FmtStr().GNLI2()}{Environment.NewLine}\tПараметры:{newState.FmtStr().GNLI2()}"); } }
// TODO: Put strings into the resources. // public static void EnsurePermanentReadOnly(this IReadOnlyScope scope) { scope.EnsureNotNull(nameof(scope)); // if (!scope.IsPermanentReadOnly) { throw new EonException(message: $"Область (компонент) не имеет устойчивой недоступности редактирования (т.е. состояние доступности редактирования этой области (компонента) потенциально может быть изменено).{Environment.NewLine}\tОбласть (компонент):{Environment.NewLine}{scope.FmtStr().GI2()}"); } }
protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState: previousState, newState: newState); // IReadOnlyScope metadataAsReadOnlyScope = ReadDA(ref _metadataLink, considerDisposeRequest: true)?.Target.Value; metadataAsReadOnlyScope?.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); }
public bool IsSubset(IReadOnlyScope scope) { if (string.IsNullOrWhiteSpace(scope.ScopeString)) { return(true); } for (int i = 0; i < scope.Scopes.Count; i++) { if (scopes.IndexOf(scope.Scopes[i]) < 0) { return(false); } } return(true); }
protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState, newState); // IReadOnlyScope metadataElementAsReadOnlyScope = ReadDA(ref _metadataElement, considerDisposeRequest: true); metadataElementAsReadOnlyScope?.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); // foreach (var childNode in EnumerateDA(ReadDA(ref _children, considerDisposeRequest: true), considerDisposeRequest: true).OfType <IReadOnlyScope>()) { childNode.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); } // foreach (var inclusion in EnumerateDA(ReadDA(ref _inclusions, considerDisposeRequest: true), considerDisposeRequest: true).OfType <IReadOnlyScope>()) { inclusion.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); } }