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); }
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)); }
public void AddOrUpdate(TargetAppDto app, Expression <Action> methodCall) { }
public void AddOrUpdate(TargetAppDto app) { }