Beispiel #1
0
 public void SetAccessInfo(AccessChangeType changeType, AccessInfo accessInfo)
 {
     if (changeType != AccessChangeType.Public)
     {
         base.AccessInfo = accessInfo;
     }
     else
     {
         base.AccessInfo = AccessInfo.Empty;
     }
 }
Beispiel #2
0
 public static object[] Build(object[] items, AccessChangeType changeType, string[] memberIDs, AccessType[] accessTypes)
 {
     return(new object[] { changeType, memberIDs, accessTypes });
 }
Beispiel #3
0
 public static object[] Build(object[] items, AccessChangeType changeType, string[] memberIDs)
 {
     return(Build(items, changeType, memberIDs, items.Select(item => AccessType.None).ToArray()));
 }
Beispiel #4
0
 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();
 }
Beispiel #6
0
        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);
            }
        }