예제 #1
0
 public ModuleResolver(IAcceleriderUser user, IAcceleriderApi acceleriderApi, IModuleCatalog moduleCatalog, IModuleManager moduleManager)
 {
     _user           = user;
     _acceleriderApi = acceleriderApi;
     _moduleCatalog  = moduleCatalog;
     _moduleManager  = moduleManager;
 }
        private static AcceleriderUserExtendedMembers GetExtendedMembers(this IAcceleriderUser user)
        {
            var result = ExtendedMembers.Get(user.Email);

            if (string.IsNullOrEmpty(result.Id))
            {
                result.Id = user.Email;
            }
            return(result);
        }
예제 #3
0
        // -------------------------------------------------------------------------------------
        public static IReadOnlyList <TransferItem> GetDownloadItems(this IAcceleriderUser @this)
        {
            Guards.ThrowIfNull(@this);

            return(FileTransferService
                   .GetDownloaderManager()
                   .Transporters
                   .OfType <TransferItem>()
                   .ToList()
                   .AsReadOnly());
        }
        public static bool RemoveNetDiskUser(this IAcceleriderUser @this, INetDiskUser value)
        {
            Guards.ThrowIfNull(@this);

            var result = _extendedMembers.NetDiskUsers.RemoveAll(item => item.Id == value.Id) > 0;

            if (result)
            {
                @this.SaveToLocalDisk();
                RaisePropertyChanged();
            }
            return(result);
        }
        public static bool SetCurrentNetDiskUser(this IAcceleriderUser @this, INetDiskUser value)
        {
            Guards.ThrowIfNull(@this);

            if (EqualityComparer <INetDiskUser> .Default.Equals(_extendedMembers.CurrentNetDiskUser, value))
            {
                return(false);
            }

            _extendedMembers.CurrentNetDiskUser = value;
            RaisePropertyChanged();
            return(true);
        }
예제 #6
0
        public static Task <bool> AddNetDiskUserAsync(this IAcceleriderUser @this, INetDiskUser user)
        {
            CheckNullObject(@this);
            var list = _cache.NetDiskUsers.ToList();

            if (list.Any(v => v.Id == user.Id))
            {
                return(Task.FromResult(false));
            }
            list.Add(user);
            _cache.NetDiskUsers = list;
            _cache.Save(DataFile);
            return(Task.FromResult(true));
        }
예제 #7
0
        public static Task <bool> RemoveNetDiskUserAsync(this IAcceleriderUser @this, INetDiskUser user)
        {
            Guards.ThrowIfNull(@this);
            if (_cache.NetDiskUsers.All(v => v.Id != user.Id))
            {
                return(Task.FromResult(false));
            }
            var list = _cache.NetDiskUsers.ToList();

            list.RemoveAll(v => v.Id == user.Id);
            _cache.NetDiskUsers = list;
            _cache.Save(DataFile);
            return(Task.FromResult(true));
        }
        public static async Task <bool> UpdateAsync(this IAcceleriderUser @this)
        {
            Guards.ThrowIfNull(@this);

            var result = await @this.RefreshAsync();

            foreach (var user in _extendedMembers.NetDiskUsers)
            {
                await user.RefreshAsync();
            }

            _extendedMembers.CurrentNetDiskUser = _extendedMembers.NetDiskUsers?.FirstOrDefault();

            return(result);
        }
        public static bool AddNetDiskUser(this IAcceleriderUser @this, INetDiskUser value)
        {
            Guards.ThrowIfNull(@this);

            if (_extendedMembers.NetDiskUsers.Any(item => item.Id == value.Id))
            {
                return(false);
            }

            _extendedMembers.NetDiskUsers.Add(value);
            @this.SaveToLocalDisk();

            if (@this.GetCurrentNetDiskUser() == null)
            {
                @this.SetCurrentNetDiskUser(value);
            }

            RaisePropertyChanged();
            return(true);
        }
예제 #10
0
        // -------------------------------------------------------------------------------------

        public static async Task <bool> RefreshAsyncEx(this IAcceleriderUser @this)
        {
            Guards.ThrowIfNull(@this);

            var result = await @this.RefreshAsync();

            /*
             * var netDiskInfos = await _netDiskApi.GetAllNetDisksAsync();
             * _cache.NetDiskUsers = netDiskInfos?.Select(item => _container.Resolve<NetDiskUser>(new TypedParameter(typeof(NetDiskInfo), item)));
             * _cache.CurrentNetDiskUser = _cache.NetDiskUsers?.FirstOrDefault();
             */
            if (_cache.NetDiskUsers != null)
            {
                foreach (var user in _cache.NetDiskUsers)
                {
                    await user.RefreshUserInfoAsync();
                }
            }
            _cache.CurrentNetDiskUser = _cache.NetDiskUsers?.FirstOrDefault();
            return(result);
        }
예제 #11
0
 public static void SetCurrentNetDiskUser(this IAcceleriderUser @this, INetDiskUser value)
 {
     Guards.ThrowIfNull(@this);
     _cache.CurrentNetDiskUser = value;
 }
예제 #12
0
 public static IList <TransferItem> GetUploadItems(this IAcceleriderUser @this)
 {
     CheckNullObject(@this);
     throw new NotImplementedException();
 }
        public static INetDiskUser GetCurrentNetDiskUser(this IAcceleriderUser @this)
        {
            Guards.ThrowIfNull(@this);

            return(_extendedMembers.CurrentNetDiskUser);
        }
예제 #14
0
 public static IList <ITransferredFile> GetUploadedFiles(this IAcceleriderUser @this)
 {
     CheckNullObject(@this);
     throw new NotImplementedException();
 }
        public static IEnumerable <INetDiskUser> GetNetDiskUsers(this IAcceleriderUser @this)
        {
            Guards.ThrowIfNull(@this);

            return(_extendedMembers.NetDiskUsers);
        }
예제 #16
0
 public static IEnumerable <INetDiskUser> GetNetDiskUsers(this IAcceleriderUser @this)
 {
     CheckNullObject(@this);
     return(_cache.NetDiskUsers);
 }
예제 #17
0
 public static IList <TransferItem> GetUploadItems(this IAcceleriderUser @this)
 {
     Guards.ThrowIfNull(@this);
     throw new NotImplementedException();
 }
예제 #18
0
 public static IList <ITransferredFile> GetUploadedFiles(this IAcceleriderUser @this)
 {
     Guards.ThrowIfNull(@this);
     throw new NotImplementedException();
 }
예제 #19
0
 public static void SetCurrentNetDiskUser(this IAcceleriderUser @this, INetDiskUser value)
 {
     CheckNullObject(@this);
     _cache.CurrentNetDiskUser = value;
 }
 public static AnyDriveAttachedProperties AttachedProperties(this IAcceleriderUser @this)
 {
     return(new AnyDriveAttachedProperties(@this));
 }
예제 #21
0
 public static INetDiskUser GetCurrentNetDiskUser(this IAcceleriderUser @this)
 {
     Guards.ThrowIfNull(@this);
     return(_cache.CurrentNetDiskUser);
 }
예제 #22
0
 public AnyDriveAttachedProperties(IAcceleriderUser user)
 {
     _user = user;
 }
 public static void SaveToLocalDisk(this IAcceleriderUser @this)
 {
     @this.GetExtendedMembers().Save(string.Format(UsersFilePathFormat, @this.Email));
 }
        public static void SaveToLocalDisk(this IAcceleriderUser @this)
        {
            Guards.ThrowIfNull(@this);

            _extendedMembers.Save();
        }
예제 #25
0
 public static INetDiskUser GetCurrentNetDiskUser(this IAcceleriderUser @this)
 {
     CheckNullObject(@this);
     return(_cache.CurrentNetDiskUser);
 }