//----------------------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Reportings the task.
        /// </summary>
        public void ReportingTask()
        {
            configManager.Logger.Debug(EnumMethod.START);
            if (configManager.SystemAnalyzerInfo.SetPMA)
            {
                SMTPTransport smtpTransport = new SMTPTransport();
                FTPTransport ftpTransport = new FTPTransport();
                try
                {

                    _reportFileName = string.Empty;
                    if (File.Exists(_fileName))
                    {
                        _reportFileName = CreateAllProcessCSVReport(_fileName);
                    }
                    if (DateTime.Now > mailingTime)
                    {
                        mailingTime = mailingTime.AddHours(configManager.PMAInfoObj.ReportsIntervalHours);
                        configManager.PMAInfoObj.MailingTime = mailingTime;
                    }
                    if (File.Exists(_fileName))
                    {

                        if (configManager.PMAInfoObj.UseSMTP)
                        {
                            try
                            {

                                string subject = "PMA System Alerts : PMA Report : " + configManager.SystemAnalyzerInfo.ClientInstanceName + " : " + Environment.MachineName + " : " +
                                " at " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();

                                List<string> attachments = new List<string>();
                                attachments.Add(_reportFileName);
                                smtpTransport.SmtpSend(configManager.SmtpInfo, configManager.SystemAnalyzerInfo.ListPMAReportSubscription, null,
                                     subject, GenerateMailMessageBody(), attachments);
                            }
                            catch (InvalidOperationException ex)
                            {
                                configManager.Logger.Message(ex.Message);
                            }
                            catch (Exception ex)
                            {
                                configManager.Logger.Error(ex);
                            }

                        }
                        if (configManager.PMAInfoObj.UseFTP)
                        {
                            try
                            {
                                List<string> ftpFiles = new List<string>();
                                ftpFiles.Add(_reportFileName);
                                ftpTransport.FTPSend(configManager.FtpInfo, ftpFiles);
                            }
                            catch (Exception ex)
                            {
                                configManager.Logger.Error(ex);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    configManager.Logger.Error(ex);
                }
                finally
                {
                    smtpTransport = null;
                    ftpTransport = null;
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    _fileName = GenerateNewFileName();
                    SerializedPMAInfo();
                    configManager.Logger.Debug(EnumMethod.END);
                }
            }
        }
        //-------------------------------------------------------------------------------------------------
        /// <summary>
        /// Posts the FTP message.
        /// </summary>
        private void PostFTPMessage()
        {
            configManager.Logger.Debug(EnumMethod.START);
            try
            {
                string tempFileName = configManager.PostDir + "\\PMA_ALERTS_" + systemName+ "_" + configManager.SystemAnalyzerInfo.ClientInstanceName + ".txt";
                PMAMailController mailer = new PMAMailController(configManager.GetConsolidatedError("System Alert"), AlertType.GENERAL_ALERT, null);
                File.WriteAllText(tempFileName, mailer.GenerateMessageBody());
                FTPTransport ftpTransport = new FTPTransport();
                List<string> filetoUpload = new List<string>();
                filetoUpload.Add(tempFileName);
                ftpTransport.FTPSend(configManager.FtpInfo, filetoUpload);
                filetoUpload = null;
                File.Delete(tempFileName);
            }
            catch(Exception ex)
            {
                // No Reattempt if FTP upload fail, otherwise it can bombart mails

                //configManager.FlagInfo.FlagedDiscAlert = false;
                //configManager.FlagInfo.FlagedPhysicalMemoryAlert = false;
                //configManager.FlagInfo.FlagedServiceAlert = false;
                //configManager.FlagInfo.FlagedASPStateSizeAlert = false;
                //configManager.FlagInfo.FlagedTempDBMemoryAlert = false;
                configManager.Logger.Error(ex);
            }
            configManager.Logger.Debug(EnumMethod.END);
        }