private async void SendOfflineData(object stateinfo)
        {
            Logger.Info(DateTime.Now.ToString());
            bool online = await SoftwareUserSession.IsOnlineAsync();

            if (!online)
            {
                return;
            }

            string datastoreFile = SoftwareCoUtil.getSoftwareDataStoreFile();

            if (File.Exists(datastoreFile))
            {
                // get the content
                string[] lines = File.ReadAllLines(datastoreFile);

                if (lines != null && lines.Length > 0)
                {
                    List <String> jsonLines = new List <string>();
                    foreach (string line in lines)
                    {
                        if (line != null && line.Trim().Length > 0)
                        {
                            jsonLines.Add(line);
                        }
                    }
                    string jsonContent           = "[" + string.Join(",", jsonLines) + "]";
                    HttpResponseMessage response = await SoftwareHttpManager.SendRequestAsync(HttpMethod.Post, "/data/batch", jsonContent);

                    if (SoftwareHttpManager.IsOk(response))
                    {
                        // delete the file
                        File.Delete(datastoreFile);
                    }
                }
            }

            ÇlearSessionSummaryData();

            fetchSessionSummaryInfoAsync(true);
        }
        private void StorePayload(SoftwareData _softwareData)
        {
            if (_softwareData != null)
            {
                long keystrokes = _softwareData.keystrokes;

                incrementSessionSummaryData(1 /*minutes*/, keystrokes);

                saveSessionSummaryToDisk(_sessionSummary);

                string softwareDataContent = _softwareData.GetAsJson();

                string datastoreFile = SoftwareCoUtil.getSoftwareDataStoreFile();
                // append to the file
                File.AppendAllText(datastoreFile, softwareDataContent + Environment.NewLine);

                //// update the statusbar
                fetchSessionSummaryInfoAsync();
            }
        }