Example #1
0
        public void SendTo(Subscriber subscriber, FlightNews flightNews)
        {
            if (subscriber.TelegramChatId == null)
            {
                return;
            }

            botClient.SendTextMessageAsync(new ChatId(subscriber.TelegramChatId.Value), flightNews.Text);
            sended.Add(flightNews);
        }
        public async Task WriteAsync(FlightNews flight)
        {
            await flightNewsTable.WriteAsync(new FlightNewsDbo(flight));

            var latestOffset = await FindLatestOffsetAsync(flight.Source);

            if (!latestOffset.HasValue || latestOffset.Value < flight.Date.Ticks)
            {
                await flightNewsTable.WriteAsync(new MaxTicksDbo(flight.Source, flight.Date.Ticks));
            }
        }
            public FlightNewsDbo(FlightNews flightNews)
            {
                PartitionKey = flightNews.Source;
                RowKey       = ToRowKey(flightNews.Date.Ticks);
                Timestamp    = DateTimeOffset.UtcNow;

                Id        = flightNews.Id;
                DateTicks = flightNews.Date.Ticks;
                Url       = flightNews.Url;
                Text      = flightNews.Text;
                Source    = flightNews.Source;
            }
        public async Task WriteAsync(FlightNews flight)
        {
            var filename = GetFilename(flight.Source);

            if (!File.Exists(filename))
            {
                await File.WriteAllLinesAsync(filename, new [] { JsonConvert.SerializeObject(flight) });

                return;
            }

            var lines = await File.ReadAllLinesAsync(filename);

            var flights = lines.Select(JsonConvert.DeserializeObject <FlightNews>).ToArray();

            if (flights.All(f => f.Id != flight.Id))
            {
                await File.WriteAllLinesAsync(filename, flights.Concat(new [] { flight }).Select(JsonConvert.SerializeObject).ToArray());
            }
        }
Example #5
0
 public void SendTo(Subscriber subscriber, FlightNews flightNews)
 {
     Console.WriteLine($"Message for {subscriber.Id}");
     Console.WriteLine($"{JsonConvert.SerializeObject(flightNews, Formatting.Indented)}");
 }
Example #6
0
 public bool ShouldNotify(FlightNews flightNews)
 {
     return(flightNews.NormalizedText.Contains(term.ToLower()));
 }
Example #7
0
 public bool ShouldNotify(FlightNews flightNews)
 {
     return(triggers.Any(t => t.ShouldNotify(flightNews)));
 }
Example #8
0
 public bool ShouldNotify(FlightNews flightNews) => true;
 public bool ShouldNotify(FlightNews flightNews)
 {
     return(NotificationTrigger.ShouldNotify(flightNews));
 }
 public Task DeleteAsync(FlightNews flight)
 {
     throw new System.NotImplementedException();
 }
 public Task DeleteAsync(FlightNews flight)
 {
     return(flightNewsTable.DeleteAsync <FlightNewsDbo>(flight.Source, ToRowKey(flight.Date.Ticks)));
 }