void GenerateSessionEndEvent(SessionTimestamp timestamp)
        {
            Task.Run(async() =>
            {
                var baseEvent = _eventSaver.GetWorkstationEvent();

                baseEvent.WorkstationSessionId = timestamp.SessionId;
                baseEvent.UserSession          = timestamp.SessionName;
                baseEvent.Date    = timestamp.Time;
                baseEvent.Note    = "Unexpected Shutdown";
                baseEvent.EventId = WorkstationEventType.ComputerLock; // TODO: Maybe, add another event for Unexpected Shutdown

                await _eventSaver.AddNewAsync(baseEvent, true);
            });
        }
        /// <summary>
        /// Save specified timestamp into file
        /// </summary>
        void SaveOrUpdateTimestamp(SessionTimestamp timestamp)
        {
            lock (_fileLock)
            {
                try
                {
                    var dir = Path.GetDirectoryName(_timestampFilePath);
                    if (!Directory.Exists(dir))
                    {
                        Directory.CreateDirectory(dir);
                    }

                    using (StreamWriter sw = new StreamWriter(_timestampFilePath, false))
                    {
                        var jsonData = JsonConvert.SerializeObject(timestamp);
                        sw.WriteLine(jsonData);
                    }
                }
                catch (Exception ex)
                {
                    WriteLine(ex);
                }
            }
        }