using framework_business; using framework_business.classes; using System; using System.Configuration; using System.Data; using System.Reflection; namespace SchedulerTool { 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"; 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($"{ex.Message}\r\n {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name} - {args[0]}"); } } #region Import&SaveColours public bool ImportColoursData(string colourType) { try { LogWriter.LogInfo($"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($"{ex.Message}\r\n {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($"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($"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($"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($"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($"Fabric Details Synced", MethodBase.GetCurrentMethod().Name); } return true; } catch (Exception ex) { LogWriter.LogInfo($"{ex.Message}\r\n {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name}"); return false; } } public bool ImportTrimDetails() { try { LogWriter.LogInfo($"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($"Trim Details Synced", MethodBase.GetCurrentMethod().Name); } return true; } catch (Exception ex) { LogWriter.LogInfo($"{ex.Message}\r\n {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name}"); return false; } } public bool ImportZipDetails() { try { LogWriter.LogInfo($"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($"Zip Details Synced", MethodBase.GetCurrentMethod().Name); } return true; } catch (Exception ex) { LogWriter.LogInfo($"{ex.Message}\r\n {ex.StackTrace}", $"{MethodBase.GetCurrentMethod().Name}"); return false; } } #endregion } }