コード例 #1
0
        /// <summary>
        /// Serialize object to JSON and write/overwrite file
        /// </summary>
        /// <param name="accountMinerTypeExtraParamsList"></param>
        public void WriteJsonToFile(ObservableCollection <AccountMinerTypeExtraParams> accountMinerTypeExtraParamsList)
        {
            // Iterate through MinerBaseTypes and insert any missing miners to the list of
            // extra params
            foreach (MinerBaseType minerBaseType in Enum.GetValues(typeof(MinerBaseType)))
            {
                if (accountMinerTypeExtraParamsList.Any(x => x.MinerBaseTypeString == minerBaseType.ToString()) == false && minerBaseType != MinerBaseType.UNDEFINED)
                {
                    AccountMinerTypeExtraParams accountMinerTypeExtraParams = new AccountMinerTypeExtraParams();
                    accountMinerTypeExtraParams.ExtraParams         = "";
                    accountMinerTypeExtraParams.MinerBaseTypeString = minerBaseType.ToString();
                    accountMinerTypeExtraParamsList.Add(accountMinerTypeExtraParams);
                }
            }

            string filePath = Path.Combine(FileConstants.ConfigFilePath(), FileNameConstants.MinerTypeExtraParamsFileName);

            try
            {
                // serialize JSON directly to a file
                using (StreamWriter file = File.CreateText(filePath))
                {
                    JsonSerializer serializer = new JsonSerializer();
                    serializer.Serialize(file, accountMinerTypeExtraParamsList);
                }
            }
            catch (Exception e)
            {
                throw new ApplicationException(string.Format("Error writing file {0}", filePath), e);
            }
        }
コード例 #2
0
        /// <summary>
        /// Starts the miner process
        /// </summary>
        /// <returns></returns>
        protected virtual BPMProcess StartProcess()
        {
            var process = new BPMProcess();

            IsMining = true;
            FormatPerMinerCoinCombo();

            ObservableCollection <AccountMinerTypeExtraParams> AccountMinerTypeExtraParamsList = (ObservableCollection <AccountMinerTypeExtraParams>)Application.Current.Properties["AccountMinerTypeExtraParamsList"];
            AccountMinerTypeExtraParams accountMinerTypeExtraParams = AccountMinerTypeExtraParamsList.First(x => x.MinerBaseType == MinerBaseType);

            if (accountMinerTypeExtraParams != null && accountMinerTypeExtraParams.ExtraParams != String.Empty)
            {
                // Add Extra Params
                MinerArguments = String.Format("{0} {1}", MinerArguments, accountMinerTypeExtraParams.ExtraParams);
            }

            process.Start(MinerWorkingDirectory, MinerArguments, MinerFileName, Hardware == HardwareType.AMD, MinerBaseType);
            process.MinerProcess.Exited += MinerExited;
            return(process);
        }
コード例 #3
0
        /// <summary>
        /// Initializes a new AccountMinerTypeExtraParams object (only called when one doesn't exist or cannot be read).
        /// </summary>
        /// <param name="accountMinerTypeExtraParams"></param>
        /// <returns></returns>
        private ObservableCollection <AccountMinerTypeExtraParams> InitEmptyMinerTypeExtraParams()
        {
            // Create new empty list of miner type extra params
            ObservableCollection <AccountMinerTypeExtraParams> accountMinerTypeExtraParamsList = new ObservableCollection <AccountMinerTypeExtraParams>();

            // Set default values
            foreach (MinerBaseType minerBaseType in Enum.GetValues(typeof(MinerBaseType)))
            {
                // Don't add settings for Undefined
                if (minerBaseType != MinerBaseType.UNDEFINED)
                {
                    AccountMinerTypeExtraParams accountMinerTypeExtraParams = new AccountMinerTypeExtraParams();
                    accountMinerTypeExtraParams.MinerBaseTypeString = minerBaseType.ToString();
                    accountMinerTypeExtraParams.ExtraParams         = "";
                    accountMinerTypeExtraParamsList.Add(accountMinerTypeExtraParams);
                }
            }
            // Write defaults to disk
            WriteJsonToFile(accountMinerTypeExtraParamsList);

            return(accountMinerTypeExtraParamsList);
        }