コード例 #1
0
        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)
            {
            }
        }
コード例 #2
0
 static ExceptionHelper()
 {
     _emailTo      = ConfigHelper.GetConfigSetting("ExceptionEmailTo");
     _emailFrom    = ConfigHelper.GetConfigSetting("ExceptionEmailFrom");
     _emailSubject = ConfigHelper.GetConfigSetting("ExceptionEmailSubject");
     _eventSource  = ConfigHelper.GetConfigSetting("ExceptionEventLogSource");
 }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
 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.");
     }
 }
コード例 #5
0
        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);
        }
コード例 #6
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);
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        /// <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);
                }
            }
        }
コード例 #9
0
 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.");
         }
     }
 }
コード例 #10
0
        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..");
        }
コード例 #11
0
        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);
            }
        }