Esempio n. 1
0
        void WalkChainInto(ref List <Bk> chain, ref List <Tx> log, Bk bk)
        {
            var b = bk;
            var l = 0;
            var c = new Stack <Bk>();
            var t = new Stack <Tx>();

            while (!Bk.IsRoot(b))
            {
                c.Push(b);
                b.Txs.OrderByDescending(x => x.Submitted).ToList().ForEach(t.Push);
                l += 1;
                b  = b.Parent;
            }

            if (l == chain.Count && bk.Submitted < chain.Last().Submitted)
            {
                chain = new List <Bk>(c);
                log   = new List <Tx>(t);
            }
            else if (l > chain.Count)
            {
                chain = new List <Bk>(c);
                log   = new List <Tx>(t);
            }
        }
Esempio n. 2
0
        bool EnsureValid(Bk bk)
        {
            if (BkIdx.ContainsKey(bk.Id))
            {
                return(true);
            }

            if (!BkIdx.ContainsKey(bk.Parent.Id))
            {
                return(false);
            }

            bk.Parent = BkIdx[bk.Parent.Id];

            for (int i = 0; i < bk.Txs.Count; i++)
            {
                if (!TxIdx.ContainsKey(bk.Txs[i].Id))
                {
                    return(false);
                }

                bk.Txs[i] = TxIdx[bk.Txs[i].Id];
            }

            BkIdx[bk.Id] = bk;
            return(true);
        }
Esempio n. 3
0
    public async Task UpdateTagsAsync(string url, string title, IEnumerable <string> tags)
    {
        var bk = await _bkRepo.GetAsync(url);

        if (bk == null)
        {
            bk = new Bk
            {
                Title = title,
                TitleLastUpdateTime = _clock.UtcNow,
                Url            = url,
                UrlHash        = _urlHashService.GetHash(url),
                LastCreateTime = _clock.UtcNow,
            };
            await _bkRepo.UpsertAsync(bk);
        }

        var tagList = tags.Distinct().OrderBy(x => x).ToList();

        foreach (var tag in tagList)
        {
            await AppendTagsAsync(tag);
        }

        bk.Tags = tagList;
        await _bkRepo.UpsertAsync(bk);

        await UpdateMetadataAsync();

        _logger.LogInformation("Tag {Tags} updated for {Url}", tagList, url);
    }
        public void TOTALUSAGE()
        {
            StreamWriter Bk;

            try
            {
                Bk = File.AppendText("C:\\Users\\RON TAYLOR\\Desktop\\Computer Programing\\Company_Charge.txt");

                TOTAL_USAGE = WATER_USAGE + SEWAGE_USAGE;
                Bk.WriteLine(total_usage);
                Bk.WriteLine("Total usage:{0}", total_usage);
                Bk.Close();
            }
            catch
            {
                Console.WriteLine(" file not writtten ");
            }
            Console.ReadLine();



            StreamReader Bo;


            Bo = File.OpenText("C:\\Users\\RON TAYLOR\\Desktop\\Computer Programing\\Company_Charge.txt");

            TotalUsagedisplay = Bo.ReadLine();
            while (TotalUsagedisplay != null)
            {
                Console.WriteLine(TotalUsagedisplay);
                TotalUsagedisplay = Bo.ReadLine();
            }

            Bo.Close();
        }
    public async Task Test(string url, AfCodeType type)
    {
        using var mocker = AutoMock.GetLoose();
        var service = mocker.Create <AfCodeService>();
        var bk      = new Bk
        {
            Url   = url,
            Title = "newbe.pro",
            Tags  = new List <string>
            {
                "newbe", "blog"
            }
        };

        mocker.Mock <IIndexedDbRepo <Bk, string> >()
        .Setup(x => x.GetAsync(url))
        .ReturnsAsync(bk);

        // act
        var code = await service.CreateAfCodeAsync(url, type);

        Console.WriteLine(code);

        var tryParseAsync = await service.TryParseAsync(code, out var result);

        tryParseAsync.Should().BeTrue();
        result !.Should().NotBeNull();
        result.Url.Should().Be(bk.Url);
        result.Title.Should().Be(bk.Title);
        result.Tags.Should().BeEquivalentTo(bk.Tags);
    }
    public bool NeedFill(Bk bk)
    {
        if (bk.TitleAlias != null &&
            bk.TitleAlias.TryGetValue(TextAliasType, out var alias) &&
            alias.LastUpdatedTime >= bk.TitleLastUpdateTime)
        {
            return(false);
        }

        return(true);
    }
Esempio n. 7
0
 public static bool IsRoot(Bk b) => b.Id == 0;