public StatusBlinker()
        {
            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    Task.Delay(1000).Wait();

                    var activeFlags = new NetworkStatusEnum[0];
                    lock (lockFlags)
                    {
                        activeFlags = Enum.GetValues(typeof(NetworkStatusEnum)).Cast <NetworkStatusEnum>()
                                      .Where(i => flagsStatus.HasFlag(i))
                                      .ToArray();
                    }

                    int idx = 0;
                    foreach (var f in activeFlags)
                    {
                        idx++;
                        EmitStatus?.Invoke(this, f);
                        if (idx < activeFlags.Length)
                        {
                            Task.Delay(1000).Wait();
                        }
                    }
                }
            });
        }
        private void UploadLogFragment(Action callbackOnError = null)
        {
            var logToSend = FileMonitor.LogContentToSend.ToString();

            UploadInfoToServer(true, logToSend, () =>
            {
                NetworkStatusEnum flags = MainWindowVM.GetFlagsNetworkStatus();
                var activeStatus        = Enum.GetValues(typeof(NetworkStatusEnum)).Cast <NetworkStatusEnum>()
                                          .Where(i => i != NetworkStatusEnum.Ready)
                                          .Where(i => flags.HasFlag(i))
                                          .ToArray();

                // Only log when the problem is not that it just is already uploading
                if (activeStatus.Length != 1 || activeStatus[0] != NetworkStatusEnum.Uploading)
                {
                    Log.Warning("FileSizeChangedNewText() Could not upload data. Status:{status} - Problems:{problems}", string.Join(",", activeStatus), MainWindowVM.ProblemsList);
                }
            });
        }
 /// <summary>
 /// Check if the given flag is active
 /// </summary>
 /// <param name="flag"></param>
 /// <returns></returns>
 public bool HasFlag(NetworkStatusEnum flag)
 {
     lock (LockFlags)
         return(FlagsStatus.HasFlag(flag));
 }