コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }