private void CreateProcessLog(MessageDetails msgDetails, string _errMessage) { IAPL.Transport.Data.DbTransaction db = new IAPL.Transport.Data.DbTransaction(); //sourcefilelog table System.Collections.Hashtable hTable = new System.Collections.Hashtable(); hTable.Add("@trdpCode", msgDetails.TradingCode); hTable.Add("@msgCode", msgDetails.MessageCode); hTable.Add("@erpID", msgDetails.ERP); hTable.Add("@sflgIsCountrySetup", "1"); hTable.Add("@sflgFileType", "1"); hTable.Add("@sflgSourceFilename", msgDetails.SourceFile);//srcServerDetails.GetSourceFile()); //hTable.Add("@sflgDestinationFilename", desServerDetails.GetFTPSourceFile(srcServerDetails.GenFileName())); hTable.Add("@sflgDestinationFilename", "N/A"); //msgDetails.SourceFile = msgDetails.SourceFile;//fileName; //msgDetails.SourceFolder = msgDetails.SourceFolder;//srcServerDetails.ServerFolder; //processlog table System.Collections.Hashtable hTable2 = new System.Collections.Hashtable(); hTable2.Add("@apluCode", msgDetails.ApplicationCode); hTable2.Add("@PRNCPL", msgDetails.Principal); hTable2.Add("@msgCode", msgDetails.MessageCode); hTable2.Add("@ERPID", msgDetails.ERP); hTable2.Add("@prlgCustID", ""); hTable2.Add("@prlgProcessSource", ""); msgDetails.StartDate = DateTime.Now.ToString(); msgDetails.EndDate = DateTime.Now.ToString(); hTable2.Add("@prlgStartDate", msgDetails.StartDate); hTable2.Add("@prlgEndDate", msgDetails.EndDate); // this should appear on the update method hTable2.Add("@prlgIsSuccess", "0"); // this should appear on the update method hTable2.Add("@prlgDescription", "REQUEUE SENDING FAILED"); hTable2.Add("@prlgTechnicalErrDesc", _errMessage); hTable2.Add("@prlgSourceParent", ""); hTable2.Add("@prlgSourceParentCount", "0"); hTable2.Add("@prlgSourceChild", "0"); hTable2.Add("@prlgSourceChildCount", "0"); db.InsertTransactionLog(hTable, hTable2); }
public void SaveRequeueFile(string srcFileName, string desFileName, MessageDetails msgDetails, ServerDetails srcServerDetails, ServerDetails desServerDetails) { //create requeue folder if not exist string requeueFolder = msgDetails.BackupFolder.Substring(0, msgDetails.BackupFolder.LastIndexOfAny(@"\".ToCharArray())) + @"\" + IAPL.Transport.Configuration.Config.GetAppSettingsValue("RequeueFolder", "requeue"); string requeuePath = string.Empty; string dumpPath = msgDetails.BackupFolder.Substring(0, msgDetails.BackupFolder.LastIndexOfAny(@"\".ToCharArray())) + @"\" + Config.GetAppSettingsValue("tempfolderforzip", "temp") + @"\Dump"; string sourcePath = string.Empty; if (!IAPL.Transport.Util.CommonTools.DirectoryExist(requeueFolder)) { System.IO.Directory.CreateDirectory(requeueFolder); } requeuePath = desServerDetails.GetNetworkSourceFile(requeueFolder, desFileName); if (File.Exists(srcFileName)) { sourcePath = srcFileName; if (File.Exists(requeuePath)) { File.Delete(requeuePath); } File.Copy(sourcePath, requeuePath); } else { sourcePath = desServerDetails.GetNetworkSourceFile(dumpPath, srcFileName); if (File.Exists(sourcePath)) { if (File.Exists(requeuePath)) { File.Delete(requeuePath); } File.Copy(sourcePath, requeuePath); string origSourcePath = srcServerDetails.GetNetworkSourceFile(srcServerDetails.ServerAddress, srcFileName); if (File.Exists(origSourcePath)) { File.Delete(origSourcePath); } } else { sourcePath = desServerDetails.GetNetworkSourceFile(msgDetails.BackupFolder, srcFileName); if (File.Exists(requeuePath)) { File.Delete(requeuePath); } File.Copy(sourcePath, requeuePath); } } //save to requeue table RequeueFile theRequeueFile = new RequeueFile(); theRequeueFile.RequeueFileId = 0; theRequeueFile.trdpCode = msgDetails.TradingCode; theRequeueFile.MsgCode = msgDetails.MessageCode; theRequeueFile.SourceFileName = (msgDetails.FilesSentBatch && msgDetails.IsZIP && msgDetails.SourceFiles != string.Empty) ? msgDetails.SourceFiles : srcFileName; theRequeueFile.OutputFileName = desFileName; theRequeueFile.CreateDate = DateTime.Now; theRequeueFile.UpdateDate = DateTime.MinValue; theRequeueFile.IsActive = true; theRequeueFile.TempExtension = (desServerDetails.IsUseFileTempExtension ? desServerDetails.FileTempExtension : string.Empty); RequeueFileDALC theRequeueFileDALC = new RequeueFileDALC(); theRequeueFileDALC.SaveRequeueFile(theRequeueFile); }
private string CreateHTMLEmailForClient(bool isSuccessful, string xsltFile, List <string> Sent, ServerDetails srvDetails, MessageDetails msgDetails, List <string> Pending) { string result = ""; IAPL.Transport.Util.XmlData xmlData = new IAPL.Transport.Util.XmlData(); // this.ErrorMessage = ""; try { int _total = Sent.Count + Pending.Count; xmlData.CreateMainTag("NewDataSet"); xmlData.AddElement("NewDataSet", "Table", ""); //xmlData.CreateMainTag("Table"); xmlData.AddElement("NewDataSet", "Subject", this.returnHtmlData(srvDetails.EmailSubject)); //this.serverInformation.EmailSubject)); xmlData.AddElement("NewDataSet", "DateTime", this.returnHtmlData(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss"))); xmlData.AddElement("NewDataSet", "SupplierName", this.returnHtmlData(msgDetails.SupplierName)); //messageInformation.SupplierName)); xmlData.AddElement("NewDataSet", "SourceFileName", this.returnHtmlData(Path.GetFileName(xsltFile))); //this.SourceFile)); xmlData.AddElement("NewDataSet", "SourceFolder", this.returnHtmlData(msgDetails.SourceFolder)); xmlData.AddElement("NewDataSet", "ERPID", this.returnHtmlData(msgDetails.ERP)); //this.messageInformation.ERP)); xmlData.AddElement("NewDataSet", "DestinationURL", this.returnHtmlData(srvDetails.ServerAddress)); //this.messageInformation.ERP)); xmlData.AddElement("NewDataSet", "Total", this.returnHtmlData(Sent.Count + " / " + _total)); //this.messageInformation.ERP)); for (int i = 1; i < Sent.Count + 1; i++) { xmlData.AddElement("NewDataSet", "ItemEntry" + (i - 1), this.returnHtmlData(Sent[i - 1].ToString()));//this.messageInformation.ERP)); } for (int i = 1; i < Pending.Count + 1; i++) { xmlData.AddElement("NewDataSet", "PendingEntry" + (i - 1), this.returnHtmlData(Sent[i - 1].ToString()));//this.messageInformation.ERP)); } if (!isSuccessful) { xmlData.AddElement("Table", "ProcesslogID", this.returnHtmlData("ProcessLOGID"));//this.messageInformation.ProcessLogID)); xmlData.AddElement("Table", "CustomerID", ""); xmlData.AddElement("Table", "prlgProcessSource", ""); xmlData.AddElement("Table", "prlgStartDate", this.returnHtmlData("DateToday")); //this.messageInformation.StartDate)); xmlData.AddElement("Table", "prlgEndDate", this.returnHtmlData("END DATE")); //this.messageInformation.EndDate)); xmlData.AddElement("Table", "ERPID", this.returnHtmlData("ANOTHER ERPID")); //this.messageInformation.ERP)); xmlData.AddElement("Table", "prlgIsSuccess", "0"); xmlData.AddElement("Table", "apluCode", this.returnHtmlData("APLU CODE")); //this.messageInformation.ApplicationCode)); xmlData.AddElement("Table", "prlgDescription", this.returnHtmlData("Description")); //this.messageInformation.TransDescription)); xmlData.AddElement("Table", "prlgTechnicalErrDesc", this.returnHtmlData("Technical Error Desc")); //this.messageInformation.TechnicalErrorDescription)); xmlData.AddElement("Table", "prlgSourceParentCount", ""); xmlData.AddElement("Table", "prlgSourceParent", ""); xmlData.AddElement("Table", "prlgSourceChild", "0"); xmlData.AddElement("Table", "prlgSourceChildCount", "0"); xmlData.AddElement("Table", "prlgAddDate", this.returnHtmlData("ADD DATE"));//this.messageInformation.StartDate)); } result = convertXSLTToHTML(xsltFile, xmlData.GetXmlData); } catch (Exception ex) { string _result = ex.Message; Console.WriteLine("CreateHTMLEmailForClient: " + ex.Message); //this.ErrorMessage = ex.Message.ToString(); } return(result); }
public bool GenerateHTML(List <string> Sent, List <string> Failed, string TempFolderEmail, string XSLTFile, ServerDetails sDetails, MessageDetails mDetails, List <SentDetail_BO> filesSent, bool isTechnicalError) { //Demo purposes //Preparation Code //1. Create Guid folder string _tempGUID = IAPL.Transport.Util.CommonTools.CreateGuidFolder(TempFolderEmail) + "\\"; string _fileName = Path.GetFileName(XSLTFile); string _workingFile = _tempGUID + _fileName; //2. copy XSLTFile to Guid File.Copy(XSLTFile, _tempGUID + _fileName); //3. add sent files to file //Add the sent stuff #region SENT StringBuilder _sbHeader = new StringBuilder(); StringBuilder _sbBody = new StringBuilder(); //Sent Files for (int i = 0; i < Sent.Count; i++) { string a = Sent[i].ToString(); string b = filesSent[i].FileName; string c = filesSent[i].DateSent; _sbHeader.AppendLine(AddEntry("ItemEntry", i, true, filesSent[i].DateSent, "SentFiles")); _sbBody.AppendLine(AddEntry("ItemEntry", i, false, filesSent[i].DateSent, "SentFiles")); //MessageBox.Show(_list[i]); } //READY THE LOOP FOR PENDING FILES for (int i = 0; i < Failed.Count; i++) { _sbHeader.AppendLine(AddEntry("PendingEntry", i, true, filesSent[i].DateSent, "PendingFiles")); _sbBody.AppendLine(AddEntry("PendingEntry", i, false, filesSent[i].DateSent, "PendingFiles")); } //XSLT FOR CLIENT HAS BEEN CREATED bool success = AppendToFile(_workingFile, "ItemEntry", _sbHeader, _tempGUID + "BBraunClient.xslt", _sbBody, true); //CREATE THE HTML EMAIL FOR THE CLIENT string toSend = CreateHTMLEmailForClient(false, _tempGUID + "BBraunClient.xslt", Sent, sDetails, mDetails, Failed); //SEND EMAIL if (toSend != "") { //Successful mailing Operation.Email _ToMail = new IAPL.Transport.Operation.Email(sDetails.EmailAddressFrom, sDetails.EmailAddressTo, sDetails.EmailAddressCC, sDetails.EmailAddressBCC, sDetails.EmailSubject, 3, Configuration.Config.GetAppSettingsValue("emailnotificationsmtp", "")); _ToMail.Send(true, toSend, null); } #endregion //Clean up Directory.Delete(_tempGUID, true); return(true); }
private void TechnicalErrorEmail(string errorMessage, HTTPProcessObject _httpObject) { string technicalError = errorMessage; Data.DbTransaction db = new IAPL.Transport.Data.DbTransaction(); MessageDetails msgDetails = new MessageDetails(); errorMessage = _httpObject.SourceFile + "[\'" + _httpObject.FileName + "\'file has been backup on " + _httpObject.Guid + "folder but failed on transmission to " + _httpObject.URL + " Address!] " + errorMessage; //errorMessage = threadName + " [\'" + fileName + "\' file has been backup on " + msgDetails.BackupFolder + " folder but failed on transmisson to " + //desServerDetails.ServerAddress + " server!] " + errorMessage; IAPL.Transport.Util.TextLogger.Log(IAPL.Transport.Util.TextLogger.messageType.Bulleted, "", errorMessage); // send email notification msgDetails.ProcessLogID = db.GetProcessLogID; msgDetails.TransDescription = "FILETRANSFER - failed."; msgDetails.TechnicalErrorDescription = errorMessage; //emailTrans = new EmailTransaction(msgDetails); msgDetails.ERP = _httpObject.ERP; msgDetails.MessageCode = _httpObject.MessageCode; msgDetails.SupplierName = _httpObject.SupplierName; msgDetails.StartDate = DateTime.Now.ToString(); msgDetails.EndDate = DateTime.Now.ToString(); msgDetails.TechnicalErrorDescription = technicalError; msgDetails.ApplicationCode = "Requeue"; msgDetails.TransDescription = errorMessage; msgDetails.SourceFile = _httpObject.SourceFile; msgDetails.SourceFolder = _httpObject.Guid; msgDetails.Principal = _httpObject.Principal; msgDetails.TradingCode = _httpObject.TradingCode; // //CREATE PROCESSLOG //log to db CreateProcessLog(msgDetails, errorMessage); //db.UpdateTransactionLog(false, "FILETRANSFER - failed.", errorMessage); EmailTransaction emailtrans = new EmailTransaction(msgDetails); emailtrans.DestinationFolder = _httpObject.URL; emailtrans.SourceFile = _httpObject.path; emailtrans.OutputFile = "N/A"; //emailTrans.DestinationFolder = desServerDetails.GetDestinationFolder(desServerDetails.ServerFolder); //emailTrans.SourceFile = srcServerDetails.GetSourceFile(); //emailTrans.OutputFile = desServerDetails.GetDestinationFile(desServerDetails.ServerFolder); //IAPL.Transport.Transactions.EmailTransaction emailTrans = new EmailTransaction(msgDetails); if (!emailtrans.SendEmailNotification(_httpObject.FileName, _httpObject.SourceFile, false)) { string[] errorList = IAPL.Transport.Util.TextLogger.ParseError(emailtrans.ErrorMessage); if (errorList.Length >= 2) { IAPL.Transport.Util.TextLogger.LogError(errorList[0], "[Thread: " + _httpObject.SourceFile + "] " + errorList[1]); } else { IAPL.Transport.Util.TextLogger.LogError("Worker-ProcessFile()", "[Thread: " + _httpObject.SourceFile + "] " + emailtrans.ErrorMessage); } } }