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();
}
}
}