public void NotifyDown(UserDto user, TargetAppDto targetApp)
        {
            //send email
            Console.WriteLine($"Sending email to:{user.Name} - {user.Email} for down info of : {targetApp.Id} - {targetApp.Url}");

            using (SmtpClient smtpClient = new SmtpClient())
            {
                var message = new MimeMessage();
                message.To.Add(new MailboxAddress(user.Name, user.Email));
                message.From.Add(new MailboxAddress("Status Check Service", "*****@*****.**"));

                message.Body = new TextPart(TextFormat.Html)
                {
                    Text = $" App {targetApp.Name} is down Id : {targetApp.Id} - url {targetApp.Url}"
                };

                //smtpClient.Connect("smtp.yandex.com", 465, true);
                //smtpClient.Authenticate("*****@*****.**", "Hlt135!");

                //message is get rejected because of spam policy, I just wanted to show the implementation
                //smtpClient.Send(messagse);

                //smtpClient.Disconnect(true);
            }
        }
        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);
        }
Exemple #4
0
 public void NotifyDown(UserDto user, TargetAppDto targetApp)
 {
     Console.WriteLine($"Sending sms to:{user.Name} - {user.Gsm} for down info of : {targetApp.Id} - {targetApp.Url}");
     //send sms
 }
 public void AddOrUpdate(TargetAppDto app, Expression <Action> methodCall)
 {
     RecurringJob.AddOrUpdate("site-healthcheck-" + app.Id, methodCall, GetCronExpression(app.IntervalType, app.IntervalValue));
 }
 public void AddOrUpdate(TargetAppDto app)
 {
     RecurringJob.AddOrUpdate("site-healthcheck-" + app.Id, () => _bgCheckService.CheckDownOrAlive(app), GetCronExpression(app.IntervalType, app.IntervalValue));
 }
Exemple #7
0
 public void AddOrUpdate(TargetAppDto app, Expression <Action> methodCall)
 {
 }
Exemple #8
0
 public void AddOrUpdate(TargetAppDto app)
 {
 }