public FirstAlertReportPresenter(IFirstAlertReportView view) { _view = view; _model = new FirstAlertModel(); _settingsModel = new SettingsModel(); }
/// <summary> /// Executes the service process to check for delivery Confirmation /// </summary> /// <returns>True if process ran OK, False if there was an error</returns> public bool DeliveryServiceWork() { try { string emailAccount = string.Empty; string emailPassword = string.Empty; string emailDomain = string.Empty; SettingsModel model = new SettingsModel(_unitOfWork); string[] emailConfiguration = model.GetEmailConfiguration(); emailAccount = emailConfiguration[0]; emailPassword = emailConfiguration[1]; emailDomain = emailConfiguration[2]; using (mailUtility = new MailUtility(emailAccount, emailPassword, emailDomain)) { List<int> deliveredList = mailUtility.getEmailDeliveryConfirmation(); List<int> nonDeliveredList = mailUtility.GetEmailNonDeliveryConfirmation(); // Gets the list of pendingl emails IList<CS_Email> DeliveredEmails = ListEmailsById(deliveredList); foreach (CS_Email email in DeliveredEmails) { try { UpdateStatusEmail(email, Globals.EmailService.Status.ConfirmationReceived); } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to update the Email with ID {0}!\n{1}\n{2}", email.ID, ex.InnerException, ex.StackTrace)); } } // Gets the list of nonDelivered emails IList<CS_Email> nonDeliveredEmails = ListEmailsById(nonDeliveredList); foreach (CS_Email email in nonDeliveredEmails) { try { UpdateStatusEmail(email, Globals.EmailService.Status.Error); } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to update the Email with ID {0}!\n{1}\n{2}", email.ID, ex.InnerException, ex.StackTrace)); } } } } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to confirm de delivery of the Emails!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); // This process will not send any emails if there's an error, because it might be an exchange server problem return false; } return true; }
public void TestUpdateNonJobNumber() { using (settingsModel = new SettingsModel(new FakeUnitOfWork())) { int lastNonJobNumber = settingsModel.GetLastNonJobNumber(); settingsModel.UpdateLastNonJobNumber(lastNonJobNumber + 1); Assert.AreEqual<int>(settingsModel.GetLastNonJobNumber(), lastNonJobNumber + 1); } }
/// <summary> /// Service logic method /// </summary> /// <param name="arg"></param> private void DoWork(object arg) { for (; ; ) { if (dynamicsImportStop.WaitOne(20000)) return; try { CustomerModel customerModel = new CustomerModel(); customerModel.ServiceWork(); } catch (Exception ex) { SettingsModel settings = new SettingsModel(); Logger.Write(string.Format("An error has ocurred while running the Dynamics Import Service!\n{0}\n{1}", ex.Message, ex.StackTrace)); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An error has ocurred while running the Dynamics Import Service!\n{0}\n{1}", ex.Message, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "Dynamics Import Service - Error occured on Contact Information", false, null); } //Logger.Write("Test log Service"); } }
/// <summary> /// Executes the service process to send emails /// </summary> /// <returns>True if process ran OK, False if there was an error</returns> public bool EmailServiceWork() { try { string emailAccount = string.Empty; string emailPassword = string.Empty; string emailDomain = string.Empty; SettingsModel model = new SettingsModel(_unitOfWork); string[] emailConfiguration = model.GetEmailConfiguration(); emailAccount = emailConfiguration[0]; emailPassword = emailConfiguration[1]; emailDomain = emailConfiguration[2]; using (mailUtility = new MailUtility(emailAccount, emailPassword, emailDomain)) { // Gets the list of pendingl emails IList<CS_Email> pendingEmails = ListAllPendingEmails(); foreach (CS_Email email in pendingEmails) { try { bool emailed = mailUtility.SendEmail(email.Subject, email.Body, email.Receipts, "", email.ID); if (emailed) UpdateStatusEmail(email, Globals.EmailService.Status.Sent); } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to send the Email with ID {0}!\n{1}\n{2}", email.ID, ex.InnerException, ex.StackTrace)); UpdateStatusEmail(email, Globals.EmailService.Status.Error); } } } return true; } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to send the Emails!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); // This process will not send any emails if there's an error, because it might be an exchange server problem return false; } }
/// <summary> /// Metod that intances all attribute objects /// </summary> private void InstanceObjects() { _firstAlertRepository = new EFRepository<CS_FirstAlert> { UnitOfWork = _unitOfWork }; _firstAlertPersonRepository = new EFRepository<CS_FirstAlertPerson> { UnitOfWork = _unitOfWork }; _firstAlertVehicleRepository = new EFRepository<CS_FirstAlertVehicle> { UnitOfWork = _unitOfWork }; _firstAlertDivisionRepository = new EFRepository<CS_FirstAlertDivision> { UnitOfWork = _unitOfWork }; _callLogRepository = new EFRepository<CS_CallLog> { UnitOfWork = _unitOfWork }; _settingsModel = new SettingsModel(_unitOfWork); _callCriteriaModel = new CallCriteriaModel(_unitOfWork); _callLogResourceRepository = new EFRepository<CS_CallLogResource> { UnitOfWork = _unitOfWork }; _callLogCallCriteriaEmailRepository = new EFRepository<CS_CallLogCallCriteriaEmail> { UnitOfWork = _unitOfWork }; _firstAlertTypeRepository = new EFRepository<CS_FirstAlertType> { UnitOfWork = _unitOfWork }; _firstAlertFirstAlertTypeRepository = new EFRepository<CS_FirstAlertFirstAlertType> { UnitOfWork = _unitOfWork }; _firstAlertContactPersonalRepository = new EFRepository<CS_FirstAlertContactPersonal> { UnitOfWork = _unitOfWork }; _firstAlertReportRepository = new EFRepository<CS_View_FirstAlertReport> { UnitOfWork = _unitOfWork }; _firstAlertReportHulcherVehicleRepository = new EFRepository<CS_View_FirstAlertReportHulcherVehicles> { UnitOfWork = _unitOfWork }; _firstAlertReportOtherVehicleRepository = new EFRepository<CS_View_FirstAlertReportOtherVehicle> { UnitOfWork = _unitOfWork }; _firstAlertReportContactPersonalViewRepository = new EFRepository<CS_View_FirstAlertReportContactPersonal> { UnitOfWork = _unitOfWork }; }
/// <summary> /// Dispose all objects that are no longer needed /// </summary> public void Dispose() { _firstAlertRepository = null; _firstAlertPersonRepository = null; _firstAlertVehicleRepository = null; _firstAlertDivisionRepository = null; _callLogRepository = null; _callLogResourceRepository = null; _callLogCallCriteriaEmailRepository = null; _firstAlertTypeRepository = null; _firstAlertFirstAlertTypeRepository = null; _settingsModel.Dispose(); _settingsModel = null; _callCriteriaModel.Dispose(); _callCriteriaModel = null; _unitOfWork.Dispose(); _unitOfWork = null; }
private void InstanceObjects() { _jobRepository = new CachedRepository<CS_Job>(); _jobRepository.UnitOfWork = _unitOfWork; _jobStatusRepository = new CachedRepository<CS_JobStatus>(); _jobStatusRepository.UnitOfWork = _unitOfWork; _jobDivisionRepository = new EFRepository<CS_JobDivision>(); _jobDivisionRepository.UnitOfWork = _unitOfWork; _priceTypeRepository = new CachedRepository<CS_PriceType>(); _priceTypeRepository.UnitOfWork = _unitOfWork; _jobCategoryRepository = new CachedRepository<CS_JobCategory>(); _jobCategoryRepository.UnitOfWork = _unitOfWork; _jobTypeRepository = new CachedRepository<CS_JobType>(); _jobTypeRepository.UnitOfWork = _unitOfWork; _jobActionRepository = new CachedRepository<CS_JobAction>(); _jobActionRepository.UnitOfWork = _unitOfWork; _lostJobReasonRepository = new CachedRepository<CS_LostJobReason>(); _lostJobReasonRepository.UnitOfWork = _unitOfWork; _competitorRepository = new EFRepository<CS_Competitor>(); _competitorRepository.UnitOfWork = _unitOfWork; _frequencyRepository = new CachedRepository<CS_Frequency>(); _frequencyRepository.UnitOfWork = _unitOfWork; _customerInfoRepository = new EFRepository<CS_CustomerInfo>(); _customerInfoRepository.UnitOfWork = _unitOfWork; _jobDescriptionRepository = new EFRepository<CS_JobDescription>(); _jobDescriptionRepository.UnitOfWork = _unitOfWork; _scopeOfWorkRepository = new EFRepository<CS_ScopeOfWork>(); _scopeOfWorkRepository.UnitOfWork = _unitOfWork; _locationInfoRepository = new EFRepository<CS_LocationInfo>(); _locationInfoRepository.UnitOfWork = _unitOfWork; _jobPhotoReportRepository = new EFRepository<CS_JobPhotoReport>(); _jobPhotoReportRepository.UnitOfWork = _unitOfWork; _presetInfoRepository = new EFRepository<CS_PresetInfo>(); _presetInfoRepository.UnitOfWork = _unitOfWork; _lostJobInfoRepository = new EFRepository<CS_LostJobInfo>(); _lostJobInfoRepository.UnitOfWork = _unitOfWork; _specialPricingRepository = new EFRepository<CS_SpecialPricing>(); _specialPricingRepository.UnitOfWork = _unitOfWork; _jobInfoRepository = new EFRepository<CS_JobInfo>(); _jobInfoRepository.UnitOfWork = _unitOfWork; _jobStatusHistoryRepository = new EFRepository<CS_Job_JobStatus>(); _jobStatusHistoryRepository.UnitOfWork = _unitOfWork; _jobPermitRepository = new EFRepository<CS_JobPermit>(); _jobPermitRepository.UnitOfWork = _unitOfWork; _divisionRepository = new EFRepository<CS_Division>(); _divisionRepository.UnitOfWork = _unitOfWork; _employeeRepository = new EFRepository<CS_Employee>(); _employeeRepository.UnitOfWork = _unitOfWork; _customerRepository = new EFRepository<CS_Customer>(); _customerRepository.UnitOfWork = _unitOfWork; _cityRepository = new EFRepository<CS_City>(); _cityRepository.UnitOfWork = _unitOfWork; _stateRepository = new EFRepository<CS_State>(); _stateRepository.UnitOfWork = _unitOfWork; _countryRepository = new EFRepository<CS_Country>(); _countryRepository.UnitOfWork = _unitOfWork; _zipCodeRepository = new EFRepository<CS_ZipCode>(); _zipCodeRepository.UnitOfWork = _unitOfWork; _contactRepository = new EFRepository<CS_Contact>(); _contactRepository.UnitOfWork = _unitOfWork; _callLogRepository = new EFRepository<CS_CallLog>(); _callLogRepository.UnitOfWork = _unitOfWork; _jobPermitTypeRepository = new CachedRepository<CS_JobPermitType>(); _jobPermitTypeRepository.UnitOfWork = _unitOfWork; _jobSummaryRepository = new EFRepository<CS_View_JobSummary>(); _jobSummaryRepository.UnitOfWork = _unitOfWork; _callLogResourceRepository = new EFRepository<CS_CallLogResource>(); _callLogResourceRepository.UnitOfWork = _unitOfWork; _callLogCallCriteriaEmailRepository = new EFRepository<CS_CallLogCallCriteriaEmail>(); _callLogCallCriteriaEmailRepository.UnitOfWork = _unitOfWork; _turnoverActiveReportRepository = new EFRepository<CS_View_TurnoverActiveReport>(); _turnoverActiveReportRepository.UnitOfWork = _unitOfWork; _turnoverNonActiveReportRepository = new EFRepository<CS_View_TurnoverNonActiveReport>(); _turnoverNonActiveReportRepository.UnitOfWork = _unitOfWork; _jobLocalEquipmentTypeRepository = new EFRepository<CS_Job_LocalEquipmentType>(); _jobLocalEquipmentTypeRepository.UnitOfWork = _unitOfWork; _settingsModel = new SettingsModel(_unitOfWork); _emailModel = new EmailModel(_unitOfWork); _callCriteriaModel = new CallCriteriaModel(_unitOfWork); _mailList = new List<CS_ScopeOfWork>(); _divisionList = new List<CS_JobDivision>(); _mailScope = new StringBuilder(); _mailBillingBuilder = new StringBuilder(); _jobDataRepository = new EFRepository<CS_View_GetJobData>(); _jobDataRepository.UnitOfWork = _unitOfWork; _jobLocalEquipmentTypeRepository = new EFRepository<CS_Job_LocalEquipmentType>(); _jobLocalEquipmentTypeRepository.UnitOfWork = _unitOfWork; _projectCalendarAllocationRepository = new EFRepository<CS_View_ProjectCalendar_Allocation>(); _projectCalendarAllocationRepository.UnitOfWork = _unitOfWork; _projectCalendarReservedRepository = new EFRepository<CS_View_ProjectCalendar_Reserved>(); _projectCalendarReservedRepository.UnitOfWork = _unitOfWork; _projectCalendarCallLogRepository = new EFRepository<CS_View_ProjectCalendar_CallLog>(); _projectCalendarCallLogRepository.UnitOfWork = _unitOfWork; }
/// <summary> /// Fills the initial values of the screen /// </summary> public void LoadPage() { try { using (_dashboardViewModel = new DashboardViewModel(_view)) { _dashboardViewModel.LoadPage(); _dashboardViewModel.FilterJobSummary(); } } catch (Exception ex) { Logger.Write(string.Format("There was an error while trying to Load Page Information!\n{0}\n{1}", ex.Message, ex.StackTrace)); _view.DisplayMessage("There was an error while trying to Load Page Information (Presenter - LoadPage Method).", false); } try { using (_settingsModel = new SettingsModel()) { _view.DashboardRefreshRate = _settingsModel.GetDashboardRefreshRate(); } } catch (Exception ex) { Logger.Write(string.Format("There was an error while trying to get the Refresh Rate information!\n{0}\n{1}", ex.Message, ex.StackTrace)); _view.DisplayMessage("There was an error while trying to Refresh Rate information.", false); } }
public ReportMasterPagePresenter(IReportMasterPageView view) { _view = view; _settingsModel = new SettingsModel(); }
/// <summary> /// Dispose all objects that are no longer needed /// </summary> public void Dispose() { _equipmentInfoRepository = null; _equipmentRepository = null; _equipmentTypeRepository = null; _viewReserveEquipmentRepository = null; _conflictedCombosRepository = null; _equipmentPermitEmailRepository = null; _resourceRepository = null; if (null != _settingsModel) { _settingsModel.Dispose(); _settingsModel = null; } if (null != _locationModel) { _locationModel.Dispose(); _locationModel = null; } if (null != _emailModel) { _emailModel.Dispose(); _emailModel = null; } if (null != _callLogModel) { _callLogModel.Dispose(); _callLogModel = null; } _unitOfWork.Dispose(); _unitOfWork = null; }
/// <summary> /// Sends the email notification for the permit team /// </summary> /// <param name="equipmentPermitId">job id</param> public IList<CS_EquipmentPermitEmail> SendNotificationForPermitTeam(IList<CS_EquipmentPermit> expiredPermits) { _settingsModel = new SettingsModel(); try { IList<CS_EquipmentPermit> expiredLicenses = expiredPermits.Distinct(new Globals.EmailService.CS_EquipmentPermit_Comparer()).ToList(); IList<CS_State> states = new List<CS_State>(); using (_locationModel = new LocationModel()) { states = _locationModel.ListAllStates(); } IList<CS_EquipmentPermitEmail> returnList = new List<CS_EquipmentPermitEmail>(); for (int i = 0; i < expiredLicenses.Count; i++) { CS_EquipmentPermit license = expiredLicenses[i]; IList<CS_EquipmentPermit> expiredEquipments = expiredPermits.Where(e => e.LicenseNumber == license.LicenseNumber && e.Code == license.Code).ToList(); IList<CS_Email> emails = new List<CS_Email>(); //Body string body = GenerateEmailBodyForPermitTeam(license, expiredEquipments, states); //List receipts string receipts = _settingsModel.GetPermitTeamEmails(); //Subject string subject = GenerateEmailSubjectEstimationTeam(license, states); if (!string.IsNullOrEmpty(receipts)) { using (_emailModel = new EmailModel()) { emails = _emailModel.SaveEmailList(receipts, subject, body, "System", Globals.Security.SystemEmployeeID); } } for (int j = 0; j < expiredEquipments.Count; j++) { CS_EquipmentPermit equipmentPermit = expiredEquipments[j]; for (int h = 0; h < emails.Count; h++) { CS_Email email = emails[h]; returnList.Add ( new CS_EquipmentPermitEmail() { EmailID = email.ID, EquipmentPermitID = equipmentPermit.Id, CreatedBy = "System", CreationDate = email.CreationDate, CreationID = Globals.Security.SystemEmployeeID, ModifiedBy = "System", ModificationDate = email.CreationDate, ModificationID = Globals.Security.SystemEmployeeID, Active = true } ); } } } return returnList; } catch (Exception ex) { throw new Exception("There was an error sending the email notification for the Permit Team.", ex); } }
/// <summary> /// Sends the request Customer email /// </summary> /// <param name="emailBody">Email body</param> /// <param name="resend">Indicates if it's a new attempt of sending the request (TRUE) or it's the first attempt (FALSE)</param> /// <param name="cancel">Indicates if it's a new attempt of cancelling the request (TRUE) or it's the first attempt (FALSE)</param> /// <param name="customerNumber">If it's an update request, this field will have the Master Customer ID, if not it will be null</param> /// <param name="username">Username that made the request</param> private void SendCustomerRequestEmail(string emailBody, bool resend, bool cancel, string customerNumber, string username) { string subject = "New Company Request"; if (resend) subject += " (RESEND)"; if (cancel) subject += " (CANCEL)"; if (!string.IsNullOrEmpty(customerNumber)) subject += " - Master ID: " + customerNumber; string[] receipts = null; SettingsModel settingsModel = new SettingsModel(_unitOfWork); string emails = settingsModel.GetCustomerRequestEmails(); if (!string.IsNullOrEmpty(emails)) receipts = emails.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (null != receipts) { EmailModel emailModel = new EmailModel(_unitOfWork); for (int i = 0; i < receipts.Length; i++) { emailModel.SaveEmail(receipts[i], subject, emailBody, username, null); } } }
private bool UpdateCustomers() { try { using (SettingsModel settings = new SettingsModel()) { // Bulk Copying Divisions from IVantage CS_CustomerRepository customerRep = new CS_CustomerRepository(_customerRepository, _customerRepository.UnitOfWork); customerRep.BulkCopyAllCustomers(DynamicsIntegration.Singleton.ListAllCustomers(settings.GetLastUpdateCustomer())); //// Run import tool customerRep.UpdateFromIntegration(); return true; } } catch (Exception ex) { throw ex; } }
public bool ServiceWork() { using (SettingsModel settings = new SettingsModel()) { bool succeded = true; try { UpdateCustomers(); } catch (Exception ex) { //Logger.Write(string.Format("An error has ocurred while trying to import the Customer information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An Error Ocurred when importing the Customer Information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "Dynamics Import Service - Error occured on Customer Information", false, null); return false; } try { UpdateContracts(); } catch (Exception ex) { //Logger.Write(string.Format("An error has ocurred while trying to import the Contract information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An Error Ocurred when importing the Contract Information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "Dynamics Import Service - Error occured on Contract Information", false, null); succeded = false; } try { UpdateContacts(); } catch (Exception ex) { //Logger.Write(string.Format("An error has ocurred while trying to import the Contact information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An Error Ocurred when importing the Contact Information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "Dynamics Import Service - Error occured on Contact Information", false, null); succeded = false; } return succeded; } }
/// <summary> /// Instance objects /// </summary> private void InstanceObjects() { _employeeRepository = new CachedRepository<CS_Employee>(); _employeeOffCallRepository = new EFRepository<CS_EmployeeOffCallHistory>(); _employeeCoverageRepository = new EFRepository<CS_EmployeeCoverage>(); _employeeInfoRepository = new EFRepository<CS_View_EmployeeInfo>(); _employeeCallLogInfoRepository = new EFRepository<CS_View_Employee_CallLogInfo>(); _divisionRepository = new EFRepository<CS_Division>(); _employeeEmergencyContactRepository = new EFRepository<CS_EmployeeEmergencyContact>(); _customerInfoRepository = new EFRepository<CS_CustomerInfo>(); _contactRepository = new EFRepository<CS_Contact>(); _callCriteriaRepository = new EFRepository<CS_CallCriteria>(); _callCriteriaValueRepository = new EFRepository<CS_CallCriteriaValue>(); _callLogRepository = new EFRepository<CS_CallLog>(); _callLogResourceRepository = new EFRepository<CS_CallLogResource>(); _resourceRepository = new EFRepository<CS_Resource>(); _phoneTypeRepository = new EFRepository<CS_PhoneType>(); _phoneNumberRepository = new EFRepository<CS_PhoneNumber>(); _managersLocationRepository = new EFRepository<CS_View_ManagersLocation>(); _employeeRepository.UnitOfWork = _unitOfWork; _employeeOffCallRepository.UnitOfWork = _unitOfWork; _employeeCoverageRepository.UnitOfWork = _unitOfWork; _employeeInfoRepository.UnitOfWork = _unitOfWork; _employeeCallLogInfoRepository.UnitOfWork = _unitOfWork; _divisionRepository.UnitOfWork = _unitOfWork; _employeeEmergencyContactRepository.UnitOfWork = _unitOfWork; _customerInfoRepository.UnitOfWork = _unitOfWork; _contactRepository.UnitOfWork = _unitOfWork; _callCriteriaRepository.UnitOfWork = _unitOfWork; _callCriteriaValueRepository.UnitOfWork = _unitOfWork; _callLogRepository.UnitOfWork = _unitOfWork; _callLogResourceRepository.UnitOfWork = _unitOfWork; _resourceRepository.UnitOfWork = _unitOfWork; _phoneTypeRepository.UnitOfWork = _unitOfWork; _phoneNumberRepository.UnitOfWork = _unitOfWork; _managersLocationRepository.UnitOfWork = _unitOfWork; _callCriteriaModel = new CallCriteriaModel(_unitOfWork); _settingsModel = new SettingsModel(_unitOfWork); _emailModel = new EmailModel(_unitOfWork); _callLogModel = new CallLogModel(_unitOfWork); }
/// <summary> /// Service Method that will start the import process of IVantage data /// </summary> /// <returns>True if process ran OK, False if there was an error</returns> public bool ServiceWork() { SettingsModel settings = new SettingsModel(); EmailModel emailModel = new EmailModel(); try { UpdateDivisions(); } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to import the Division information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An Error Ocurred when importing the Division Information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "IVantage Import Service - Error occured on Division Information", false, null); emailModel.SaveEmailList(settings.GetITEmailOnError(), "IVantage Import Service - Error occured on Division Information", mailError.ToString(), "System", (int)Globals.Security.SystemEmployeeID); return false; } try { UpdateEmployees(); } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to import the Employee information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An Error Ocurred when importing the Employee Information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "IVantage Import Service - Error occured on Employee Information", false, null); emailModel.SaveEmailList(settings.GetITEmailOnError(), "IVantage Import Service - Error occured on Employee Information", mailError.ToString(), "System", (int)Globals.Security.SystemEmployeeID); return false; } try { UpdateEmergencyContacts(); } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while trying to import the Emergency Contact information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An Error Ocurred when importing the Emergency Contact Information!\n{0}\n{1}", ex.InnerException, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "IVantage Import Service - Error occured on Emergency Contact Information", false, null); emailModel.SaveEmailList(settings.GetITEmailOnError(), "IVantage Import Service - Error occured on Emergency Contact Information", mailError.ToString(), "System", (int)Globals.Security.SystemEmployeeID); return false; } return true; }
/// <summary> /// Generates an Email Record with a status of Pending to be sent by the Email Service /// </summary> /// <param name="receipt">Receipt email address (only one)</param> /// <param name="subject">Email subject</param> /// <param name="body">Email body (HTML)</param> /// <param name="username">Username that requested the email creation</param> /// <param name="employeeId">EmployeeId of the Username that requested the email creation</param> public CS_Email SaveEmail(string receipt, string subject, string body, string username, int? employeeId) { string senderEmail = string.Empty; SettingsModel model = new SettingsModel(_unitOfWork); string[] emailConfiguration = model.GetEmailConfiguration(); senderEmail = string.Format("{0}@{1}", emailConfiguration[0], emailConfiguration[2]); CS_Email email = new CS_Email(); email.Sender = senderEmail; email.Receipts = receipt; email.Subject = subject; email.Body = body; email.Status = (short)Globals.EmailService.Status.Pending; email.StatusDate = DateTime.Now; email.CreatedBy = username; email.CreationID = employeeId; email.CreationDate = DateTime.Now; email.ModifiedBy = username; email.ModificationID = employeeId; email.ModificationDate = DateTime.Now; email.Active = true; return _emailRepository.Add(email); }
/// <summary> /// Service logic method /// </summary> /// <param name="arg"></param> private void DoWork(object arg) { for (; ; ) { if (iVantageImportStop.WaitOne(10000)) return; try { EmployeeModel employeeModel = new EmployeeModel(); employeeModel.ServiceWork(); } catch (Exception ex) { Logger.Write(string.Format("An error has ocurred while running the IVantage Import Service!\n{0}\n{1}", ex.Message, ex.StackTrace)); SettingsModel settings = new SettingsModel(); EmailModel emailModel = new EmailModel(); StringBuilder mailError = new StringBuilder(); mailError.AppendLine(string.Format("An error has ocurred while running the IVantage Import Service!\n{0}\n{1}", ex.Message, ex.StackTrace)); //MailUtility.SendMail(settings.GetITEmailOnError(), "", "", mailError.ToString(), "IVantage Import Service - Error occured on Employee Information", false, null); emailModel.SaveEmailList(settings.GetITEmailOnError(), "IVantage Import Service - Error occured on Employee Information", mailError.ToString(), "System", (int)Globals.Security.SystemEmployeeID); } } }
public IList<EmailVO> ListReceiptsByCallLog(string callLogTypeId, int jobId, CS_CallLog callLog, out List<int> callCriteriaIDs) { CS_Job job = new CS_Job(); IList<CS_Employee> lstEmployee = new List<CS_Employee>(); List<CS_Employee> lstEmployeeAux = new List<CS_Employee>(); IList<CS_Contact> lstContacts = new List<CS_Contact>(); IList<EmailVO> lstEmail = new List<EmailVO>(); string emailDomain = string.Empty; SettingsModel model = new SettingsModel(_unitOfWork); emailDomain = model.GetDomain(); CS_CallCriteriaRepository _rep = new CS_CallCriteriaRepository(_callCriteriaRepository, _callCriteriaRepository.UnitOfWork); int callLogID = 0; if (callLog != null) callLogID = callLog.ID; IList<CS_SP_CheckCallCriteria_Result> callCriteriaResult = _rep.CheckCallCriteria(callLogID, int.Parse(callLogTypeId), jobId); IList<int> result = new List<int>(); for (int i = 0; i < callCriteriaResult.Count; i++) { result.Add(callCriteriaResult[i].CallCriteriaID.Value); } callCriteriaIDs = result.ToList(); lstEmployee = _employeeRepository.ListAll(e => e.CS_CallCriteria.Any(f => result.Contains(f.ID) && f.Active)).ToList(); lstContacts = _contactRepository.ListAll(e => e.CS_CallCriteria.Any(f => result.Contains(f.ID) && f.Active)).ToList(); //OLD METHOD //job = _jobRepository.Get(e => e.ID == jobId, new string[] { "CS_JobDivision", "CS_CustomerInfo", "CS_JobInfo", "CS_LocationInfo", "CS_JobDescription" }); //lstEmployee = ListEmployeeCriteriaByDivisionAndCustomer(job); //if (!job.ID.Equals(Globals.GeneralLog.ID)) // lstEmployeeAux = FilterEmployeeByCriteriaValue(lstEmployee, job).ToList(); //if (null != callLog) // lstEmployeeAux.AddRange(VerifyHeavyEquipmentCallCriteria(lstEmployee.ToList(), callLog)); //lstEmployee = lstEmployeeAux.Distinct().ToList(); //lstEmployee = ListEmployeeByCallLogCriteria(callLogTypeId, lstEmployee.ToList()); //for (int i = 0; i < lstEmployee.Count; i++) //{ // CS_EmployeeOffCallHistory offCall = GetActiveOffCallByEmployeeID(lstEmployee[i].ID); // if (null != offCall) // lstEmployee[i] = offCall.CS_Employee_Proxy; //} //lstContacts = ListContactsCriteriaByDivisionAndCustomer(job); //if (!job.ID.Equals(Globals.GeneralLog.ID)) // lstContacts = FilterContactsByCriteriaValue(lstContacts, job); //lstContacts = ListCustomerContactByCallLogCriteria(callLogTypeId, lstContacts.ToList()); //if (null != callLog) // lstContacts = VerifyHeavyEquipmentCallCriteria(lstContacts.ToList(), callLog); for (int i = 0; i < lstEmployee.Count; i++) { if (!string.IsNullOrEmpty(lstEmployee[i].GetEmployeeEmail(emailDomain))) { EmailVO email = new EmailVO(); email.PersonID = lstEmployee[i].ID; email.Name = lstEmployee[i].FullName; email.Email = lstEmployee[i].GetEmployeeEmail(emailDomain); email.Type = (int)Globals.CallCriteria.EmailVOType.Employee; if (!lstEmail.Contains(email, new Globals.EmailService.EmailVO_Comparer())) lstEmail.Add(email); } } for (int i = 0; i < lstContacts.Count; i++) { if (!string.IsNullOrEmpty(lstContacts[i].Email)) { EmailVO email = new EmailVO(); email.PersonID = lstContacts[i].ID; email.Name = lstContacts[i].FullName; email.Email = lstContacts[i].Email; email.Type = (int)Globals.CallCriteria.EmailVOType.Contact; if (!lstEmail.Contains(email, new Globals.EmailService.EmailVO_Comparer())) lstEmail.Add(email); } } return lstEmail; }
public void SendNotificationForTransportationTeam(IList<CS_EquipmentPermit> permitList) { _settingsModel = new SettingsModel(); _emailModel = new EmailModel(); for (int i = 0; i < permitList.Count; i++) { CS_EquipmentPermit permit = permitList[i]; IList<CS_Email> emails = new List<CS_Email>(); //Body string body = GenerateEmailBodyForTransportationTeam(permit); //List receipts string receipts = _settingsModel.GetTransportationTeamEmails(); //Subject string subject = GenerateEmailSubjectTransportationTeam(permit); if (!string.IsNullOrEmpty(receipts)) { emails = _emailModel.SaveEmailList(receipts, subject, body, "System", Globals.Security.SystemEmployeeID); } } }