Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/Reporting/CS/SnapMainDemo/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/Reporting/CS/SnapMainDemo/Modules/Initializers.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Snap.Core.API;
using DevExpress.Utils;
using System.IO;
using DevExpress.DataAccess;
using DevExpress.DataAccess.ConnectionParameters;
using System.Data.OleDb;
using System.Windows.Forms;
using SnapDemos.nwindDataSetTableAdapters;
using DevExpress.Office;
using DevExpress.XtraRichEdit.API.Native;

namespace SnapDemos.Modules {
    public abstract class SnapDocumentInitializer {
        readonly string fileName;
        public SnapDocumentInitializer(string fileName) {
            this.fileName = fileName;
        }
        public string FileName { get { return fileName; } }
        public virtual void Initialize(SnapDocument snapDocument) {
            string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, string.Format(@"Data\{0}.snx", fileName), false);
            if(File.Exists(path))
                snapDocument.LoadDocument(path, SnapDocumentFormat.Snap);
        }
    }

    public abstract class SnapDocumentInitializerUI : SnapDocumentInitializer {
        public SnapDocumentInitializerUI(string fileName) : base(fileName) {

        }
        public override void Initialize(SnapDocument snapDocument) {
            using(WaitDialogForm dlg = new WaitDialogForm("Please wait", "Loading...")) {
                InitializeCore(snapDocument);
                base.Initialize(snapDocument);
            }
        }

        protected virtual void InitializeCore(SnapDocument snapDocument) {
        }
    }

    public class MasterDetailDocumentInitializer : SnapDocumentInitializer {
        public MasterDetailDocumentInitializer()
            : base("MasterDetailReport") {

        }
        public override void Initialize(SnapDocument snapDocument) {
            snapDocument.ConfigureDataConnection += new ConfigureDataConnectionEventHandler(Document_ConfigureDataConnection);
            base.Initialize(snapDocument);
        }
        protected void Document_ConfigureDataConnection(object sender, ConfigureDataConnectionEventArgs e) {
            string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
            Access97ConnectionParameters parameters = (Access97ConnectionParameters)e.ConnectionParameters;
            parameters.FileName = path;
        }
    }

    public class TableOfContentsDocumentInitializer : SnapDocumentInitializer {
        public TableOfContentsDocumentInitializer()
            : base("TableOfContents") {

        }
        public override void Initialize(SnapDocument snapDocument) {
            snapDocument.ConfigureDataConnection += new ConfigureDataConnectionEventHandler(Document_ConfigureDataConnection);
            base.Initialize(snapDocument);
        }
        protected void Document_ConfigureDataConnection(object sender, ConfigureDataConnectionEventArgs e) {
            string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
            Access97ConnectionParameters parameters = (Access97ConnectionParameters)e.ConnectionParameters;
            parameters.FileName = path;
        }
    }

    public class IListDatasourceDocumentInitializer : SnapDocumentInitializerUI {
        public IListDatasourceDocumentInitializer() : base("IListDatasource") {

        }
        protected override void InitializeCore(SnapDocument snapDocument) {
            var dataSource = DevExpress.Demos.DataSources.FishesSource.Data;
            snapDocument.DataSources.Add(new DataSourceInfo("Fishes", dataSource));
        }
    }

    public class CalculatedFieldsDocumentInitializer : SnapDocumentInitializerUI {
        public CalculatedFieldsDocumentInitializer() : base("CalculatedFields") {

        }
        protected override void InitializeCore(SnapDocument snapDocument) {
            string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
            var dataSource = new nwindDataSet();
            var connection = new OleDbConnection();
            connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);

            var orderReportsTableAdapter = new OrderReportsTableAdapter();
            orderReportsTableAdapter.Connection = connection;
            orderReportsTableAdapter.Fill(dataSource.OrderReports);

            var bindingSource = new BindingSource();
            bindingSource.DataSource = dataSource;
            bindingSource.DataMember = "OrderReports";
            snapDocument.DataSources.Add(new DataSourceInfo("Orders", bindingSource));
        }
    }

    public class MultiColumnReportDocumentInitializer : SnapDocumentInitializerUI {
        public MultiColumnReportDocumentInitializer()
            : base("MultiColumnReport") {

        }
        protected override void InitializeCore(SnapDocument snapDocument) {
            string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
            var dataSource = new nwindDataSet();
            var connection = new OleDbConnection();
            connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);

            var customersTableAdapter = new CustomersTableAdapter();
            customersTableAdapter.Connection = connection;
            customersTableAdapter.Fill(dataSource.Customers);

            var bindingSource = new BindingSource();
            bindingSource.DataSource = dataSource;
            bindingSource.DataMember = "Customers";

            snapDocument.DataSource = bindingSource;
        }
    }

    public class ChartsDocumentInitializer : SnapDocumentInitializerUI {
        public ChartsDocumentInitializer() : base("Charts") {

        }
        protected override void InitializeCore(SnapDocument snapDocument) {
            string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
            var dataSource = new nwindDataSet();
            var connection = new OleDbConnection();
            var suppliersTableAdapter = new SuppliersTableAdapter();
            connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);
            suppliersTableAdapter.Connection = connection;
            suppliersTableAdapter.Fill(dataSource.Suppliers);

            var products = new ProductsTableAdapter();
            products.Connection = connection;
            products.Fill(dataSource.Products);

            var bindingSource = new BindingSource();
            bindingSource.DataSource = dataSource;
            bindingSource.DataMember = "Suppliers";

            snapDocument.DataSource = bindingSource;
        }
    }

    public class BarCodeDocumentInitializer : SnapDocumentInitializerUI {
        public BarCodeDocumentInitializer() : base("BarCode") {

        }
    }

    public class MultipleDatasourcesDocumentInitializer : SnapDocumentInitializerUI {
        public MultipleDatasourcesDocumentInitializer()
            : base("MultipleDatasources") {

        }
        protected override void InitializeCore(SnapDocument snapDocument) {
            string path = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, @"Data\nwind.mdb", false);
            var dataSource = new nwindDataSet();
            var connection = new OleDbConnection();
            connection.ConnectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", path);

            var orderReportsTableAdapter = new OrderReportsTableAdapter();
            orderReportsTableAdapter.Connection = connection;
            orderReportsTableAdapter.Fill(dataSource.OrderReports);

            var bindingSource = new BindingSource();
            bindingSource.DataSource = dataSource;
            bindingSource.DataMember = "OrderReports";

            var fishes = DevExpress.Demos.DataSources.FishesSource.Data;

            snapDocument.BeginUpdateDataSource();
            snapDocument.DataSources.Add(new DataSourceInfo("Fishes", fishes));
            snapDocument.DataSources.Add(new DataSourceInfo("Orders", bindingSource));
            snapDocument.EndUpdateDataSource();

            var name = "IListDataSource.snx";
            string filePath = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, string.Format(@"Data\{0}", name), false);
            if(File.Exists(filePath))
                snapDocument.LoadDocument(filePath, SnapDocumentFormat.Snap);
            Field field = snapDocument.Fields.Add(snapDocument.Range.Start, "TOC \\o \\f tocID \\h");
            snapDocument.InsertText(field.Range.End, Characters.PageBreak.ToString());

            snapDocument.InsertText(snapDocument.Range.End, Characters.PageBreak.ToString());
            name = "CalculatedFields.snx";
            filePath = FilesHelper.FindingFileName(AppDomain.CurrentDomain.BaseDirectory, string.Format(@"Data\{0}", name), false);
            if(File.Exists(filePath)) {
                snapDocument.InsertDocumentContent(snapDocument.Range.End, filePath, SnapDocumentFormat.Snap);
            }
            snapDocument.Fields.Update();
            field.Update();

        }
    }


}