public DirectoryPath GetSpecialPath(SpecialPath path)
 {
     if (path == SpecialPath.ProgramFilesX86)
     {
         return new DirectoryPath(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86));
     }
     if (path == SpecialPath.Windows)
     {
         return new DirectoryPath(Environment.GetFolderPath(Environment.SpecialFolder.Windows));
     }
     const string format = "The special path '{0}' is not supported.";
     throw new NotSupportedException(string.Format(format, path));
 }
 protected override bool CheckIfNeedLoadThumbnailOverlay()
 {
     return(SpecialPath.IsPathIncluded(Path, SpecialPath.SpecialPathEnum.OneDrive));
 }
 /// <summary>
 /// Sets a special path.
 /// </summary>
 /// <param name="kind">The special path kind.</param>
 /// <param name="path">The path.</param>
 public void SetSpecialPath(SpecialPath kind, DirectoryPath path)
 {
     _specialPaths[kind] = path;
 }
Exemple #4
0
 /// <summary>
 /// Gets a special path.
 /// </summary>
 /// <param name="path">The path.</param>
 /// <returns>
 /// A <see cref="DirectoryPath" /> to the special path.
 /// </returns>
 public DirectoryPath GetSpecialPath(SpecialPath path)
 {
     return(SpecialPathHelper.GetFolderPath(Platform, path));
 }
 /// <summary>
 /// Gets a special path.
 /// </summary>
 /// <param name="path">The path.</param>
 /// <returns>
 /// A <see cref="DirectoryPath" /> to the special path.
 /// </returns>
 public DirectoryPath GetSpecialPath( SpecialPath path )
 {
     switch( path )
     {
         case SpecialPath.ApplicationData:
             return new DirectoryPath( Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData ) );
         case SpecialPath.CommonApplicationData:
             return new DirectoryPath( Environment.GetFolderPath( Environment.SpecialFolder.CommonApplicationData ) );
         case SpecialPath.LocalApplicationData:
             return new DirectoryPath( Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData ) );
         case SpecialPath.ProgramFiles:
             return new DirectoryPath( Environment.GetFolderPath( Environment.SpecialFolder.ProgramFiles ) );
         case SpecialPath.ProgramFilesX86:
             return new DirectoryPath( Environment.GetFolderPath( Environment.SpecialFolder.ProgramFilesX86 ) );
         case SpecialPath.Windows:
             return new DirectoryPath( Environment.GetFolderPath( Environment.SpecialFolder.Windows ) );
         case SpecialPath.LocalTemp:
             return new DirectoryPath( System.IO.Path.GetTempPath() );
     }
     const string format = "The special path '{0}' is not supported.";
     throw new NotSupportedException( string.Format( CultureInfo.InvariantCulture, format, path ) );
 }
Exemple #6
0
 /// <summary>
 /// Gets a special path.
 /// </summary>
 /// <param name="path">The path.</param>
 /// <returns>
 /// A <see cref="DirectoryPath" /> to the special path.
 /// </returns>
 public DirectoryPath GetSpecialPath(SpecialPath path)
 {
     throw new NotImplementedException();
 }
 public UserMineWorkSet(IOperationMqSender mq)
 {
     VirtualRoot.BuildEventPath <StartMineMqEvent>("收到StartMineMq消息后检查是否是作业挖矿,如果是则处理,否则忽略", LogEnum.None, path: message => {
         #region
         if (IsTooOld(message.Timestamp))
         {
             return;
         }
         Guid workId = message.Data;
         // 只处理作业的
         if (workId != Guid.Empty)
         {
             try {
                 string workerName = string.Empty;
                 WorkRequest request;
                 // 如果是单机作业
                 if (workId.IsSelfMineWorkId())
                 {
                     var clientData = AppRoot.ClientDataSet.GetByClientId(message.ClientId);
                     if (clientData != null)
                     {
                         workerName = clientData.WorkerName;
                     }
                     request = new WorkRequest {
                         WorkId     = workId,
                         WorkerName = workerName,
                         LocalJson  = string.Empty,
                         ServerJson = string.Empty
                     };
                 }
                 else
                 {
                     IUserMineWork mineWork = AppRoot.MineWorkSet.GetById(workId);
                     if (mineWork == null)
                     {
                         return;
                     }
                     string localJsonFileFullName = SpecialPath.GetMineWorkLocalJsonFileFullName(workId);
                     string localJson             = string.Empty;
                     if (File.Exists(localJsonFileFullName))
                     {
                         localJson = File.ReadAllText(localJsonFileFullName);
                         if (!string.IsNullOrEmpty(localJson))
                         {
                             var clientData = AppRoot.ClientDataSet.GetByClientId(message.ClientId);
                             if (clientData != null)
                             {
                                 workerName = clientData.WorkerName;
                             }
                             localJson = localJson.Replace(NTKeyword.MinerNameParameterName, workerName);
                         }
                     }
                     string serverJsonFileFullName = SpecialPath.GetMineWorkServerJsonFileFullName(workId);
                     string serverJson             = string.Empty;
                     if (File.Exists(serverJsonFileFullName))
                     {
                         serverJson = File.ReadAllText(serverJsonFileFullName);
                     }
                     request = new WorkRequest {
                         WorkId     = workId,
                         WorkerName = workerName,
                         LocalJson  = localJson,
                         ServerJson = serverJson
                     };
                 }
                 mq.SendStartWorkMine(message.LoginName, message.ClientId, request);
             }
             catch (Exception e) {
                 Logger.ErrorDebugLine(e);
             }
         }
         #endregion
     }, this.GetType());
 }
        private async Task LoadSyncStatusAsync()
        {
            if (SpecialPath.IsPathIncluded(Path, SpecialPath.SpecialPathEnum.OneDrive))
            {
                switch (await GetStorageItemAsync())
                {
                case StorageFile File:
                {
                    IDictionary <string, object> Properties = await File.Properties.RetrievePropertiesAsync(new string[] { "System.FilePlaceholderStatus", "System.FileOfflineAvailabilityStatus" });

                    if (!Properties.TryGetValue("System.FilePlaceholderStatus", out object StatusIndex))
                    {
                        if (!Properties.TryGetValue("System.FileOfflineAvailabilityStatus", out StatusIndex))
                        {
                            SyncStatus = SyncStatus.Unknown;
                            break;
                        }
                    }

                    switch (Convert.ToUInt32(StatusIndex))
                    {
                    case 0:
                    case 1:
                    case 8:
                    {
                        SyncStatus = SyncStatus.AvailableOnline;
                        break;
                    }

                    case 2:
                    case 3:
                    case 14:
                    case 15:
                    {
                        SyncStatus = SyncStatus.AvailableOffline;
                        break;
                    }

                    case 9:
                    {
                        SyncStatus = SyncStatus.Sync;
                        break;
                    }

                    case 4:
                    {
                        SyncStatus = SyncStatus.Excluded;
                        break;
                    }

                    default:
                    {
                        SyncStatus = SyncStatus.Unknown;
                        break;
                    }
                    }

                    break;
                }

                case StorageFolder Folder:
                {
                    IDictionary <string, object> Properties = await Folder.Properties.RetrievePropertiesAsync(new string[] { "System.FilePlaceholderStatus", "System.FileOfflineAvailabilityStatus" });


                    if (!Properties.TryGetValue("System.FileOfflineAvailabilityStatus", out object StatusIndex))
                    {
                        if (!Properties.TryGetValue("System.FilePlaceholderStatus", out StatusIndex))
                        {
                            SyncStatus = SyncStatus.Unknown;
                            break;
                        }
                    }

                    switch (Convert.ToUInt32(StatusIndex))
                    {
                    case 0:
                    case 1:
                    case 8:
                    {
                        SyncStatus = SyncStatus.AvailableOnline;
                        break;
                    }

                    case 2:
                    case 3:
                    case 14:
                    case 15:
                    {
                        SyncStatus = SyncStatus.AvailableOffline;
                        break;
                    }

                    case 9:
                    {
                        SyncStatus = SyncStatus.Sync;
                        break;
                    }

                    case 4:
                    {
                        SyncStatus = SyncStatus.Excluded;
                        break;
                    }

                    default:
                    {
                        SyncStatus = SyncStatus.Unknown;
                        break;
                    }
                    }

                    break;
                }

                default:
                {
                    SyncStatus = SyncStatus.Unknown;
                    break;
                }
                }
            }
            else
            {
                SyncStatus = SyncStatus.Unknown;
            }

            OnPropertyChanged(nameof(SyncStatus));
        }
 private LiteDatabase CreateDatabase(Guid workId)
 {
     return(new LiteDatabase($"filename={SpecialPath.GetMineWorkDbFileFullName(workId)};journal=false"));
 }
 /// <summary>
 /// Gets a special path.
 /// </summary>
 /// <param name="path">The path.</param>
 /// <returns>
 /// A <see cref="DirectoryPath" /> to the special path.
 /// </returns>
 public DirectoryPath GetSpecialPath(SpecialPath path)
 {
     throw new NotImplementedException();
 }