private void NotifyUser(TargetAppDto item, AppCheckResultDto result)
        {
            if (!result.IsAlive)
            {
                var user = _userService.GetById(item.CreatedById.GetValueOrDefault(0));
                if (user == null)
                {
                    return;
                }

                var notificationService = NotificationServiceFactory.GetNotificationService(user.NotificationPreference);
                notificationService.NotifyDown(user, item);
                result.NotifiedVia    = user.NotificationPreference;
                result.IsUserNotified = true;
                result.UserId         = user.Id;
            }
        }
        public AppCheckResultDto CheckDownOrAlive(TargetAppDto item)
        {
            if (item == null)
            {
                return(null);
            }
            AppCheckResultDto result = new AppCheckResultDto();

            //left on purpos in order to track
            Debug.WriteLine($"Processing {item.Id}  -  {item.Name} url : {item.Url}");

            result.IsAlive = CheckIsAlive(item.Url);
            NotifyUser(item, result);

            MarkAsChecked(new UpdateChecksStatusDto {
                CheckDate = DateTime.Now, IsAlive = result.IsAlive, Id = item.Id
            });

            return(result);
        }