Exemplo n.º 1
0
        public async Task <CheckingDomain> UpdateAsync(CheckingDomain checkingDomain)
        {
            CheckingEntity checking        = DbSet.Find(checkingDomain.Id);
            CheckingEntity updatedChecking = Mapper.Map(checkingDomain, checking);
            await Context.SaveChangesAsync();

            return(Mapper.Map <CheckingDomain>(updatedChecking));
        }
Exemplo n.º 2
0
        public async Task <CheckingDomain> CreateAsync(CheckingDomain checkingDomain)
        {
            CheckingEntity checkingEntity       = Mapper.Map <CheckingEntity>(checkingDomain);
            EntityEntry <CheckingEntity> entity = await DbSet.AddAsync(checkingEntity);

            await Context.SaveChangesAsync();

            return(Mapper.Map <CheckingDomain>(entity.Entity));
        }
Exemplo n.º 3
0
        public async Task LoadAsync()
        {
            Strips.Clear();
            Rants.Clear();

            FeedParser   feedParser = new();
            IList <Item> items      = feedParser.ParseRss(new Uri("https://megatokyo.com/rss/megatokyo.xml"));

            CheckingDomain checking = await _mediator.Send(new GetCheckingQuery(1));

            if (checking == null)
            {
                checking = new(DateTimeOffset.MinValue, 0, 0);
                await _mediator.Send(new CreateCheckingCommand(checking));
            }

#if DEBUG
            DateTimeOffset lastCheck = DateTime.Now.AddDays(-30);
#else
            DateTimeOffset lastCheck = checking.LastCheck;
#endif
            LastStripNumber = checking.LastStripNumber;
            LastRantNumber  = checking.LastRantNumber;

            foreach (Item item in items)
            {
                if (item.PublishDate > lastCheck)
                {
                    if (item.Title.StartsWith("Comic", StringComparison.InvariantCulture))
                    {
                        StringExtractor stringExtractor = new(item.Title);
                        StripDomain     strip           = new(int.Parse(stringExtractor.Extract("[", "]", false), NumberStyles.Integer, CultureInfo.InvariantCulture));
                        Strips.Add(strip);
                        checking.LastStripNumber = strip.Number;
                    }
                    if (item.Title.StartsWith("Rant", StringComparison.InvariantCulture))
                    {
                        StringExtractor stringExtractor = new(item.Title);
                        RantDomain      rant            = new(int.Parse(stringExtractor.Extract("[", "]", false), NumberStyles.Integer, CultureInfo.InvariantCulture));
                        Rants.Add(rant);
                        checking.LastRantNumber = rant.Number;
                    }
                }
            }
            await _mediator.Send(new UpdateCheckingCommand(checking));
        }