Beispiel #1
0
        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);
         });
     }
 }
Beispiel #3
0
 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
                });
            }
        }
    }
Beispiel #5
0
 /// <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));
 }