예제 #1
0
        public JsonResult SorceTypeChange(string sorceType)
        {
            return(ExecuteFunctionRun(() =>
            {
                List <ListItem> items = new List <ListItem>();
                ReportSourceType SorceType = (ReportSourceType)Enum.Parse(typeof(ReportSourceType), sorceType ?? ReportSourceType.H3System.ToString());
                switch (SorceType)
                {
                case ReportSourceType.H3System:
                    DataModel.BizObjectSchema[] schemas = this.Engine.BizObjectManager.GetPublishedSchemas();
                    FunctionNode[] packages = this.Engine.FunctionAclManager.GetFunctionNodesByNodeType(FunctionNodeType.BizWorkflowPackage);
                    foreach (DataModel.BizObjectSchema schema in schemas)
                    {
                        for (int i = 0, j = packages.Length; i < j; i++)
                        {
                            if (packages[i].Code.Equals(schema.SchemaCode, StringComparison.InvariantCultureIgnoreCase))
                            {
                                items.Add(new ListItem(packages[i].DisplayName, schema.SchemaCode + "@" + schema.TableName));
                            }
                        }
                    }
                    break;

                case ReportSourceType.DbConnection:
                    BizDbConnectionConfig[] configs = this.Engine.SettingManager.GetBizDbConnectionConfigList();
                    foreach (BizDbConnectionConfig config in configs)
                    {
                        items.Add(new ListItem(config.DisplayName, config.DbCode));
                    }
                    break;
                }
                return Json(items, JsonRequestBehavior.AllowGet);
            }));
        }
        private IReportGenerator getReportGenerator(ReportSourceType? reportSourceType)
        {
            IReportGenerator reportGenerator = null;
            if (reportSourceType.HasValue)
            {
                reportGenerator = getReportGeneratorByType(reportSourceType.ToString());
            }

            if (reportGenerator == null)
            {
                reportGenerator = _reportGenerator.Count() == 1
                    ? _reportGenerator.FirstOrDefault()
                    : getReportGeneratorByType(Configurator.DefaultReportSource.ToString());
            }

            return reportGenerator;
        }
예제 #3
0
        static public void Send(DbApi db, string message, ReportSourceType source_type, string source_id = null, bool error = true)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(Properties.Settings.Default.SmtpHost))
                {
                    Log.Main.Warning("Message not emailed as SmtpHost is not specified:\n" + (error ? "ERROR:" : "" + source_id) + ":\n" + message);
                    return;
                }

                if (error)
                {
                    Log.Main.Error(message);
                }
                else
                {
                    Log.Main.Inform(message);
                }

                string AdminEmails = null;
                if (source_id != null)
                {
                    switch (source_type)
                    {
                    case ReportSourceType.CRAWLER:
                        AdminEmails = (string)db["SELECT AdminEmails FROM Crawlers WHERE Id=@Id"].GetSingleValue("@Id", source_id);
                        break;

                    case ReportSourceType.SERVICE:
                        AdminEmails = (string)db["SELECT AdminEmails FROM Services WHERE Id=@Id"].GetSingleValue("@Id", source_id);
                        break;

                    case ReportSourceType.MANAGER:
                        break;

                    default:
                        throw new Exception("Option is not defined.");
                    }
                }
                if (AdminEmails == null)
                {
                    AdminEmails = Properties.Settings.Default.DefaultAdminEmails;
                }
                if (AdminEmails != null)
                {
                    AdminEmails = Regex.Replace(AdminEmails.Trim(), @"[\s+\,]+", ",", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
                }
                else
                {
                    Log.Main.Error("No email is defined to send messages.");
                }

                MailMessage m = new MailMessage();
                m.From = new MailAddress(Properties.Settings.Default.EmailSender);
                m.To.Add(AdminEmails);
                string subject = "Crawler Host Service Manager:";
                if (source_id != null)
                {
                    subject += " " + source_id;
                }
                if (error)
                {
                    subject += " error";
                }
                subject  += " notification";
                m.Subject = subject;
                m.Body    = message;

                System.Net.Mail.SmtpClient c = new SmtpClient(Properties.Settings.Default.SmtpHost, Properties.Settings.Default.SmtpPort);
                c.EnableSsl             = true;
                c.DeliveryMethod        = SmtpDeliveryMethod.Network;
                c.UseDefaultCredentials = false;
                c.Credentials           = new System.Net.NetworkCredential(Properties.Settings.Default.SmtpLogin, Properties.Settings.Default.SmtpPassword);

                try
                {
                    c.Send(m);
                }
                catch (Exception e)
                {
                    Log.Main.Error(e);
                }
            }
            catch (Exception e)
            {
                Log.Main.Error(e);
            }
        }
예제 #4
0
        static public void Send(DbApi db, string message, ReportSourceType source_type, string source_id = null, bool error = true)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(Properties.Settings.Default.SmtpHost))
                {
                    Log.Main.Warning("Message not emailed as SmtpHost is not specified:\n" + (error ? "ERROR:" : "" + source_id) + ":\n" + message);
                    return;
                }

                if (error)
                    Log.Main.Error(message);
                else
                    Log.Main.Inform(message);

                string AdminEmails = null;
                if (source_id != null)
                    switch (source_type)
                    {
                        case ReportSourceType.CRAWLER:
                            AdminEmails = (string)db["SELECT AdminEmails FROM Crawlers WHERE Id=@Id"].GetSingleValue("@Id", source_id);
                            break;
                        case ReportSourceType.SERVICE:
                            AdminEmails = (string)db["SELECT AdminEmails FROM Services WHERE Id=@Id"].GetSingleValue("@Id", source_id);
                            break;
                        case ReportSourceType.MANAGER:
                            break;
                        default:
                            throw new Exception("Option is not defined.");
                    }
                if (AdminEmails == null)
                    AdminEmails = Properties.Settings.Default.DefaultAdminEmails;
                if (AdminEmails != null)
                    AdminEmails = Regex.Replace(AdminEmails.Trim(), @"[\s+\,]+", ",", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
                else
                    Log.Main.Error("No email is defined to send messages.");

                MailMessage m = new MailMessage();
                m.From = new MailAddress(Properties.Settings.Default.EmailSender);
                m.To.Add(AdminEmails);
                string subject = "Crawler Host Service Manager:";
                if (source_id != null)
                    subject += " " + source_id;
                if (error) subject += " error";
                subject += " notification";
                m.Subject = subject;
                m.Body = message;

                System.Net.Mail.SmtpClient c = new SmtpClient(Properties.Settings.Default.SmtpHost, Properties.Settings.Default.SmtpPort);
                c.EnableSsl = true;
                c.DeliveryMethod = SmtpDeliveryMethod.Network;
                c.UseDefaultCredentials = false;
                c.Credentials = new System.Net.NetworkCredential(Properties.Settings.Default.SmtpLogin, Properties.Settings.Default.SmtpPassword);

                try
                {
                    c.Send(m);
                }
                catch (Exception e)
                {
                    Log.Main.Error(e);
                }
            }
            catch (Exception e)
            {
                Log.Main.Error(e);
            }
        }