public void Send_ready_report()
        {
            var payer = new TestPayer("Тестовый плательщик");

            session.Save(payer);
            var report = new GeneralReport(session.Load <Payer>(payer.Id));

            session.Save(report);
            report.LastSuccess = DateTime.Now;
            var executelog = new ReportExecuteLog(report);

            session.Save(executelog);
            session.Save(new ReportLog(report, executelog));
            session.Flush();

            executelog.BuildTestFile();

            Open($"/Reports/schedule.aspx?r={report.Id}");
            var radio = browser.FindElementsByCssSelector("input[type=\"radio\"]").First(x => x.GetAttribute("Value") == "RadioMails");

            radio.Click();
            browser.FindElementById("mail_Text").Clear();
            Click("Выслать готовый");

            AssertText("Укажите получателя отчета !");
            browser.FindElementById("mail_Text").SendKeys("*****@*****.**");
            Click("Выслать готовый");
            AssertText("Файл отчета успешно отправлен");
        }
        public void Delete_report()
        {
            var comment = Generator.Name();
            var payer   = new Payer("Тестовый плательщик");
            var report  = new GeneralReport(payer)
            {
                Comment = comment
            };

            session.Save(payer);
            session.Save(report);

            var reportPage = new Reports_GeneralReports
            {
                DbSession = session,
                UnderTest = true,
            };

            reportPage.SendDeleteAlert(report.Id, comment, "Test", "128.0.0.1");

            var message = reportPage.Messages[0];

            Assert.That(message.To[0].Address, Is.EqualTo("*****@*****.**"));
            Assert.That(message.Body.Contains(report.Comment), Is.True);
            Assert.That(message.Body.Contains(report.Id.ToString()), Is.True);
        }
Exemplo n.º 3
0
        protected void btnNext_Click(object sender, EventArgs e)
        {
            if (this.IsValid)
            {
                GeneralReport _generalReport = GeneralReport.Find(Convert.ToUInt64(Request["TemporaryId"]));
                ReportType    _reportType    = ReportType.Find(Convert.ToUInt64(ddlReportTypes.SelectedValue));
                Report        _newReport     = new Report()
                {
                    GeneralReport = _generalReport,
                    ReportType    = _reportType,
                    Enabled       = true,
                    ReportCaption = tbReportName.Text
                };

                Report[] _oldReports = Report.FindAll(Expression.Eq("GeneralReport", _generalReport));

                using (new TransactionScope()) {
                    foreach (Report _deletedReport in _oldReports)
                    {
                        _deletedReport.Delete();
                    }
                    _newReport.Save();
                }

                if (ddlTemplates.Visible && (ddlTemplates.SelectedIndex > 0))
                {
                    ulong _sourceTemplateReport = Convert.ToUInt64(ddlTemplates.SelectedValue);
                    ReportHelper.CopyReportProperties(_sourceTemplateReport, _newReport.Id);
                }

                Response.Redirect(String.Format(
                                      "ReportProperties.aspx?TemporaryId={0}&rp={1}", Request["TemporaryId"], _newReport.Id));
            }
        }
Exemplo n.º 4
0
        private List <GeneralReportGridView> GetGeneralReport(string start_date, string end_date)
        {
            GeneralReport GR   = new GeneralReport(General.settings.username, General.settings.password, General.settings.host, General.settings.lang, start_date, end_date);
            string        json = GR.execute();
            IList <IDictionary <string, object> > list_of_dict = new JavaScriptSerializer().Deserialize <IList <IDictionary <string, object> > >(json);
            List <GeneralReportGridView>          GRGV_List    = new List <GeneralReportGridView>();

            foreach (IDictionary <string, object> dict in list_of_dict)
            {
                GeneralReportGridView GRGV = new GeneralReportGridView(
                    Convert.ToInt32(dict["sms_id"]),
                    dict["sender"].ToString(),
                    Convert.ToDecimal(dict["cost"]),
                    dict["message"].ToString(),
                    DateTime.ParseExact(dict["created"].ToString(), "dd.MM.yyyy - HH:mm", System.Globalization.CultureInfo.InvariantCulture),
                    Convert.ToInt32(dict["count"]),
                    Convert.ToInt32(dict["waiting_count"]),
                    Convert.ToInt32(dict["delivered_count"]),
                    Convert.ToInt32(dict["undelivered_count"]),
                    Convert.ToBoolean(dict["succeeded"])
                    );
                GRGV_List.Add(GRGV);
            }
            return(GRGV_List);
        }
        public void CheckTaskDefinitionUpdate()
        {
            var comment = Generator.Name();
            var payer   = new Payer("Тестовый плательщик");
            var report  = new GeneralReport(payer)
            {
                Comment = comment
            };

            session.Save(payer);
            session.Save(report);

            var helper = new ScheduleHelper();

            helper.GetTaskOrCreate(report.Id, report.Comment);

            var reportPage = new Reports_GeneralReports {
                DbSession = session
            };

            comment        = Generator.Name();
            report.Comment = comment;
            session.Save(report);
            session.Flush();

            reportPage.UpdateTasksForGeneralReports(new List <ulong>(),
                                                    new List <ulong> {
                report.Id
            });
            var task = helper.GetTaskOrCreate(report.Id, report.Comment);

            Assert.AreEqual(task.Definition.RegistrationInfo.Description, comment);
        }
Exemplo n.º 6
0
        public void TestRecipientsList()
        {
            var payer = new TestPayer("Тестовый плательщик");

            session.Save(payer);

            var contactGroupOwner = new TestContactGroupOwner();

            contactGroupOwner.SaveAndFlush();

            var client1 = TestClient.CreateNaked(session);
            var client2 = TestClient.CreateNaked(session);

            client1.Payers.Add(payer);
            client2.Payers.Add(payer);

            session.CreateSQLQuery(@"INSERT INTO Billing.PayerClients(ClientId, PayerId) VALUES(:clientid1, :payerid);
										INSERT INTO Billing.PayerClients(ClientId, PayerId) VALUES(:clientid2, :payerid);"                                        )
            .SetParameter("clientid1", client1.Id).SetParameter("clientid2", client2.Id).SetParameter("payerid", payer.Id).ExecuteUpdate();

            var repPayer = Payer.Find(payer.Id);

            var new_report = new GeneralReport()
            {
                Format = "Excel", Payer = repPayer, Comment = "Тестовый отчет"
            };

            new_report.SaveAndFlush();
            var reportId = new_report.Id;
            var report   = GeneralReport.Find(Convert.ToUInt64(reportId));

            Assert.That(report.Payer.AllClients.Count, Is.EqualTo(2));
            Assert.That(report.Payer.Clients[0].ShortName, Is.EqualTo(client1.Name));
            Assert.That(report.Payer.Clients[1].ShortName, Is.EqualTo(client2.Name));
        }
Exemplo n.º 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(Request["TemporaryId"]))
            {
                GeneralReport _generalReport = new GeneralReport()
                {
                    Allow = true, Temporary = true, TemporaryCreationDate = DateTime.Now, Format = "Excel"
                };
                //Выставляем плательщика 921 (Офис123)
                //todo: Возможно потом это надо удалить
                _generalReport.Payer = Payer.Find((uint)921);
                using (new TransactionScope()) {
                    _generalReport.Save();
                }
                Response.Redirect("TemporaryReport.aspx?TemporaryId=" + _generalReport.Id);
            }

            if (!this.IsPostBack)
            {
                ReportType[] _reportTypes = ReportType.FindAll(Order.Asc("ReportTypeName"));
                ddlReportTypes.DataSource     = _reportTypes;
                ddlReportTypes.DataTextField  = "ReportTypeName";
                ddlReportTypes.DataValueField = "Id";
                ddlReportTypes.DataBind();

                tbReportName.Text = _reportTypes[0].AlternateSubject;

                BindTemplateReports(_reportTypes[0]);
            }
        }
Exemplo n.º 8
0
        public void Release_report_references()
        {
            var report = new GeneralReport();

            report.NoArchive = true;
            report.Reports.Enqueue(new FakeReport());
            report.BuildResultFile();
            Assert.AreEqual(0, report.Reports.Count);
        }
Exemplo n.º 9
0
        public void RadiusRFChart(GeneralReport genReport)
        {
            try
            {
                genReport.RadiusReactionForce = genReport.RadiusReactionForce.OrderBy(k => k.Key).ToDictionary(k => k.Key, v => v.Value * Math.Pow(10, -6));

                Form1._Form1.lineChart.ChartAreas[0].AxisX.Minimum            = genReport.RadiusReactionForce.Select(k => k.Key).Min();
                Form1._Form1.lineChart.ChartAreas[0].AxisX.Maximum            = genReport.RadiusReactionForce.Select(k => k.Key).Max();
                Form1._Form1.lineChart.ChartAreas[0].AxisX.MajorGrid.Interval = 2.5;
                Form1._Form1.lineChart.ChartAreas[0].AxisX.Title = "Radius, mm";
                Form1._Form1.lineChart.ChartAreas[0].AxisY.Title = "Force, MN";
                Form1._Form1.lineChart.Series[0].Points.DataBindXY(genReport.RadiusReactionForce.Keys, genReport.RadiusReactionForce.Values);
                Form1._Form1.lineChart.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;

                string file;

                var str = new StringBuilder();
                str.Append("(RF)");
                str.Append("Radius Chart");
                str.Append(".png");

                file = str.ToString();

                str.Clear();

                if (File.Exists(genReport.folderName + @"\" + file))
                {
                    int    numberfile = 0;
                    string filename   = Path.GetFileNameWithoutExtension(file);
                    string extension  = Path.GetExtension(file);

                    Match regex = Regex.Match(file, @"(.+) \((\d+)\)\.\w+");

                    if (regex.Success)
                    {
                        filename   = regex.Groups[1].Value;
                        numberfile = int.Parse(regex.Groups[2].Value);
                    }

                    do
                    {
                        numberfile++;
                        file = Path.Combine(string.Format("{0} ({1}) {2}", filename, numberfile, extension));
                    }while (File.Exists(genReport.folderName + @"\" + file));
                }

                Form1._Form1.lineChart.SaveImage(genReport.folderName + @"\" + file, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);

                genReport.FrictionReactionForce.Clear();
            }
            catch (Exception e)
            {
                MessageBox.Show("Radius RF General report:" + e.Message);
            }
        }
Exemplo n.º 10
0
        public void SetUp()
        {
            _report = new GeneralReport()
            {
                EMailSubject = "Тестовый отчет"
            };
            var ownerId = uint.Parse(ConfigurationManager.AppSettings["ReportsContactGroupOwnerId"]);

            _contactGroupOwner = session.Get <ContactGroupOwner>(ownerId);
            session.Save(_report);
        }
Exemplo n.º 11
0
        public void Setup()
        {
            report    = new GeneralReport();
            report.Id = 1;

            report.EMailSubject = "test";
            report.Contacts     = new[] { "*****@*****.**" };
            report.Testing      = true;
            report.Connection   = (MySqlConnection)session.Connection;
            FileHelper.InitDir("History");
        }
Exemplo n.º 12
0
        public void Build_report_if_last_broken()
        {
            var report = new GeneralReport();

            report.NoArchive = true;
            report.Reports.Enqueue(new FakeReport());
            report.Reports.Enqueue(new TestProcessReport.FakeReportWithReportException());
            var files = report.BuildResultFile();

            Assert.AreEqual("Rep0.xls", files.Implode(x => Path.GetFileName(x)));
        }
Exemplo n.º 13
0
        public void GetGeneralReportViewModel(GeneralReportViewModel model)
        {
            var hotels = Repo <HotelRestaurantRepository>().GetAllModels()
                         .AddEqual(obj => obj.DistrictId == model.AreaGuid, model.AreaGuid)
                         .AddEqual(item => item.StreetId == model.StreetGuid, model.StreetGuid)
                         .AddEqual(hotel => hotel.AddressId == model.AddressGuid, model.AddressGuid);

            var startDate = ReportStartDate(model.DueDateTime, model.ReportType).GetToday();

            using (var repo = Repo <RunningTimeRepository>())
            {
                foreach (var hotel in hotels)
                {
                    var report = new GeneralReport
                    {
                        HotelGuid = hotel.Id,
                        HotelName = hotel.ProjectName
                    };

                    if (repo.GetCount(obj => obj.ProjectIdentity == hotel.Identity) <= 0)
                    {
                        report.TotalCleanerRunTimeTicks = 0;
                        report.TotalFanRunTimeTicks     = 0;
                        model.GeneralReports.Add(report);
                        continue;
                    }

                    var cleanerRecord = repo.GetModels(obj =>
                                                       obj.UpdateTime >= startDate &&
                                                       obj.UpdateTime < model.DueDateTime &&
                                                       obj.ProjectIdentity == hotel.Identity &&
                                                       obj.Type == RunningTimeType.Cleaner);
                    if (cleanerRecord.Count() != 0)
                    {
                        report.TotalCleanerRunTimeTicks = cleanerRecord.Sum(item => item.RunningTimeTicks);
                    }

                    var fanRecord = repo.GetModels(obj =>
                                                   obj.UpdateTime >= startDate &&
                                                   obj.UpdateTime < model.DueDateTime &&
                                                   obj.ProjectIdentity == hotel.Identity &&
                                                   obj.Type == RunningTimeType.Fan);

                    if (fanRecord.Count() != 0)
                    {
                        report.TotalFanRunTimeTicks = fanRecord.Sum(item => item.RunningTimeTicks);
                    }

                    model.GeneralReports.Add(report);
                }
            }
        }
Exemplo n.º 14
0
        public void Collect_contacts()
        {
            //моделируем ситуацию если не задана группа рассылки а есть только публичные контакты
            var report = new GeneralReport {
                PublicSubscriptions = new ContactGroup {
                    Contacts = { new Contact(ContactType.Email, "*****@*****.**") }
                }
            };

            report.CollectContacts();
            Assert.AreEqual(report.Contacts[0], "*****@*****.**");
            Assert.AreEqual(1, report.Contacts.Length);
        }
Exemplo n.º 15
0
 public MainFunction(GeometryOptions model, MaterialsOptions material, AdditionallyOptions add,
                     FileName file, CommonReport finalReport, GeneralReport genReport, Routes rout, ArgumentsCMD cmd, FilesForVolume filesForVolume)
 {
     this.model          = model;
     this.material       = material;
     this.add            = add;
     this.file           = file;
     this.finalReport    = finalReport;
     this.genReport      = genReport;
     this.rout           = rout;
     this.cmd            = cmd;
     this.filesForVolume = filesForVolume;
 }
Exemplo n.º 16
0
        public void TestArchBase()
        {
            var gr = new GeneralReport();

            gr.NoArchive = true;
            gr.Reports.Enqueue(new FakeReport());
            var file = gr.ArchFile(gr.BuildResultFile())[0];

            Assert.That(Path.GetExtension(file), Is.EqualTo(".xls"));
            gr = new GeneralReport();
            gr.Reports.Enqueue(new FakeReport());
            file = gr.ArchFile(gr.BuildResultFile())[0];
            Assert.That(Path.GetExtension(file), Is.EqualTo(".zip"));
        }
        public void CopyReportTest()
        {
            var generalReport1 = new GeneralReport {
                Comment = "тестовый отчет1"
            };

            session.Save(generalReport1);
            var generalReport2 = new GeneralReport {
                Comment = "тестовый отчет2"
            };

            session.Save(generalReport2);
            var report1 = new Report {
                GeneralReport = generalReport1,
                Enabled       = true,
                ReportCaption = "testReport1",
                ReportType    = session.Query <ReportType>().First(),
            };

            session.Save(report1);
            var property = session.Query <ReportProperty>().First(t => t.Report == report1);

            property.Value = "propertyValue1";
            session.Save(property);
            generalReport1.Reports.Add(report1);
            session.Save(generalReport1);
            var controller = new CopyReportController();

            PrepareController(controller);
            controller.DbSession = session;
            controller.CopyReport(generalReport2.Id, new GeneralReportsFilter {
                Report        = report1.Id,
                GeneralReport = generalReport1.Id
            });
            session.Evict(generalReport2);
            generalReport2 = session.Query <GeneralReport>().First(t => t.Id == generalReport2.Id);
            var report2 = generalReport2.Reports.First();

            Assert.That(report2, Is.Not.Null);
            Assert.That(report2.Enabled, Is.EqualTo(report1.Enabled));
            Assert.That(report2.ReportCaption, Is.EqualTo(String.Concat("Копия ", report1.ReportCaption)));
            var properties2 = session.Query <ReportProperty>().Where(t => t.Report == report2);
            var properties1 = session.Query <ReportProperty>().Where(t => t.Report == report1);

            foreach (var reportProperty in properties1)
            {
                Assert.That(properties2.Count(p => p.PropertyType == reportProperty.PropertyType && p.Value == reportProperty.Value), Is.Not.EqualTo(0));
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(Request["TemporaryId"]))
            {
                Response.Redirect("base.aspx");
            }
            else
            {
                uint contactOwnerId;
                if (uint.TryParse(ConfigurationManager.AppSettings["ReportsContactGroupOwnerId"], out contactOwnerId))
                {
                    try {
                        _reportsContactGroupOwner = ContactGroupOwner.Find(contactOwnerId);
                    }
                    catch (NotFoundException exp) {
                        throw new ReportTunerException("В файле Web.Config параметр ReportsContactGroupOwnerId указывает на несуществующую запись.", exp);
                    }
                }
                else
                {
                    throw new ReportTunerException("В файле Web.Config параметр ReportsContactGroupOwnerId не существует или настроен некорректно.");
                }

                _generalReport = GeneralReport.Find(Convert.ToUInt64(Request["TemporaryId"]));
                _taskService   = ScheduleHelper.GetService();
                _currentTask   = ScheduleHelper.GetTaskOrCreate(
                    _taskService,
                    ScheduleHelper.GetReportsFolder(_taskService),
                    _generalReport.Id,
                    "Временный отчет, созданный " + _generalReport.TemporaryCreationDate.Value.ToString(), "GR");

                btnRun.Enabled = _currentTask.Enabled && (_currentTask.State != TaskState.Running);
                btnRun.Text    = (_currentTask.State == TaskState.Running) ? StatusNotRunning : StatusRunning;

                if ((_generalReport.ContactGroup == null) && btnRun.Enabled)
                {
                    btnRun.Enabled = false;
                }

                if (!IsPostBack)
                {
                    ClearSearch();
                    if (_generalReport.ContactGroup != null)
                    {
                        lContactGroupName.Text = _generalReport.ContactGroup.Name;
                    }
                }
            }
        }
Exemplo n.º 19
0
        public void Collect_contacts_from_groups()
        {
            var report = new GeneralReport {
                ContactGroup = new ContactGroup {
                    Contacts = { new Contact(ContactType.Email, "*****@*****.**") }
                },
                PublicSubscriptions = new ContactGroup {
                    Contacts = { new Contact(ContactType.Email, "*****@*****.**") }
                }
            };

            report.CollectContacts();
            var contacts = report.Contacts.Implode();

            Assert.AreEqual(contacts, "[email protected], [email protected]");
        }
Exemplo n.º 20
0
        public void Troubleshoot_general_report()
        {
            Debug.Listeners.Add(new ConsoleTraceListener());
            QueryCatcher.Catch("Inforoom.ReportSystem.Helpers");
            uint id          = 144;
            var  cn          = "server=sql.analit.net;user=;password=;default command timeout=0;Allow user variables=true;database=usersettings";
            var  dataAdapter = new MySqlDataAdapter("", cn);

            dataAdapter.SelectCommand.CommandText = @"
select
  *
from
  reports.Reports r,
  reports.reporttypes rt
where
	r.GeneralReportCode = ?reportcode
and rt.ReportTypeCode = r.ReportTypeCode";
            dataAdapter.SelectCommand.Parameters.AddWithValue("?reportcode", id);
            var res = new DataTable();

            dataAdapter.Fill(res);

            using (var connection = new MySqlConnection(cn)) {
                connection.Open();
                foreach (DataRow drGReport in res.Rows)
                {
                    if (Convert.ToBoolean(drGReport[BaseReportColumns.colEnabled]))
                    {
                        //Создаем отчеты и добавляем их в список отчетов
                        var reportcode = (ulong)drGReport[BaseReportColumns.colReportCode];
                        Console.WriteLine("Отчет {0}", reportcode);
                        var prop = GeneralReport.LoadProperties(connection, reportcode);

                        var bs = (BaseReport)Activator.CreateInstance(
                            GetReportTypeByName(drGReport[BaseReportColumns.colReportClassName].ToString()),
                            new object[] {
                            connection,
                            prop
                        });
                        bs.Session       = session.SessionFactory.OpenSession(connection);
                        bs.ReportCaption = "rep";
                        bs.Write(Path.GetFullPath("test.xls"));
                    }
                }
            }
        }
Exemplo n.º 21
0
        public void Arhive_per_file()
        {
            var files = new[] {
                "tmp/1.dbf", "tmp/2.dbf"
            };

            FileHelper.InitDir("tmp");
            FileHelper.Touch(files);
            var report = new GeneralReport();

            report.ReportArchName = "test.zip";
            report.WorkDir        = "tmp";
            report.MailPerFile    = true;
            var result = report.ArchFile(files);

            Assert.AreEqual("tmp/1.zip, tmp/2.zip", result.Implode());
            Assert.AreEqual("1.dbf", LsZip("tmp/1.zip").Implode());
        }
Exemplo n.º 22
0
    protected SiteMapNode ExpandForumPath(Object sender, SiteMapResolveEventArgs e)
    {
        SiteMapNode currentNode = e.Provider.CurrentNode.Clone(true);

        if (currentNode.Key.EndsWith("/reports/reportproperties.aspx", StringComparison.OrdinalIgnoreCase))
        {
            if (!String.IsNullOrEmpty(e.Context.Request["TemporaryId"]))
            {
                SiteMapNode _temporaryNode = e.Provider.FindSiteMapNode("~/Reports/TemporaryReport.aspx");
                currentNode = _temporaryNode.ChildNodes[0].Clone(true);
                currentNode.ParentNode.Url += "?TemporaryId=" + e.Context.Request["TemporaryId"];
            }
            else
            {
                currentNode.ParentNode.Url += "?r=" + e.Context.Request["r"];
            }
        }
        if (currentNode.Key.EndsWith("/reports/reportpropertyvalues.aspx", StringComparison.OrdinalIgnoreCase))
        {
            if (!String.IsNullOrEmpty(e.Context.Request["TemporaryId"]))
            {
                SiteMapNode _temporaryNode = e.Provider.FindSiteMapNode("~/Reports/TemporaryReport.aspx");
                //Здесь это делается не совсем корректно.
                currentNode = _temporaryNode.ChildNodes[0].ChildNodes[0].Clone(true);
                currentNode.ParentNode.ParentNode.Url += "?TemporaryId=" + e.Context.Request["TemporaryId"];
                currentNode.ParentNode.Url            += e.Context.Request["TemporaryId"] + "&rp=" + e.Context.Request["rp"];
            }
            else
            {
                currentNode.ParentNode.Url += "?r=" + e.Context.Request["r"] + "&rp=" + e.Context.Request["rp"];
            }
        }

        if (currentNode.Key.EndsWith("/reports/temporaryreportschedule.aspx", StringComparison.OrdinalIgnoreCase))
        {
            currentNode.ParentNode.ParentNode.Url += "?TemporaryId=" + e.Context.Request["TemporaryId"];
            Report _temporaryReport = Report.FindFirst(
                Expression.Eq("GeneralReport",
                              GeneralReport.Find(Convert.ToUInt64(e.Context.Request["TemporaryId"]))));
            currentNode.ParentNode.Url += e.Context.Request["TemporaryId"] + "&rp=" + _temporaryReport.Id;
        }

        return(currentNode);
    }
Exemplo n.º 23
0
        public void Delete_report()
        {
            var report = new GeneralReport();

            report.ContactGroup = new ContactGroup(ContactGroupType.Reports);
            report.ContactGroup.ContactGroupOwner = new ContactGroupOwner();
            session.Save(report.ContactGroup.ContactGroupOwner);
            session.Save(report.ContactGroup);
            session.Save(report);

            var controller = new ReportsController();

            Prepare(controller);
            controller.Delete(new[] { report.Id });

            session.Flush();
            session.Clear();
            Assert.IsNull(session.Get <GeneralReport>(report.Id));
            Assert.IsNull(session.Get <ContactGroup>(report.ContactGroup.Id));
        }
Exemplo n.º 24
0
 private void BindTemplateReports(ReportType selectedReportType)
 {
     Report[] _templateReports = Report.FindAll(
         Order.Asc("ReportCaption"),
         Expression.Eq("GeneralReport", GeneralReport.Find(Convert.ToUInt64(ConfigurationManager.AppSettings["TemplateReportId"]))),
         Expression.Eq("ReportType", selectedReportType));
     if (_templateReports.Length > 0)
     {
         ddlTemplates.Visible        = true;
         ddlTemplates.DataSource     = _templateReports;
         ddlTemplates.DataTextField  = "ReportCaption";
         ddlTemplates.DataValueField = "Id";
         ddlTemplates.DataBind();
         ddlTemplates.Items.Insert(0, new ListItem("не установлен", String.Empty));
     }
     else
     {
         ddlTemplates.Visible = false;
     }
 }
Exemplo n.º 25
0
        public void Base_test()
        {
            var report = new GeneralReport();

            session.Save(report);
            var helper = new ScheduleHelper();

            helper.GetTaskOrCreate(report.Id);
            ScheduleHelper.SetTaskAction(report.Id, String.Format("/gr:{0} /manual:true", report.Id));

            session.CreateSQLQuery("delete from `logs`.reportexecutelogs; update  reports.general_reports set allow = 0;").ExecuteUpdate();
            session.Transaction.Commit();
            Program.Main(new[] { String.Format("/gr:{0}", report.Id) });
            var reportLogCount = session.Query <ReportExecuteLog>().Count();

            Assert.AreEqual(reportLogCount, 1);

            var currentTask = helper.FindTask(report.Id);

            Assert.That(((ExecAction)currentTask.Definition.Actions[0]).Arguments, Does.Contain("manual:true"));
        }
Exemplo n.º 26
0
        static void Main(string[] args)
        {
            Customer customer1 = new Customer("Bruce Wayne");
            Customer customer2 = new Customer("Peter Parker");
            Customer customer3 = new Customer("Iron Man");

            customer1.addOrder(new Order("Batmobile", "Wheels"));

            Order order1 = new Order("Weapons");

            order1.addItem(new Item("Batarang"));
            order1.addItem(new Item("Pocket Explosive"));
            order1.addItem(new Item("Tazer"));
            customer1.addOrder(order1);

            Order order2 = new Order("Equipment");

            order2.addItem(new Item("Web Shooter"));
            order2.addItem(new Item("Costume"));
            customer2.addOrder(order2);

            Order order3 = new Order("Armored suit");

            order3.addItem(new Item("Omnibeam"));
            order3.addItem(new Item("Pentabeam"));
            order3.addItem(new Item("Sensor Array"));
            customer3.addOrder(order3);

            CustomerGroup cg = new CustomerGroup();

            cg.addCustomer(customer1);
            cg.addCustomer(customer2);
            cg.addCustomer(customer3);

            GeneralReport visitor = new GeneralReport();

            cg.accept(visitor);
            visitor.displayResults();
        }
        public void Resend_report()
        {
            Global.Config.ReportHistoryPath = Path.Combine(ScheduleHelper.ScheduleWorkDir, "History");

            var payer   = new Payer("Тестовый плательщик");
            var report1 = new GeneralReport(payer);
            var report2 = new GeneralReport(payer);

            session.Save(payer);
            session.Save(report1);
            session.Save(report2);

            var log1 = new ReportExecuteLog(report1);

            session.Save(log1);
            session.Save(new ReportLog(report1, log1)
            {
                LogTime = DateTime.Now.AddDays(-2)
            });
            var log2 = new ReportExecuteLog(report2);

            session.Save(log2);
            session.Save(new ReportLog(report2, log2));
            session.Flush();
            var content = log1.BuildTestFile();

            log2.BuildTestFile();

            report1.UnderTest = true;
            report1.ResendReport(session, new List <string> {
                "*****@*****.**"
            });
            var message       = report1.Messages[0];
            var sendedContent = new StreamReader(message.Attachments[0].ContentStream).ReadToEnd();

            Assert.That(sendedContent, Is.EqualTo(content));
        }
        protected Report CreateReport(string reportType)
        {
            payer = new TestPayer("Тестовый плательщик");
            var org = new TestLegalEntity(payer, "Тестовое юр. лицо");

            payer.Orgs.Add(org);
            session.Save(payer);
            session.Flush();
            org.Name += " " + org.Id;
            session.Save(org);

            var type          = session.Query <ReportType>().First(t => t.ReportTypeFilePrefix == reportType);
            var generalReport = new GeneralReport(session.Load <Payer>(payer.Id));
            var report        = generalReport.AddReport(type);

            session.Save(generalReport);
            session.Save(report);
            //что сработал триггер который создаст параметры
            session.Flush();

            session.Refresh(report);

            return(report);
        }
Exemplo n.º 29
0
        public void Processing(GeometryOptions model, FileName file, FilesForVolume filesForVolume, GeneralReport genReport)
        {
            try
            {
                Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

                var extract = new RunExtract(rout);

                extract.ExtractName(cmd.extractName, file);

                extract.ChangeName(file);

                extract.ExtractFiles(cmd.extractFiles);

                extract.ExtractNodes(cmd.extractNodes, file);

                var extrRoutes = new RoutesForExtract();

                extrRoutes.setReactionForceRoute = rout.workingDirectory + @"\RF3Stamp.csv";

                var extrRF = new ExtractRF();
                extrRF.Extract(extrRoutes, model);

                var reprRF = new ReactionForceReport();
                reprRF.ReportReactionForce(model, genReport, file, extrRF);

                filesForVolume.stampNodeDisplacementRoute = rout.workingDirectory + @"\" + filesForVolume.stampNodeDisplacementName;
                filesForVolume.blankNodeDisplacementRoute = rout.workingDirectory + @"\" + filesForVolume.blankNodeDisplacementName;
                filesForVolume.blankCoordinatesRoute      = rout.workingDirectory + @"\" + filesForVolume.blankCoordinatesName;
                filesForVolume.elementCoordinatesRoute    = rout.workingDirectory + @"\" + filesForVolume.elementCoordinatesName;
                filesForVolume.stampNodesRoute            = rout.workingDirectory + @"\" + filesForVolume.stampNodesName;
                filesForVolume.elementVolumeRoute         = rout.workingDirectory + @"\" + filesForVolume.elementVolumeName;

                var extrVolume = new ExtractVolume();

                //extrVolume.GetStampNodesDisplacement(filesForVolume);
                extrVolume.GetBlankNodesDisplacement(filesForVolume);
                //extrVolume.GetBlanksNodeCoordinates(filesForVolume);
                //extrVolume.GetElementCoordinates(filesForVolume, model);
                extrVolume.Volume(model);

                var reprVolume = new VolumeReport();
                reprVolume.ReportVolume(model, genReport, file, extrVolume);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Exemplo n.º 30
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if ((Request.UrlReferrer == null || !Request.UrlReferrer.LocalPath.Contains("Schedule.aspx")) && Session["StartTaskTime"] != null)
        {
            Session.Remove("StartTaskTime");
        }

        if (Request["r"] == null)
        {
            Response.Redirect("GeneralReports.aspx");
        }

        _generalReport = GeneralReport.Find(Convert.ToUInt64(Request["r"]));

        taskService           = ScheduleHelper.GetService();
        reportsFolder         = ScheduleHelper.GetReportsFolder(taskService);
        currentTask           = ScheduleHelper.GetTaskOrCreate(taskService, reportsFolder, _generalReport.Id, _generalReport.Comment, "GR");
        currentTaskDefinition = currentTask.Definition;

        tempTask = ScheduleHelper.FindTaskNullable(reportsFolder, _generalReport.Id, "temp_");
        TaskState tempTaskState;
        string    tempTaskDescription = string.Empty;

        if (tempTask != null)
        {
            tempTaskState       = tempTask.State;
            tempTaskDescription = tempTask.Definition.RegistrationInfo.Description;
        }
        else
        {
            tempTaskState = TaskState.Unknown;
        }

        btnExecute.Enabled = currentTask.State != TaskState.Running && tempTaskState != TaskState.Running;
        btnExecute.Text    = (currentTask.State == TaskState.Running) ? StatusNotRunning : StatusRunning;

        var userName = HttpContext.Current.User.Identity.Name.Replace(@"ANALIT\", string.Empty);

        ErrorMassage.Text     = string.Empty;
        ErrorMassage.CssClass = "error";

        var description = tempTaskState == TaskState.Running ? string.Format("(запустил: {0})", tempTaskDescription) : string.Empty;

        if (tempTaskState == TaskState.Running || currentTask.State == TaskState.Running)
        {
            ExecAction action = null;
            var        currentReportNumber = "";
            ulong      runningNumber       = 0;
            if (tempTaskState == TaskState.Running)
            {
                if (tempTask != null)
                {
                    action = (ExecAction)tempTask.Definition.Actions.FirstOrDefault();
                }
            }
            else
            {
                action = (ExecAction)currentTask.Definition.Actions.FirstOrDefault();
            }
            if (action != null)
            {
                var arguments = (action).Arguments;
                if (!String.IsNullOrEmpty(arguments))
                {
                    if (arguments.IndexOf("/gr:") >= 0)
                    {
                        var substring    = arguments.Substring(arguments.IndexOf("/gr:") + 4);
                        var numberLength = substring.IndexOf(@" /");
                        var reportNumber = substring.Substring(0, numberLength != -1 ? numberLength : substring.Length);
                        if (!String.IsNullOrEmpty(reportNumber))
                        {
                            currentReportNumber += " № ";
                            currentReportNumber += reportNumber;
                            ulong.TryParse(reportNumber, out runningNumber);
                        }
                    }
                }
            }
            var startTime = GetStartTime(DbSession, runningNumber != 0 ? runningNumber : _generalReport.Id);

            var prefix = tempTaskState == TaskState.Running ? String.Format("Успешно запущен разовый отчет{0}", currentReportNumber)
                                : String.Format("Отчет запущен ({0})", currentReportNumber);
            if (tempTaskDescription == userName || currentTask.State == TaskState.Running)
            {
                ErrorMassage.Text      = string.Format("{0}, ожидайте окончания выполнения операции. {1}", prefix, startTime);
                ErrorMassage.BackColor = Color.LightGreen;
            }
            else
            {
                ErrorMassage.Text      = String.Format("{1}, выполнение данного отчета отложено {0}. {2}", description, prefix, startTime);
                ErrorMassage.BackColor = Color.Red;
            }
            btn_Mailing.Enabled = false;
            RadioSelf.Enabled   = false;
            RadioMails.Enabled  = false;
        }
        if (tempTaskState == TaskState.Queued || currentTask.State == TaskState.Queued)
        {
            var prefix = tempTaskState == TaskState.Running ? "Запускается разовый отчет" : "Отчет запускается";
            if (tempTaskDescription == userName || currentTask.State == TaskState.Queued)
            {
                ErrorMassage.Text      = string.Format("{0}, ожидайте окончания выполнения операции", prefix);
                ErrorMassage.BackColor = Color.LightGreen;
            }
            else
            {
                ErrorMassage.Text      = string.Format("{1} {0}, выполнение данного отчета отложено)", description, prefix);
                ErrorMassage.BackColor = Color.Red;
            }
            btn_Mailing.Enabled = false;
            RadioSelf.Enabled   = false;
            RadioMails.Enabled  = false;
        }
        if ((tempTaskState == TaskState.Ready && currentTask.State != TaskState.Running && currentTask.State != TaskState.Queued) ||
            (currentTask.State == TaskState.Ready && tempTaskState != TaskState.Running && tempTaskState != TaskState.Queued))
        {
            if (tempTaskDescription == userName || currentTask.State == TaskState.Ready)
            {
                // отчет выполнен
                if (Session["StartTaskTime"] != null)
                {
                    Session.Remove("StartTaskTime");
                    ErrorMassage.Text      = "Операция выполнена";
                    ErrorMassage.BackColor = Color.LightGreen;
                }
                else
                {
                    ErrorMassage.Text = "";
                }
            }
        }

        if ((tempTaskState == TaskState.Disabled && currentTask.State != TaskState.Running && currentTask.State != TaskState.Queued) ||
            (currentTask.State == TaskState.Disabled && tempTaskState != TaskState.Running && tempTaskState != TaskState.Queued))
        {
            if (Session["StartTaskTime"] != null)
            {
                Session.Remove("StartTaskTime");
                ErrorMassage.Text      = "Операция отменена";
                ErrorMassage.BackColor = Color.Red;
            }
            else
            {
                ErrorMassage.Text = "";
            }
        }

        var otherTriggers = new List <Trigger>();

        if (!IsPostBack)
        {
            var selfMail = GetSelfEmails();
            if ((selfMail.Count != 0) && (selfMail[0].Length != 0))
            {
                RadioSelf.Text = "Выполнить и отослать на: " + selfMail[0][0];
            }

            dtFrom.Value   = DateTime.Now.AddDays(-7).ToShortDateString();
            dtTo.Value     = DateTime.Now.ToShortDateString();
            mail_Text.Text = GetMailingAdresses();

            try {
                lblClient.Text        = _generalReport.Payer.Id + " - " + _generalReport.Payer.ShortName;
                lblReportComment.Text = _generalReport.Comment;
                var lastLogTimes = ObjectFromQuery(new[] { new MySqlParameter("?GeneralReportCode", _generalReport.Id) },
                                                   @"
SELECT
  Max(LogTime) as MaxLogTime
FROM
  logs.reportslogs
WHERE
  reportslogs.GeneralReportCode = ?GeneralReportCode
");
                if ((lastLogTimes.Count > 0) && (lastLogTimes[0].Length > 0))
                {
                    if (lastLogTimes[0][0] is DateTime)
                    {
                        MyCn.Open();
                        MyCmd.CommandText = @"
SELECT
  LogTime,
  EMail,
  SMTPID
FROM
  logs.reportslogs
WHERE
	reportslogs.GeneralReportCode = ?GeneralReportCode
and reportslogs.LogTime > ?LastLogTime
order by LogTime desc
";
                        MyCmd.Parameters.AddWithValue("?LastLogTime", ((DateTime)lastLogTimes[0][0]).AddDays(-1).Date);
                        var _logs = new DataTable();
                        MyDA.Fill(_logs);
                        gvLogs.DataSource = _logs;
                    }
                }
                gvLogs.DataBind();

                MyCmd.Parameters.Clear();
                MyCmd.CommandText = @"select
rel.StartTime,
if (not EndError, rel.EndTime, 'Ошибка при формировании отчета') as EndTime
from `logs`.reportexecutelogs rel
where rel.GeneralReportCode = ?GeneralReportCode
order by StartTime desc
limit 15;";
                MyCmd.Parameters.AddWithValue("?GeneralReportCode", _generalReport.Id);

                var startlogs = new DataTable();
                MyDA.Fill(startlogs);
                startLogs.DataSource = startlogs;

                startLogs.DataBind();
            }
            finally {
                MyCn.Close();
            }

            chbAllow.Checked = currentTask.Enabled;
            lblWork.Text     = ((ExecAction)currentTask.Definition.Actions[0]).Path + " " + ((ExecAction)currentTask.Definition.Actions[0]).Arguments;
            lblFolder.Text   = ((ExecAction)currentTask.Definition.Actions[0]).WorkingDirectory;
            if (_generalReport.FirmCode != null)
            {
                var ftpId = _generalReport.FirmCode.ToString().PadLeft(3, '0');
                FtpPath.Text = $"ftp://ftp.analit.net/OptBox/{ftpId}/Reports/";
            }
            else
            {
                FtpPath.Text = "";
            }
            var tl = currentTask.Definition.Triggers;

            for (int i = 0; i < tl.Count; i++)
            {
                if (tl[i] is WeeklyTrigger)
                {
                    var dr      = DS.Tables[dtSchedule.TableName].NewRow();
                    var trigger = ((WeeklyTrigger)tl[i]);
                    dr[SStartHour.ColumnName]   = trigger.StartBoundary.Hour;
                    dr[SStartMinute.ColumnName] = trigger.StartBoundary.Minute;
                    var days = trigger.DaysOfWeek;

                    SetWeekDays(dr, DaysOfTheWeek.Monday, days);
                    SetWeekDays(dr, DaysOfTheWeek.Tuesday, days);
                    SetWeekDays(dr, DaysOfTheWeek.Wednesday, days);
                    SetWeekDays(dr, DaysOfTheWeek.Thursday, days);
                    SetWeekDays(dr, DaysOfTheWeek.Friday, days);
                    SetWeekDays(dr, DaysOfTheWeek.Saturday, days);
                    SetWeekDays(dr, DaysOfTheWeek.Sunday, days);

                    DS.Tables[dtSchedule.TableName].Rows.Add(dr);
                }
                else if (tl[i] is MonthlyTrigger)
                {
                    var dr = DS.Tables[dtScheduleMonth.TableName].NewRow();
                    //очищаем таблицу от значений по умолчанию
                    for (var k = 1; k <= 31; k++)
                    {
                        dr["d" + k] = 0;
                    }
                    for (var k = 1; k <= 12; k++)
                    {
                        dr["m" + k] = 0;
                    }

                    var trigger = ((MonthlyTrigger)tl[i]);
                    dr[MSStartHour.ColumnName]   = trigger.StartBoundary.Hour;
                    dr[MSStartMinute.ColumnName] = trigger.StartBoundary.Minute;
                    var             months = trigger.MonthsOfYear;
                    MonthsOfTheYear month;
                    for (int j = 0; j < 12; j++)
                    {
                        MonthsOfTheYear.TryParse((1 << j).ToString(), true, out month);
                        if (months.HasFlag(month))
                        {
                            dr["m" + (j + 1)] = 1;
                        }
                    }
                    foreach (int em in trigger.DaysOfMonth)
                    {
                        dr["d" + em] = 1;
                    }
                    DS.Tables[dtScheduleMonth.TableName].Rows.Add(dr);
                }
                else
                {
                    otherTriggers.Add(tl[i]);
                }
            }

            DS.Tables[dtSchedule.TableName].AcceptChanges();
            dgvSchedule.DataSource = DS;
            dgvSchedule.DataMember = dtSchedule.TableName;
            dgvSchedule.DataBind();

            dgvScheduleMonth.DataSource = DS;
            dgvScheduleMonth.DataMember = dtScheduleMonth.TableName;
            dgvScheduleMonth.DataBind();

            gvOtherTriggers.DataSource = otherTriggers;
            gvOtherTriggers.DataBind();

            Session[DSSchedule] = DS;

            CloseTaskService();
        }
        else
        {
            DS = ((DataSet)Session[DSSchedule]);
            if (DS == null)             // вероятно, сессия завершилась и все ее данные утеряны
            {
                Reports_GeneralReports.Redirect(this);
            }
        }

        send_created_report.Visible = _generalReport.IsSuccessfulyProcessed;
    }
Exemplo n.º 31
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            string errors="";
            string returnURL="";
            string reportName="";
            char failed='0';

            try
            {
                reportLogID = Int32.Parse(Request.QueryString.ToString());
            }
            catch
            {
                errors+="Invalid ReportNumber\n<br>";
            }

            string[] strParameterNames=new string[] {};
            string[] strParameterValues=new string[] {};

            //SqlConnection conn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=sefareshat");
            SqlConnection conn = new SqlConnection("data source=appserv;initial catalog=sefareshat;password=5tgb;persist security info=True;user id=sefadmin;workstation id=appserv;packet size=4096");
            conn.Open();

            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.Connection=conn;

            sqlCommand.CommandText="SELECT ReportFileName,ReportParameterNames,ReportParameterValues,ReturnURL FROM ReportLog WHERE ID='"+ reportLogID +"' AND Checked=0";

            SqlDataReader dr = sqlCommand.ExecuteReader();

            if (dr.Read())
            {
                reportName=dr.GetString(0);
                report=new GeneralReport(reportName);
                string tmpParameterNames=dr.GetString(1);
                string tmpParameterValues=dr.GetString(2);
                returnURL=dr.GetString(3);
                if(tmpParameterNames!="")
                {
                    strParameterNames=tmpParameterNames.Split((char)1);
                    strParameterValues=tmpParameterValues.Split((char)1);
                }
            }
            else
            {
                errors+="No such Report\n<br>";
            }
            dr.Close();
            try
            {
                for (int i=0; i<strParameterNames.Length; i++)
                {
                    ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
                    ParameterField paramField = new ParameterField ();

                    paramField.ParameterFieldName = strParameterNames[i];
                    discreteVal.Value = strParameterValues[i];
                    paramField.CurrentValues.Add (discreteVal);
                    parameterFields.Add (paramField);
                }
            }
            catch
            {
                errors+="Invalid Report Parameters...\n<br>";
            }

            string printerName=Util.choosePrinter(Request.UserHostAddress,reportName);
            if(! Print(printerName))
                errors+="Cannot Print Report...\n<br>";

            if (errors!="")
            {
                failed='1';
                Response.Write(errors);
            }

            sqlCommand.CommandText="UPDATE ReportLog Set Checked='1',Printed='1',Failed='"+failed+"',ErrorDescription=N'"+ Util.sqlSafe(errors) +"',PrinterName='"+ Util.sqlSafe(printerName)+"' WHERE (ID='"+ reportLogID +"') AND (Printed=0) ";
            sqlCommand.ExecuteNonQuery();

            conn.Close();
            if (report!=null) report.Dispose();
            if (returnURL!="" && errors=="")
                Response.Redirect(returnURL,true);
            Response.End();
        }