Пример #1
0
        public override void Update()
        {
            if (State.CompanyCode == "mos")
            {
                DB db = new DB("travox_global");

                RequestBuilder doExchange = new RequestBuilder("https://api.travox.com/API-v3/exchange-rate/")
                {
                    Method      = RequestBuilder.By.POST,
                    ContentType = "application/x-www-form-urlencoded"
                };

                doExchange.Headers.Add("Token-Auth", "ZHNnc2RmaCxrZXIgbmFsZ25zIGRmZ2RzZmc");

                doExchange.AddBody("from", db.GetField("SELECT ISNULL(currency,'') FROM currency FOR XML PATH('')"));
                doExchange.AddBody("to", "THB");
                doExchange.AddBody("amt", "1");

                try
                {
                    String res = XHR.Request(doExchange, true);

                    foreach (RateAPI item in JsonConvert.DeserializeObject <List <RateAPI> >(res.ToString()))
                    {
                        SQLCollection param = new SQLCollection
                        {
                            { "@to", DbType.String, item.currency },
                            { "@rate", DbType.Decimal, item.rate },
                            { "@date", DbType.DateTime, DateTime.Parse(item.updated).ToString("dd-MM-yyyy HH:mm:ss") }
                        };
                        db.Execute("UPDATE currency SET currency_rate=@rate, last_update=@date WHERE currency = @to", param);
                    }
                    db.Apply();
                    base.Update();
                }
                catch (Exception e)
                {
                    db.Rollback();
                    base.Update();
                    throw new Exception(base.DBName, e);
                }
            }
        }
Пример #2
0
        public override void Update()
        {
            base.Update();
            const String ViewerPath = @"C:\inetpub\wwwroot\travox.com\viewer\";

            SecretaryEvent Period = SecretaryEvent.Unknow;

            SQLCollection param = new SQLCollection("@id", DbType.Int32, base.State.CompanyID);

            foreach (DataRow Row in new DB("travox_system").GetTable(@"
                SELECT secretary_id, period, output_email, output_printer, email, report_name, report_key, template_name
                FROM crawler.secretary s LEFT JOIN document.report r ON r.report_id = s.report_id
                WHERE s.status = 'ACTIVE' AND (site_customer_id = @id OR site_customer_id IS NULL)
            ", param).Rows)
            {
                ParameterDate SystemDate;

                switch (Row["period"].ToString())
                {
                case "Daily": Period = SecretaryEvent.Daily; break;

                case "Weekly": Period = SecretaryEvent.Weekly; break;

                case "Monthly": Period = SecretaryEvent.Monthly; break;
                }

                SystemDate.From = DateTime.Now.Date;
                SystemDate.To   = DateTime.Now.Date;
                DateTime DateEndMonth    = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddDays(-1);
                String   OutputEmailType = Row["output_email"].ToString().Trim();
                String   OutputPrinter   = Row["output_printer"].ToString().Trim();

                if (Period == SecretaryEvent.Monthly && (DateTime.Now.Date == DateEndMonth || App.DebugMode))
                {
                    SystemDate.From = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                    SystemDate.To   = DateEndMonth;
                }
                else if (Period == SecretaryEvent.Weekly && (DateTime.Now.DayOfWeek == DayOfWeek.Sunday || App.DebugMode))
                {
                    SystemDate.From = SystemDate.To.AddDays(-7);
                }
                else if (Period == SecretaryEvent.Daily)
                {
                }
                else
                {
                    Period = SecretaryEvent.Unknow;
                }

                if ((!MBOS.Null(OutputEmailType) || MBOS.Bool(OutputPrinter)) && Period != SecretaryEvent.Unknow)
                {
                    RequestBuilder ReportViewer = new RequestBuilder(App.DebugMode ? "https://viewer.travox.com/default.aspx" : "http://localhost:8026/Default.aspx")
                    {
                        Method      = RequestBuilder.By.POST,
                        ContentType = "application/json"
                    };

                    ReportViewer.Headers.Add("Travox-Sentinel", "true");
                    ReportViewer.SetCookie("ASP.NET_SessionId", SessionID);
                    ReportViewer.SetCookie("DATABASE_NAME", base.State.DatabaseName);
                    ReportViewer.SetCookie("CUSTOMER_CODE", base.State.CompanyCode);
                    ReportViewer.SetCookie("STAFF_ID", "-4");
                    ReportViewer.SetCookie("STAFF_CODE", "TX");
                    ReportViewer.SetCookie("REMEMBER", "true");

                    ReportViewer.RawBody.Append(JsonConvert.SerializeObject(new HandlerItem {
                        OnEmail      = !MBOS.Null(OutputEmailType),
                        OnPrinter    = MBOS.Bool(OutputPrinter),
                        ID           = Row["secretary_id"].ToString(),
                        Email        = Row["email"].ToString(),
                        Period       = Row["period"].ToString(),
                        TemplateName = Row["template_name"].ToString(),
                        PeriodDate   = SystemDate,
                        ItemType     = new ItemType {
                            ExportType = OutputEmailType
                        },
                        Report = new ItemReport {
                            Name = Row["report_key"].ToString(), Filename = Row["report_key"].ToString() + ".rpt"
                        }
                    }));

                    String ex = XHR.Request(ReportViewer, true);
                    if (!MBOS.Null(ex))
                    {
                        Console.WriteLine(base.State.CompanyCode + " --- " + Row["template_name"].ToString());
                        Console.WriteLine(ex);
                    }
                }
            }
        }