예제 #1
0
        public async Task CombineAndSend()
        {
            if (this == null || this.Count < 2)
            {
                return;
            }

            if (!CheckIsValid())
            {
                Clear();
                LogTo.Error($"Failed to send the event backlog");
            }

            var firstEvent = this.First();
            var lastEvent  = this.Last();

            IElement firstElement   = firstEvent.Value.element;
            IElement lastElement    = lastEvent.Value.element;
            DateTime start          = firstEvent.Key;
            DateTime end            = lastEvent.Key;
            int      childrenDelta  = lastEvent.Value.ChildrenCount - firstEvent.Value.ChildrenCount;
            string   initialContent = firstEvent.Value.content.GetHtmlInnerText();
            string   finalContent   = lastEvent.Value.content.GetHtmlInnerText();
            string   diff           = DiffEx.CreateDiffList(initialContent, finalContent).Jsonify();

            var awEvent = new AWEvent(lastElement, start, end, diff, childrenDelta);
            await AWService.SendEvent(awEvent);
        }
        public async Task SendEvent(AWEvent Event)
        {
            if (!this.Connected || Event == null)
            {
                return;
            }

            await SendHttpPostRequestAsync(this.EventApiURL, JsonConvert.SerializeObject(Event));
        }