HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/TDijk1/erp-apps.eu/wwwroot/ERPApps/ERPWebParts/ImportControl.ascx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.IO;
using CMS.TreeEngine;
using CMS.CMSHelper;
using CMS.SiteProvider;
using System.Data;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.DataEngine;
using CMS.DocumentEngine;
using CMS.CustomTables;
using CMS.Helpers;

public partial class ERPApps_ERPWebParts_ImportControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        btnRun.Click += new EventHandler(btnRun_Click);
    }

    void btnRun_Click(object sender, EventArgs e)
    {
        StreamReader streamReader = new StreamReader(@"e:\input-2.csv");

        string line = null;
        string previousVendor = null;
        TreeNode vendorNode = null;


        DataSet dsIndustries = CustomTableItemProvider.GetItems("ERP.ListIndustrySector", null, null);
        DataSet dsProcesses = CustomTableItemProvider.GetItems("ERP.ListProcessGroup", null, null);
        DataSet dsPlatforms = CustomTableItemProvider.GetItems("ERP.ListPlatformType", null, null);

        //foreach ( DataRow item in dsIndustries.Tables[0].Rows )
        //{
        //    TreeNode node = TreeNode.New("ERP.IndustryPage");
        //    node.NodeName = item["ItemName"].ToString();
        //    node.DocumentName = item["ItemName"].ToString();
        //    node.SetValue("IndustryPageSector", item["ItemID"]);

        //    node.Insert(TreeHelper.SelectSingleNode("/industries"));
        //}

        foreach ( DataRow item in dsProcesses.Tables[0].Rows )
        {
            TreeNode node = TreeNode.New("ERP.ProcessPage");
            node.NodeName = item["ItemName"].ToString();
            node.DocumentName = item["ItemName"].ToString();
            node.SetValue("ProcessPageGroup", item["ItemID"]);

            node.Insert(TreeHelper.SelectSingleNode("/processes"));
        }

        return;
        GeneralConnection cn = ConnectionHelper.GetConnection();

        while ( ( line = streamReader.ReadLine() ) != null )
        {
            string[] data = line.Split(';');

            if ( previousVendor == null || !previousVendor.Equals(data[0]) )
            {
                // create vendor
                TreeNode node = TreeNode.New(ERPConfig.DOCTYPE_VENDOR);
                node.SetValue("VendorName", data[0]);
                node.NodeName = data[0];
                node.DocumentName = data[0];
                node.SetValue("VendorAddressStreet", "imported");
                node.SetValue("VendorAddressCity", "");
                node.SetValue("VendorAddressPostCode", "");
                node.SetValue("VendorAddressCountry", "USA");
                node.SetValue("VendorContactEmail", "test@example.com");
                node.SetValue("VendorContactPerson", "John Smith");

                node.Insert(TreeHelper.SelectSingleNode("/vendors"));

                vendorNode = node;
                previousVendor = data[0];
            }

            // create application
            TreeNode appNode = TreeNode.New(ERPConfig.DOCTYPE_APPLICATION);
            appNode.SetValue("AppName", data[1]);
            appNode.DocumentName = data[1];
            appNode.NodeName = data[1];
            appNode.SetValue("AppShortDescription", data[2]);
            appNode.SetValue("AppDescription", data[3].Replace("\\n", "\n"));
            appNode.SetValue("AppVendorID", vendorNode.GetValue("VendorID"));
            appNode.SetValue("AppSolutionType", "add-on");
            appNode.SetValue("AppIsPublished", "1");
            appNode.SetValue("AppShowCommercialProfile", "0");
            appNode.SetValue("AppMonthPageviews", "0");

            appNode.Insert(vendorNode);

            Random r = new Random();

            string industries = "|";
            if ( !DataHelper.DataSourceIsEmpty(dsIndustries) )
            {
                foreach ( DataRow item in dsIndustries.Tables[0].Rows )
                {
                    if ( r.Next(100) % 3 == 1 )
                    {
                        // create insert query
                        QueryDataParameters insertParameters = new QueryDataParameters();
                        insertParameters.Add("@AppID", appNode.GetValue("AppID"));
                        insertParameters.Add("@IndustrySectorID", item["ItemID"]);
                        insertParameters.Add("@ItemGUID", Guid.NewGuid());

                        industries += item["ItemID"] + "|";

                        cn.ExecuteNonQuery(new QueryParameters(QueryInfoProvider.GetQueryInfo("ERP.JoinApplicationListIndustrySector.insert"), insertParameters,null));
                    }
                }
            }

            if ( !industries.Equals("|") )
            {
                appNode.SetValue("AppIndustrySectors", industries + "|");
            }

            string processes = "|";
            if ( !DataHelper.DataSourceIsEmpty(dsProcesses) )
            {
                foreach ( DataRow item in dsProcesses.Tables[0].Rows )
                {
                    if ( r.Next(100) % 3 == 1 )
                    {
                        // create insert query
                        QueryDataParameters insertParameters = new QueryDataParameters();
                        insertParameters.Add("@AppID", appNode.GetValue("AppID"));
                        insertParameters.Add("@ProcessGroupID", item["ItemID"]);
                        insertParameters.Add("@ItemGUID", Guid.NewGuid());

                        processes += item["ItemID"] + "|";

                        cn.ExecuteNonQuery(new QueryParameters(QueryInfoProvider.GetQueryInfo("ERP.JoinApplicationListProcessGroup.insert"), insertParameters,null));
                    }
                }
            }
            if ( !processes.Equals("|") )
            {
                appNode.SetValue("AppProcessGroups", processes + "|");
            }

            string platforms = "|";
            if ( !DataHelper.DataSourceIsEmpty(dsPlatforms) )
            {
                foreach ( DataRow item in dsPlatforms.Tables[0].Rows )
                {
                    if ( r.Next(100) % 3 == 1 )
                    {
                        // create insert query
                        QueryDataParameters insertParameters = new QueryDataParameters();
                        insertParameters.Add("@AppID", appNode.GetValue("AppID"));
                        insertParameters.Add("@PlatformTypeID", item["ItemID"]);
                        insertParameters.Add("@ItemGUID", Guid.NewGuid());

                        platforms += item["ItemID"] + "|";

                        cn.ExecuteNonQuery(new QueryParameters(QueryInfoProvider.GetQueryInfo("ERP.JoinApplicationListPlatformType.insert"), insertParameters, null));

                        break;
                    }
                }
            }
            if ( !platforms.Equals("|") )
            {
                appNode.SetValue("AppPlatformTypes", platforms + "|");
            }

            appNode.Update();
        }
    }
}