public void SetAccessInfo(AccessChangeType changeType, AccessInfo accessInfo) { if (changeType != AccessChangeType.Public) { base.AccessInfo = accessInfo; } else { base.AccessInfo = AccessInfo.Empty; } }
public static object[] Build(object[] items, AccessChangeType changeType, string[] memberIDs, AccessType[] accessTypes) { return(new object[] { changeType, memberIDs, accessTypes }); }
public static object[] Build(object[] items, AccessChangeType changeType, string[] memberIDs) { return(Build(items, changeType, memberIDs, items.Select(item => AccessType.None).ToArray())); }
public static object[] Build(object[] items, AccessChangeType changeType) { return(Build(items, changeType, items.Select(item => string.Empty).ToArray(), items.Select(item => AccessType.None).ToArray())); }
void IDataBaseCollectionServiceCallback.OnDataBasesAccessChanged(SignatureDate signatureDate, AccessChangeType changeType, AccessInfo[] accessInfos, string[] memberIDs, AccessType[] accessTypes) { throw new NotImplementedException(); }
void IDataBaseCollectionServiceCallback.OnDataBasesAccessChanged(SignatureDate signatureDate, AccessChangeType changeType, AccessInfo[] accessInfos, string[] memberIDs, AccessType[] accessTypes) { this.InvokeAsync(() => { var authentication = this.userContext.Authenticate(signatureDate); var dataBases = new DataBase[accessInfos.Length]; for (var i = 0; i < accessInfos.Length; i++) { var accessInfo = accessInfos[i]; var dataBase = this[accessInfo.Path]; dataBase.SetAccessInfo(changeType, accessInfo); dataBases[i] = dataBase; } switch (changeType) { case AccessChangeType.Public: this.InvokeItemsSetPublicEvent(authentication, dataBases); break; case AccessChangeType.Private: this.InvokeItemsSetPrivateEvent(authentication, dataBases); break; case AccessChangeType.Add: this.InvokeItemsAddAccessMemberEvent(authentication, dataBases, memberIDs, accessTypes); break; case AccessChangeType.Set: this.InvokeItemsSetAccessMemberEvent(authentication, dataBases, memberIDs, accessTypes); break; case AccessChangeType.Remove: this.InvokeItemsRemoveAccessMemberEvent(authentication, dataBases, memberIDs); break; } }, nameof(IDataBaseCollectionServiceCallback.OnDataBasesAccessChanged)); }
async void IDataBaseContextEventCallback.OnDataBasesAccessChanged(CallbackInfo callbackInfo, AccessChangeType changeType, AccessInfo[] accessInfos, string[] memberIDs, AccessType[] accessTypes) { try { await this.callbackEvent.InvokeAsync(callbackInfo.Index, () => { this.Dispatcher.Invoke(() => { var authentication = this.UserContext.Authenticate(callbackInfo.SignatureDate); var dataBases = new DataBase[accessInfos.Length]; for (var i = 0; i < accessInfos.Length; i++) { var accessInfo = accessInfos[i]; var dataBase = this[accessInfo.Path]; if (changeType == AccessChangeType.Public) { accessInfo.Path = string.Empty; } dataBase.SetAccessInfo(accessInfo); dataBases[i] = dataBase; } switch (changeType) { case AccessChangeType.Public: this.InvokeItemsSetPublicEvent(authentication, dataBases); break; case AccessChangeType.Private: this.InvokeItemsSetPrivateEvent(authentication, dataBases); break; case AccessChangeType.Add: this.InvokeItemsAddAccessMemberEvent(authentication, dataBases, memberIDs, accessTypes); break; case AccessChangeType.Set: this.InvokeItemsSetAccessMemberEvent(authentication, dataBases, memberIDs, accessTypes); break; case AccessChangeType.Remove: this.InvokeItemsRemoveAccessMemberEvent(authentication, dataBases, memberIDs); break; } }); }); } catch (Exception e) { this.CremaHost.Error(e); } }