private void LogAndNotifyError(Account crmAccount, Business dcBusinessRecord, ServiceResponse serviceResponse) { var sb = new StringBuilder(); serviceResponse.GetMessages(MessageTypeEnum.Error).ForEach(m => sb.AppendLine("\t" + m.Text)); Log.Debug(serviceResponse.Messages); Console.WriteLine("AccountId: " + crmAccount.CRMAccountNumber + "\n " + sb.ToString()); //notify sales team here that there exists another record with different account Id but same business name // the reason for failure in account import if (serviceResponse.GetMessages(MessageTypeEnum.Error).Any(x => x.Key == "BusinessName")) { var dcAccountId = Db.Businesses.Where(x => x.BusinessName.Trim().ToUpper() == crmAccount.Name.Trim().ToUpper()) .Select(y => y.AccountId).FirstOrDefault(); var dcBusinessName = Db.Businesses.Where(x => x.BusinessName.Trim().ToUpper() == crmAccount.Name.Trim().ToUpper()) .Select(y => y.BusinessName).FirstOrDefault(); var errorMessage = "CRM Account: " + Environment.NewLine + "CRM Account Number: " + crmAccount.CRMAccountNumber + Environment.NewLine + "Name: " + crmAccount.Name + Environment.NewLine + Environment.NewLine + "Daikin City Account: " + Environment.NewLine + "Account Id: " + dcAccountId + Environment.NewLine + "Business Name: " + dcBusinessName; var emailValue = Utilities.Config("dpo.sales.team.email"); var subject = "Daikin Import Errors - Account Import"; WebImportError.NotifyErrorViaEmail(errorMessage, this.GetType().Name, emailValue, subject); //notify concerned parties.. } //this.Context.Entry(dcBusinessRecord).State = EntityState.Unchanged; serviceResponse.Messages.Clear(); }
public void LogAndSendErrorsOnOrderStatusUpdates(string identifier, string errorMessage) { System.Diagnostics.Trace.TraceError(errorMessage); var customErrorMessage = string.Concat($"Unable to update projects for {identifier} in DC due to : {errorMessage}"); var emailVal = "dpo.dev.team.email"; var subject = "Daikin Project Update Errors"; WebImportError.NotifyErrorViaEmail(customErrorMessage, this.GetType().Name, emailVal, subject); _log.Fatal("Updating project from Mapics failed"); _log.FatalFormat("Error Details: {0}", customErrorMessage); Console.WriteLine(customErrorMessage); }
private void LogAndSendExceptionMessage(string errorMessage, Exception ex) { if (System.DateTime.Now.Hour >= 5 && System.DateTime.Now.Hour <= 6) { var errorMsg = errorMessage; var emailValue = Utilities.Config("dpo.dev.team.email"); var subject = "Daikin Import Errors - Account Import"; WebImportError.NotifyErrorViaEmail(errorMessage, this.GetType().Name, emailValue, subject); daikinServices._log.Fatal("Inserting Business into DC database failed"); } // Remove errored record. This could be done better with transactions //Db.Context.Entry(dpoBusiness).State = EntityState.Detached; Console.WriteLine(ex.InnerException?.Message + ex.InnerException); }