/// <summary> /// Updating Status in RunDetail table /// </summary> /// <param name="runNumberId">Run number ID</param> /// <param name="updatedValue">Status</param> public void UpdateRunStatusByRunNumberId(int runNumberId, byte updatedValue) { try { // If all steps of Job are completed then complete the Job if (!_runComponentRepository.GetRunComponentStatusbyRunId(runNumberId).Any(x => x.ComponentStatusId != (int)ComponentStatusType.Completed)) { updatedValue = (byte)RunNumberStatusType.Completed; } var result = _runNumberRepository.Find(runNumberId); result.RunNumberStatusId = updatedValue; _runNumberRepository.Save(result); } catch (Exception ex) { throw new Exception("Error occur while updating status in 'RunDetail' table.", ex); } }
public void SendEmails() { try { var emailDetail = emailTrackingRepository.FindAll().Where(x => x.EmailStatus.Equals((int)EmailStatusType.Ready)).OrderBy(x => x.CreatedAt).Take(10).ToList(); SingletonLogger.Instance.Debug("Ready Emails are :" + emailDetail.Count()); smtpDetail = smtpDetailsRepository.Find(1);//TODO static value replace later SingletonLogger.Instance.Debug("Email Send From " + smtpDetail.SmtpUser); smtpMail = new SmtpMail(smtpDetail.SmtpHost, smtpDetail.SmtpUser, smtpDetail.Password); foreach (var email in emailDetail) { RunDetail runDetail = runDetailsRepository.Find(email.RunNumberId); SingletonLogger.Instance.Debug("Email Id = " + email.EmailTrackingId); if (string.IsNullOrEmpty(email.EmailToIds)) { SingletonLogger.Instance.Debug("To email Ids not found in DB."); continue; } SingletonLogger.Instance.Debug("Email Sending To " + email.EmailToIds); smtpMail.To = email.EmailToIds; smtpMail.From = smtpDetail.SmtpUser; smtpMail.Subject = email.Subjects.Replace("{{RUN_NUMBER}}", runDetail.RunNumber); smtpMail.Body = email.Body.Replace("{{RUN_NUMBER}}", runDetail.RunNumber); if (!string.IsNullOrEmpty(email.EmailCcIds)) { smtpMail.Cc = email.EmailCcIds; } try { SingletonLogger.Instance.Debug("Start Sending Email"); var result = smtpMail.SendEmail(); if (string.IsNullOrEmpty(result)) { email.EmailStatus = (int)EmailStatusType.Success; SingletonLogger.Instance.Debug("Email Status Set to SUCCESS"); email.SentMessage = "Email sent successfully."; SingletonLogger.Instance.Debug("Email sent successfully"); } else { SingletonLogger.Instance.Error("Error in sending email. Detail : " + result); email.EmailStatus = (int)EmailStatusType.Error; email.SentMessage = result; } } catch (Exception ex) { SingletonLogger.Instance.Error("Error in sending email. Detail : " + ex.ToString()); email.EmailStatus = (int)EmailStatusType.Error; email.SentMessage = ex.Message; } //update entry SingletonLogger.Instance.Debug("Updating Status in Email Tracking table with Id = " + email.EmailTrackingId); email.Status = true; email.SentDate = DateTime.Now; emailTrackingRepository.Save(email); SingletonLogger.Instance.Debug("Updated Status " + email.Status + " in Email Tracking table successfully"); } SingletonLogger.Instance.Debug("Email component Complete"); } catch (Exception ex) { SingletonLogger.Instance.Error(ex.ToString()); } }