private static void PopulateData(IDocumentStore store) { using var session = store.OpenSession(); var location = new MobaroLocation { Id = "locations/1", Name = "Location 1" }; session.Store(location); var entry1 = new DispatchEntry { Riders = 15, Dispatches = 3 }; var entry2 = new DispatchEntry { Riders = 20, Dispatches = 2 }; var now = DateTime.UtcNow; var oneHourAgo = now.Subtract(TimeSpan.FromHours(1)); var timeSeries = session.TimeSeriesFor <DispatchEntry>(location); timeSeries.Append(oneHourAgo, entry1); timeSeries.Append(now, entry2); session.SaveChanges(); }
public void Dispatch(DispatchEntry <TEntry> payload) { lock (locker) { Cache.ForEach(cb => { cb(payload); }); } }
private async Task Notify(DispatchEntry <GiteePostBody> payload) { if (payload.CanDispatch()) { var option = new ToastOption() { Category = ToastCategory.Information, Title = "代码提交推送通知", Delay = 120 * 1000, ForceDelay = true, ChildContent = BootstrapDynamicComponent.CreateComponent <CommitItem>(new Dictionary <string, object?> { [nameof(CommitItem.Item)] = payload.Entry }).Render() }; await Toast.Show(option); } }
private async Task Dispatch(DispatchEntry <MessageItem> entry) { if (entry.Entry != null) { // 获得当前用户 IP 地址 var clientInfo = await ClientService.GetClientInfo(); if (clientInfo.Ip != null) { var location = await IPLocator.Locate(clientInfo.Ip); await Toast.Show(new ToastOption() { Title = "Dispatch 服务测试", Content = $"{entry.Entry.Message} 来自 {location}", Category = ToastCategory.Information, Delay = 30 * 1000, ForceDelay = true }); } } }
/// <summary> /// /// </summary> /// <param name="entry"></param> /// <returns></returns> public static bool CanDispatch(this DispatchEntry <GiteePostBody> entry) { return(entry.Entry != null && (entry.Entry.HeadCommit != null || entry.Entry.Commits?.Count > 0)); }