using framework_business;
using framework_business.classes;
using System;
using System.Configuration;
using System.Data;
using System.Reflection;
namespace scheduler
{
public class GoogleSheetImports
{
private string SpreadSheetId { get; set; }
private string FabricSheetName { get; set; }
private string TrimSheetName { get; set; }
private string ZipSheetName { get; set; }
private string GoogleSheetApplicationName { get; set; }
private string UserType = "4";
private readonly string _schedulerType = "GoogleSheetImport";
public GoogleSheetImports()
{
SpreadSheetId = ConfigurationManager.AppSettings["GoogleSpreadSheetId"].ToString();
FabricSheetName = ConfigurationManager.AppSettings["FabricSheetName"].ToString();
TrimSheetName = ConfigurationManager.AppSettings["TrimSheetName"].ToString();
ZipSheetName = ConfigurationManager.AppSettings["ZipSheetName"].ToString();
GoogleSheetApplicationName = ConfigurationManager.AppSettings["GoogleSheetApplicationName"].ToString();
}
///
/// Main method for handling various cases to execute other methods based on arguments
///
///
public void ExecuteGoogleSheetImportMethods(string[] args)
{
try
{
if (args[0].ToString().ToLower().Contains("googlesheetimport-fabrictrimzip"))
{
ImportColoursData("all");
ImportFabricDetails();
ImportTrimDetails();
ImportZipDetails();
}
if (args[0].ToString().ToLower().Contains("googlesheetimportcolours"))
{
var values = args[0].Split('-');
string colourType = values?.Length > 1 ? values[1].ToLower() : "all";
ImportColoursData(colourType);
}
if (args[0].ToString().ToLower().Contains("googlesheetimportdetails"))
{
var values = args[0].Split('-');
string type = values?.Length > 1 ? values[1].ToLower() : "all";
if (type == "all" || type == "fabric")
{
ImportFabricDetails();
}
if (type == "all" || type == "trim")
{
ImportTrimDetails();
}
if (type == "all" || type == "zip")
{
ImportZipDetails();
}
}
}
catch (Exception ex)
{
LogWriter.LogInfo(_schedulerType,$"{ex.Message}{Environment.NewLine} {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name} - {args[0]}");
}
}
#region Import&SaveColours
public bool ImportColoursData(string colourType)
{
try
{
LogWriter.LogInfo(_schedulerType,$"Scheduler Initiated for GoogleSheetImport-{colourType}", MethodBase.GetCurrentMethod().Name);
if (colourType.ToLower() == "all")
{
ImportFabricColours();
ImportTrimColours();
ImportZipColours();
}
else
{
switch (colourType.ToLower())
{
case "fabric":
ImportFabricColours();
break;
case "trim":
ImportTrimColours();
break;
case "zip":
ImportZipColours();
break;
default:
break;
}
}
return true;
}
catch (Exception ex)
{
LogWriter.LogInfo(_schedulerType,$"{ex.Message} {Environment.NewLine} {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name} - {colourType}");
return false;
}
}
private void ImportFabricColours()
{
DataTable importData = xGoogleSheetData.ReadGoogleSheetData(GoogleSheetApplicationName, SpreadSheetId, FabricSheetName, "G", "H", 2);
importData.DefaultView.RowFilter = $"{importData.Columns[0].ColumnName} <> '' and {importData.Columns[1].ColumnName} <> ''";
importData = importData.DefaultView.ToTable(true, new string[] { importData.Columns[0].ColumnName, importData.Columns[1].ColumnName });
importData.Columns.Add("userType", typeof(Int32), UserType);
if (importData != null || importData.Rows.Count > 0)
{
SaveColourData(3100, importData);
LogWriter.LogInfo(_schedulerType,$"Fabric Colours Synced", MethodBase.GetCurrentMethod().Name);
}
}
private void ImportTrimColours()
{
DataTable importData = xGoogleSheetData.ReadGoogleSheetData(GoogleSheetApplicationName, SpreadSheetId, TrimSheetName, "G", "H", 2);
importData.DefaultView.RowFilter = $"{importData.Columns[0].ColumnName} <> '' and {importData.Columns[1].ColumnName} <> ''";
importData = importData.DefaultView.ToTable(true, new string[] { importData.Columns[0].ColumnName, importData.Columns[1].ColumnName });
importData.Columns.Add("userType", typeof(Int32), UserType);
if (importData != null || importData.Rows.Count > 0)
{
SaveColourData(3101, importData);
LogWriter.LogInfo(_schedulerType,$"Trim Colours Synced", MethodBase.GetCurrentMethod().Name);
}
}
private void ImportZipColours()
{
DataTable importData = xGoogleSheetData.ReadGoogleSheetData(GoogleSheetApplicationName, SpreadSheetId, ZipSheetName, "G", "H", 2);
importData.DefaultView.RowFilter = $"{importData.Columns[0].ColumnName} <> '' and {importData.Columns[1].ColumnName} <> ''";
importData = importData.DefaultView.ToTable(true, new string[] { importData.Columns[0].ColumnName, importData.Columns[1].ColumnName });
importData.Columns.Add("userType", typeof(Int32), UserType);
if (importData != null || importData.Rows.Count > 0)
{
SaveColourData(3102, importData);
LogWriter.LogInfo(_schedulerType,$"Zip Colours Synced", MethodBase.GetCurrentMethod().Name);
}
}
private bool SaveColourData(int recId, DataTable importData)
{
switch (recId)
{
case 3100:
importData.Columns[0].ColumnName = "FabricColours_FabricColours_MasterColour";
importData.Columns[1].ColumnName = "FabricColours_FabricColours_FabricColour";
break;
case 3101:
importData.Columns[0].ColumnName = "TrimColours_TrimColours_MasterColour";
importData.Columns[1].ColumnName = "TrimColours_TrimColours_TrimColour";
break;
case 3102:
importData.Columns[0].ColumnName = "ZipColours_ZipColours_MasterColour";
importData.Columns[1].ColumnName = "ZipColours_ZipColours_ZipColour";
break;
default:
break;
}
var result = surfaceHandler.AdminColourImportDataToSurface(importData, recId);
return result;
}
#endregion
#region ImportFabric-Trim-Zip-Details
public bool ImportFabricDetails()
{
try
{
LogWriter.LogInfo(_schedulerType,$"Scheduler Initiated for ImportFabricDetails", MethodBase.GetCurrentMethod().Name);
DataTable importData = xGoogleSheetData.ReadGoogleSheetData(GoogleSheetApplicationName, SpreadSheetId, FabricSheetName, "B", "F", 2);
importData.DefaultView.RowFilter = $"Category <> '' and Type <> '' and Quality_Reference <>''";
importData = importData.DefaultView.ToTable(true, new string[] { "Category", "Type", "Quality_Reference", "Description", "Active" });
if (importData != null || importData.Rows.Count > 0)
{
surfaceHandler.ImportFabricDetails(importData, 3043);
LogWriter.LogInfo(_schedulerType,$"Fabric Details Synced", MethodBase.GetCurrentMethod().Name);
}
return true;
}
catch (Exception ex)
{
LogWriter.LogInfo(_schedulerType,$"{ex.Message}{Environment.NewLine} {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name}");
return false;
}
}
public bool ImportTrimDetails()
{
try
{
LogWriter.LogInfo(_schedulerType,$"Scheduler Initiated for ImportTrimDetails", MethodBase.GetCurrentMethod().Name);
DataTable importData = xGoogleSheetData.ReadGoogleSheetData(GoogleSheetApplicationName, SpreadSheetId, TrimSheetName, "B", "F", 2);
importData.DefaultView.RowFilter = $"Category <> '' and Type <> '' and Quality_Reference <>''";
importData = importData.DefaultView.ToTable(true, new string[] { "Category", "Type", "Quality_Reference", "Description", "Active" });
if (importData != null || importData.Rows.Count > 0)
{
surfaceHandler.ImportTrimDetails(importData, 3048);
LogWriter.LogInfo(_schedulerType,$"Trim Details Synced", MethodBase.GetCurrentMethod().Name);
}
return true;
}
catch (Exception ex)
{
LogWriter.LogInfo(_schedulerType,$"{ex.Message}{Environment.NewLine} {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name}");
return false;
}
}
public bool ImportZipDetails()
{
try
{
LogWriter.LogInfo(_schedulerType,$"Scheduler Initiated for ImportZipDetails", MethodBase.GetCurrentMethod().Name);
DataTable importData = xGoogleSheetData.ReadGoogleSheetData(GoogleSheetApplicationName, SpreadSheetId, ZipSheetName, "B", "F", 2);
importData.DefaultView.RowFilter = $"Category <> '' and Type <> '' and Quality_Reference <>''";
importData = importData.DefaultView.ToTable(true, new string[] { "Category", "Type", "Quality_Reference", "Description", "Active" });
if (importData != null || importData.Rows.Count > 0)
{
surfaceHandler.ImportZipDetails(importData, 3051);
LogWriter.LogInfo(_schedulerType,$"Zip Details Synced", MethodBase.GetCurrentMethod().Name);
}
return true;
}
catch (Exception ex)
{
LogWriter.LogInfo(_schedulerType,$"{ex.Message}{Environment.NewLine}{ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name}");
return false;
}
}
#endregion
}
}