public static void SendMail(string emailBody, string emailSubject, string emailFrom, string emailTo) { try { System.Net.Mail.SmtpClient smtpObj = new System.Net.Mail.SmtpClient(); smtpObj.Port = 25; smtpObj.Timeout = 10000; smtpObj.DeliveryMethod = SmtpDeliveryMethod.Network; smtpObj.EnableSsl = true; smtpObj.UseDefaultCredentials = false; smtpObj.Host = "smtp.gmail.com"; System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage(); System.Net.Mail.MailAddress mailAddrFrom = new System.Net.Mail.MailAddress(emailFrom); mailMessage.From = mailAddrFrom; string[] addrTo = emailTo.Split(";".ToCharArray()); foreach (string s in addrTo) { mailMessage.To.Add(s); } mailMessage.Subject = emailSubject; //.GetConfigSetting("MailSubject"); mailMessage.Body = emailBody + Environment.NewLine + "Time=" + System.DateTime.Now; mailMessage.IsBodyHtml = false; smtpObj.Credentials = new System.Net.NetworkCredential(ConfigHelper.GetConfigSetting("MailUserID"), ConfigHelper.GetConfigSetting("MailPassword")); smtpObj.Send(mailMessage); } catch (Exception ex) { } }
static ExceptionHelper() { _emailTo = ConfigHelper.GetConfigSetting("ExceptionEmailTo"); _emailFrom = ConfigHelper.GetConfigSetting("ExceptionEmailFrom"); _emailSubject = ConfigHelper.GetConfigSetting("ExceptionEmailSubject"); _eventSource = ConfigHelper.GetConfigSetting("ExceptionEventLogSource"); }
/// <summary> /// Returns a temporary folder /// </summary> /// <returns></returns> public string GetTemporaryFolder(string filedetail) { FileInfo fileInfo = new FileInfo(filedetail); string fileprefix = GetFilenamePrefix(fileInfo); string tempDirectory = string.Empty; if (!Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefix)) { tempDirectory = Directory.CreateDirectory(ConfigHelper.GetConfigSetting("TempFile") + fileprefix).ToString(); } tempDirectory = ConfigHelper.GetConfigSetting("TempFile") + fileprefix.ToString(); return(tempDirectory); }
public void SaveToProcessed(string fileprefix) { string[] Outputfiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\Output"); foreach (string file in Outputfiles) { FileInfo fileProcessed = new FileInfo(file); DirectoryInfo diTemp = new DirectoryInfo(ConfigHelper.GetConfigSetting("Processed")); if (!Directory.Exists(diTemp.ToString())) { diTemp = Directory.CreateDirectory(ConfigHelper.GetConfigSetting("Processed")); } File.Move(file, ConfigHelper.GetConfigSetting("Processed") + fileProcessed.Name); Debug.WriteLine("Moved " + fileProcessed.Name + " to Processed folder."); } }
public int GetErrorCount(string filePreFix) { DirectoryInfo InboundDirectory = new DirectoryInfo(ConfigHelper.GetConfigSetting("InputFile")); List <string> InboundDirectoryInprogressFiles = GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, ".inprogress"); if (InboundDirectoryInprogressFiles.Count() > 0) { FileInfo Inboundfile = new FileInfo(InboundDirectoryInprogressFiles.FirstOrDefault().ToString()); if (Inboundfile.Name.Contains(".inprogress.")) { int ErrorOccurence = 1; string[] filenameParts = Inboundfile.Name.Split('.'); return(ErrorOccurence = Convert.ToInt32(filenameParts[filenameParts.Length - 2])); } } return(0); }
public void ConvertToPdf(FileInfo file) { string ext = Path.GetExtension(file.Extension); if (Convert.ToString(ext).ToUpper() == ".MSG") { string fileprefix = GetFilenamePrefix(file); this.ExtractFilesFromOutlookMsg(file.FullName, fileprefix); } else if (Convert.ToString(ext).ToUpper() == ".PDF" || Convert.ToString(ext).ToUpper() == ".JPG" || Convert.ToString(ext).ToUpper() == ".JPEG" || Convert.ToString(ext).ToUpper() == ".PNG" || Convert.ToString(ext).ToUpper() == ".GIF" || Convert.ToString(ext).ToUpper() == ".TIF" || Convert.ToString(ext).ToUpper() == ".BMP") { string fileprefix = GetFilenamePrefix(file); diTempoutput = new DirectoryInfo(ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\Output\"); if (!Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\Output")) { diTempoutput = CreateDirectorywithfolder("TempFile", fileprefix, FolderType.folderwithoutput); } File.Copy(file.FullName, diTempoutput.FullName + @"\" + file.Name); } else { Byte[] bytes = File.ReadAllBytes(file.FullName); String filebytestring = Convert.ToBase64String(bytes); CloudConverter cloudConverter = new CloudConverter(); cloudConverter.file = filebytestring; cloudConverter.apikey = ConfigHelper.GetConfigSetting("apikey"); cloudConverter.inputformat = Convert.ToString(ext).Replace(".", ""); cloudConverter.outputformat = "pdf"; cloudConverter.input = ConfigHelper.GetConfigSetting("input"); cloudConverter.filename = file.Name; cloudConverter.timeout = "30000"; cloudConverter.wait = ConfigHelper.GetConfigSetting("wait"); cloudConverter.download = "inline"; cloudConverter.save = "true"; ConvertFromDoc(cloudConverter, file); } }
public DirectoryInfo CreateDirectorywithfolder(string name, string fileprefix, FolderType foldertype) { DirectoryInfo diTemp = null; switch (foldertype) { case FolderType.onlyfolder: diTemp = Directory.CreateDirectory(ConfigHelper.GetConfigSetting(name)); break; case FolderType.folderwithprefix: diTemp = Directory.CreateDirectory(ConfigHelper.GetConfigSetting(name) + fileprefix); break; case FolderType.folderwithoutput: diTemp = Directory.CreateDirectory(ConfigHelper.GetConfigSetting(name) + fileprefix + @"/Output"); break; } return(diTemp); }
/// <summary> /// Opens the selected MSG of EML file /// </summary> /// <param name="fileName"></param> private void ExtractFilesFromOutlookMsg(string fileName, string fileprefix) { // Open the selected file to read. string tempFolder = null; tempFolder = GetTemporaryFolder(fileName); _tempFolders.Add(tempFolder); var msgReader = new Reader(); var files = msgReader.ExtractToFolder( fileName, tempFolder, false); var error = msgReader.GetErrorMessage(); if (!string.IsNullOrEmpty(error)) { throw new Exception(error); } foreach (string Msgitem in files) { FileInfo fileInfo = new FileInfo(Msgitem); if (fileInfo.Extension.ToUpper() == ".HTM") { string newPath = Path.ChangeExtension(Msgitem, "html"); string oldfilename = fileInfo.FullName; string newFilename = ConfigHelper.GetConfigSetting("TempFile") + fileprefix + fileInfo.Name; File.Move(oldfilename, newFilename); string nepath = ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\" + fileprefix + "_" + fileInfo.Name; File.Move(newFilename, nepath); FileInfo ChangedfileInfo = new FileInfo(nepath); ConvertToPdf(ChangedfileInfo); } else { ConvertToPdf(fileInfo); } } }
public void SaveToArchive(string fileprefix) { string[] InputFiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("InputFile")); foreach (string file in InputFiles) { if (file.Contains("inprogress")) { File.Delete(file); } else if (file.Contains(fileprefix)) { FileInfo fileArchived = new FileInfo(file); DirectoryInfo diTemp = new DirectoryInfo(ConfigHelper.GetConfigSetting("Archive") + DateTime.Now.Date.ToString("yyMMdd") + @"\" + fileprefix); if (!Directory.Exists(diTemp.ToString())) { diTemp = Directory.CreateDirectory(ConfigHelper.GetConfigSetting("Archive") + DateTime.Now.Date.ToString("yyMMdd") + @"\" + fileprefix); } File.Move(file, ConfigHelper.GetConfigSetting("Archive") + DateTime.Now.Date.ToString("yyMMdd") + @"\" + fileprefix + @"\" + fileArchived.Name); Debug.WriteLine("Moved " + fileArchived.Name + " to Archive folder."); } } }
static void Main(string[] args) { AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHelper.LogWebException); Application.SetUnhandledExceptionMode( UnhandledExceptionMode.CatchException); BusinessFunctions businessFunctions = new BusinessFunctions(); DirectoryInfo diTemp = null; Debug.WriteLine("Getting Inbound Directory files."); Console.WriteLine(); Console.WriteLine("Getting Inbound Directory files."); //Poonam patel, Date: 03/09/2017,Desc: Getting Inbound Directory to convert file from Inbound DirectoryInfo InboundDirectory = new DirectoryInfo(ConfigHelper.GetConfigSetting("InputFile")); List <string> InboundDirectoryFiles = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundNormalFiles, ""); List <string> InboundDirectoryInprogressFiles = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, ".inprogress"); #region If there is any Inprogress file Debug.WriteLine("Inbound files contain inprogress file then get count."); //Poonam patel, Date: 03/09/2017,Desc: Checking in Directory if its containing any inprogress files or not if it's containing then it will processed first if (InboundDirectoryInprogressFiles.ToList().Count > 0) { FileInfo Inboundfile = new FileInfo(InboundDirectoryInprogressFiles.FirstOrDefault()); int ErrorOccurenceCount = businessFunctions.GetErrorCount(Inboundfile.Name); string fileprefix = businessFunctions.GetFilenamePrefix(Inboundfile); #region If it fails 3 times to convert file into pdf if (ErrorOccurenceCount >= 3) { //Poonam patel, Date: 03/09/2017,Desc: Checking for Folder with given filePreFix is exist in Temp folder or not if (Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefix)) { string[] TempPreFixFiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefix); //looping all files from Fileprefix folder of Temp folder to move it all into ProcessedError folder foreach (string TempPreFixFile in TempPreFixFiles) { FileInfo Processedfile = new FileInfo(TempPreFixFile); File.Move(TempPreFixFile, ConfigHelper.GetConfigSetting("ProcessErrorFile") + Processedfile.Name); } Debug.WriteLine("Moved " + Inboundfile.Name + " to ProcessError folder"); Console.WriteLine("Moved " + Inboundfile.Name + " to ProcessError folder"); //Getting all files from That folder which have given FilePreFix ,to delete it from Inbound folder List <string> InputFilesToProcess = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, fileprefix); foreach (string item in InputFilesToProcess) { FileInfo Processedfile = new FileInfo(item); File.Delete(item); } Debug.WriteLine("deleted" + Inboundfile.Name + " to Inbound folder"); Console.WriteLine("deleted" + Inboundfile.Name + " to Inbound folder"); } } #endregion #region If there is less then 3 but 1 or more then 1 file exist else { string[] tempFiles; if (!Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefix)) { diTemp = businessFunctions.CreateDirectorywithfolder("TempFile", fileprefix, FolderType.folderwithprefix); } diTemp = new System.IO.DirectoryInfo(ConfigHelper.GetConfigSetting("TempFile") + fileprefix); tempFiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefix); foreach (string item in tempFiles) { if (Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\Output")) { Directory.Delete(ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\Output", true); } File.Delete(item); } List <string> InputFilesToProcess = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, fileprefix); foreach (string inputfile in InputFilesToProcess) { if (!inputfile.Contains("inprogress")) { FileInfo fileInfo = new FileInfo(inputfile); string NewPath = diTemp + @"\" + fileInfo.Name; File.Copy(inputfile, NewPath); } Debug.WriteLine("Copy " + inputfile + " to " + diTemp + " folder."); Console.WriteLine("Copy " + inputfile + " to " + diTemp + " folder."); } foreach (FileInfo file in diTemp.GetFiles()) { businessFunctions.ConvertToPdf(file); List <string> InboundDirectoryInprogressFiles2 = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, ".inprogress"); if (InboundDirectoryInprogressFiles2.Count() > 0) { Main(args); return; } } int CountMsgExtension = Convert.ToInt32(Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefix, "*.msg").Count()); string path = ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\" + "Output"; DirectoryInfo TempOutPath = new DirectoryInfo(path); int CountTempOutputFiles = Convert.ToInt32(TempOutPath.GetFiles().Count()); tempFiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefix); if (CountTempOutputFiles == Convert.ToInt32(tempFiles.Count()) - CountMsgExtension) { businessFunctions.SaveToArchive(fileprefix); businessFunctions.SaveToProcessed(fileprefix); } } #endregion } #endregion #region If there is not any inprogress files then it will get prefix of first file and process all file with given FilePreFix if (InboundDirectory.GetFiles().Count() > 0) { FileInfo FirstFile = InboundDirectory.GetFiles()[0]; string fileprefixMain = businessFunctions.GetFilenamePrefix(FirstFile); if (!Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefixMain)) { diTemp = businessFunctions.CreateDirectorywithfolder("TempFile", fileprefixMain, FolderType.folderwithprefix); List <string> InboundPreFixFiles = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, fileprefixMain); foreach (string TempFile in InboundPreFixFiles) { FileInfo TempFileInfo = new FileInfo(TempFile); File.Copy(TempFile, ConfigHelper.GetConfigSetting("TempFile") + fileprefixMain + @"\" + TempFileInfo.Name); } } if (diTemp != null) { List <string> TempxPreFixFiles = businessFunctions.GetDirectoryFiles(diTemp, DirectoryFileType.InboundNormalFiles, ""); foreach (string TempxPreFixFile in TempxPreFixFiles) { List <string> InboundDirectoryInprogressFiles2 = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, ".inprogress"); if (InboundDirectoryInprogressFiles2.Count() > 0) { Main(args); return; } FileInfo filedd = new FileInfo(TempxPreFixFile); businessFunctions.ConvertToPdf(filedd); } string[] tempSuccessFiles; List <string> InboundDirectoryFiles3 = businessFunctions.GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundNormalFiles, ""); int CountMsgExtension = Convert.ToInt32(Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefixMain, "*.msg").Count()); string path = ConfigHelper.GetConfigSetting("TempFile") + fileprefixMain + @"\" + "Output"; DirectoryInfo TempOutPath = new DirectoryInfo(path); int CountTempOutputFiles = Convert.ToInt32(TempOutPath.GetFiles().Count()); tempSuccessFiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefixMain); if (CountTempOutputFiles == Convert.ToInt32(tempSuccessFiles.Count()) - CountMsgExtension) { businessFunctions.SaveToArchive(fileprefixMain); businessFunctions.SaveToProcessed(fileprefixMain); } if (InboundDirectory.GetFiles().Count() > 0) { Main(args); } } } #endregion Debug.WriteLine("Process completed.."); }
public async Task ConvertFromDoc(CloudConverter cloudConverter, FileInfo fileinfo) { try { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(ConfigHelper.GetConfigSetting("BaseAddress")); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www.form-urlencoded")); StringContent content = new StringContent(JsonConvert.SerializeObject(cloudConverter), Encoding.UTF8, "application/json"); Debug.WriteLine(fileinfo.Name + " is start to converting."); Console.WriteLine(fileinfo.Name + " is start to converting."); HttpResponseMessage response = client.PostAsync(client.BaseAddress, content).Result; if (response.StatusCode == HttpStatusCode.OK) { System.Uri url = response.RequestMessage.RequestUri; string fileprefix = GetFilenamePrefix(fileinfo); if (!Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefix)) { DirectoryInfo diTemp = CreateDirectorywithfolder("TempFile", fileprefix, FolderType.folderwithprefix); diTempoutput = CreateDirectorywithfolder("TempFile", fileprefix, FolderType.folderwithoutput); } else if (!Directory.Exists(ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\Output")) { diTempoutput = CreateDirectorywithfolder("TempFile", fileprefix, FolderType.folderwithoutput); } string fileName = ConfigHelper.GetConfigSetting("TempFile") + fileprefix + @"\Output\" + Path.GetFileNameWithoutExtension(cloudConverter.filename) + ".pdf"; string[] InputFiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("InputFile")); foreach (string file in InputFiles) { if (file.Contains("inprogress")) { File.Delete(file); break; } } HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); using (WebResponse responsestream = (HttpWebResponse)request.GetResponse()) { using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) { byte[] bytes = ReadFully(responsestream.GetResponseStream()); stream.Write(bytes, 0, bytes.Length); } } Console.WriteLine(fileinfo.Name + " is converted."); } else { Console.WriteLine(fileinfo.Name + " is fail to convert."); string fileprefix = GetFilenamePrefix(fileinfo); int Count = GetErrorCount(fileprefix); string filename = cloudConverter.filename; filename = fileprefix + ".inprogress." + Count + ".txt"; if (!File.Exists(ConfigHelper.GetConfigSetting("InputFile") + filename)) { int Counter = Count + 1; filename = fileprefix + ".inprogress." + Counter + ".txt"; using (var myFile = File.Create(ConfigHelper.GetConfigSetting("InputFile") + filename)) { // interact with myFile here, it will be disposed automatically } } else { Count = Count + 1; if (Count > 3) { string[] Templfiles = Directory.GetFiles(ConfigHelper.GetConfigSetting("TempFile") + fileprefix); foreach (string file in Templfiles) { FileInfo Processedfile = new FileInfo(file); File.Move(file, ConfigHelper.GetConfigSetting("ProcessErrorFile") + Processedfile.Name); } //Getting Inbound Directory to coonvert file from Inbound DirectoryInfo InboundDirectory = new DirectoryInfo(ConfigHelper.GetConfigSetting("InputFile")); List <string> InputFilesToProcess = GetDirectoryFiles(InboundDirectory, DirectoryFileType.InboundFileWithPrefix, fileprefix); foreach (string item in InputFilesToProcess) { FileInfo Processedfile = new FileInfo(item); File.Delete(item); } } File.Delete(ConfigHelper.GetConfigSetting("InputFile") + fileprefix + ".inprogress." + (Count - 1) + ".txt"); using (var myFile = File.Create(ConfigHelper.GetConfigSetting("InputFile") + fileprefix + ".inprogress." + (Count) + ".txt")) { } } } } } catch (Exception ex) { AppDomain currentDomain = AppDomain.CurrentDomain; UnhandledExceptionEventArgs arges = new UnhandledExceptionEventArgs(ex, false); ExceptionHelper exceptionHelper = new ExceptionHelper(); ExceptionHelper.LogWebException(null, arges); } }