Пример #1
0
        private Result <PoolHashrate> GetHashrateEntity(string content, CoinConfig pattern)
        {
            try
            {
                Regex expression = new Regex(pattern.Pattern);
                Match match      = expression.Match(content);
                if (!match.Success)
                {
                    return(Result <PoolHashrate> .Fail($"PoolPull regex failed Name: '{pattern.Name}'"));
                }

                var value        = double.Parse(match.Groups[1].Value, CultureInfo.InvariantCulture);
                var denomination = pattern.Denomination;
                if (match.Groups[2].Success)
                {
                    denomination = DenominationHelper.ToDenomination(match.Groups[2].Value);
                }

                var mSolValue    = DenominationHelper.ToMSol(value, denomination);
                var poolHashrate = new PoolHashrate()
                {
                    Name      = pattern.Name,
                    Value     = mSolValue,
                    EntryDate = DateTime.UtcNow
                };

                return(Result <PoolHashrate> .Ok(poolHashrate));
            }
            catch (Exception ex)
            {
                return(Result <PoolHashrate> .Fail($"PoolPull parse failed Name: '{pattern.Name}', error: '{ex}'"));
            }
        }