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()); } }
public void SendTo(Subscriber subscriber, FlightNews flightNews) { Console.WriteLine($"Message for {subscriber.Id}"); Console.WriteLine($"{JsonConvert.SerializeObject(flightNews, Formatting.Indented)}"); }
public bool ShouldNotify(FlightNews flightNews) { return(flightNews.NormalizedText.Contains(term.ToLower())); }
public bool ShouldNotify(FlightNews flightNews) { return(triggers.Any(t => t.ShouldNotify(flightNews))); }
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))); }