예제 #1
0
        public static RestServiceClientBase GetRestClient(string type)
        {
            RestServiceClientBase restClient = null;

            switch (type)
            {
            case "OrganizationRestClient":
                restClient = new OrganizationRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "PaymentReportsRestClient":
                restClient = new PaymentReportsRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "OrdersRestClient":
                restClient = new OrdersRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "ReportsRestClient":
                restClient = new ReportsRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "ContractsRestClient":
                restClient = new ContractsRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "PaymentsRestClient":
                restClient = new PaymentsRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "UserRestClient":
                restClient = new UserRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "ReferencesRestClient":
                restClient = new ReferencesRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "SiteRestClient":
                restClient = new SiteRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "OrdersDocumentsRestClient":
                restClient = new OrdersDocumentsRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "FlightsRestClient":
                restClient = new FlightsRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            case "SystemRestClient":
                restClient = new SystemRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);
                break;

            default:
                throw new Exception("RestClient type was set incorrectly.");
            }
            restClient.ImpersonationToken = new ImpersonationToken(Config.UserLogin, Config.UserPassword);
            return(restClient);
        }
예제 #2
0
        private ReportsRestClient CreateRestClient()
        {
            var restClient = new ReportsRestClient(Config.Url, Config.SiteSlug, Config.ApiKey);

            restClient.ImpersonationToken = new ImpersonationToken(Config.UserLogin, Config.UserPassword);

            return(restClient);
        }
예제 #3
0
        public void GetReportTypes()
        {
            ReportsRestClient restClient = CreateRestClient();

            IList <ReportType> reportTypes = restClient.GetReportTypes();

            Assert.NotNull(reportTypes);
            Assert.Greater(reportTypes.Count, 0);
        }
예제 #4
0
        public void GetReportTemplate()
        {
            ReportsRestClient restClient = CreateRestClient();

            IList <ReportTemplateInfo> reportTemplates = restClient.GetReportTemplatesInfo();

            string firstTypeCode = reportTemplates.First().TypeCodes.First();

            //Если в качестве второго праметра передан null, вернется базовый шаблон general.
            ReportTemplate reportType = restClient.GetReportTemplate(firstTypeCode, null /*reportTemplateCode*/);

            Assert.NotNull(reportType);
            Assert.NotNull(reportType.TemplateContent); //В этом массиве байтов содержится шаблон XtraReport (см. http://help.devexpress.com/#XtraReports/CustomDocument2162)
        }
예제 #5
0
        public void CreateOutInvoice()
        {
            ReportsRestClient restClient = CreateRestClient();

            Report report = restClient.CreateOutInvoice("73FC6" /*Номер заявки*/, null /*Стандартный шаблон отчета*/, ReportFormat.Pdf /*формат файла*/);

            //Сохраняем присланные байты в файл
            string filePath = Path.Combine(Path.GetTempPath(), report.Name /*Это имя вполне подойдет для названия файла*/);

            File.WriteAllBytes(filePath, report.Content);

            //Запускаем файл в связанном приложении
            Process.Start(new ProcessStartInfo {
                FileName = filePath, UseShellExecute = true
            });
        }
예제 #6
0
        public void CreateIssuedOrderReport()
        {
            ReportsRestClient restClient = CreateRestClient();

            var reportRequest = new IssuedOrdersReportRequest();

            reportRequest.BeginDate   = DateTime.Parse("2012.05.01");
            reportRequest.EndDate     = DateTime.Parse("2012.06.01");
            reportRequest.ServiceType = "flights";

            Report report = restClient.CreateIssuedOrdersReport(reportRequest, null /*Стандартный шаблон отчета*/, ReportFormat.Pdf /*формат файла*/);

            //Сохраняем присланные байты в файл
            string filePath = Path.Combine(Path.GetTempPath(), report.Name /*Это имя вполне подойдет для названия файла*/);

            File.WriteAllBytes(filePath, report.Content);

            //Запускаем файл в связанном приложении
            Process.Start(new ProcessStartInfo {
                FileName = filePath, UseShellExecute = true
            });
        }
예제 #7
0
        public void GetReportTemplates()
        {
            ReportsRestClient restClient = CreateRestClient();

            IList <ReportTemplateInfo> reportTemplates = restClient.GetReportTemplatesInfo();

            Assert.NotNull(reportTemplates);
            Assert.Greater(reportTemplates.Count, 0);

            //Создаем словарь шаблонов по их типам
            Dictionary <string, List <ReportTemplateInfo> > templatesByType =
                (from reportTemplate in reportTemplates
                 from typeCode in reportTemplate.TypeCodes
                 select new { reportTemplate, typeCode })
                .GroupBy(item => item.typeCode)
                .ToDictionary(group => group.Key, group => group.Select(item => item.reportTemplate).ToList());


            //Теперь очень просто получить все шаблоны по заданному типу.
            List <ReportTemplateInfo> templatesForInInvoice = templatesByType["ininvoice"];

            Assert.Greater(templatesForInInvoice.Count, 0);
        }
예제 #8
0
        public void CreateNewReportTemplate()
        {
            ReportsRestClient restClient = CreateRestClient();

            //Получаем общий шаблон
            var generalTemplate = restClient.GetReportTemplate("ininvoice", null /*reportTemplateCode*/);


            var reportTemplate = new ReportTemplate();

            reportTemplate.Code = Guid.NewGuid().ToString();
            reportTemplate.Name = "Тестовый шаблон, скопированный с общего";

            reportTemplate.TypeCodes = new List <string> {
                "ininvoice"
            };
            reportTemplate.TemplateContent = generalTemplate.TemplateContent.Clone() as byte[];

            //Тут редактируем reportTemplate.TemplateContent в XtraReport.

            restClient.SaveReportTemplate(reportTemplate);

            //Если не возникло исключения и мы оказались тут — значит все сохранилось.
        }