public void ProcessSchedule(string path, string fileName, string fileURL) { // Connect to recently saved excel sheet OleDbConnection conn = null; if (fileName.EndsWith(".xls")) { conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; data source=" + path + ";Extended Properties=\"Excel 8.0;HDR=1;IMEX=1\";"); } if (fileName.EndsWith(".xlsx")) { conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 Xml;HDR=1;IMEX=1\";"); } conn.Open(); DataTable data = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string sheet = data.Rows[0]["Table_Name"].ToString(); OleDbCommand sheetCommand = new OleDbCommand(@"SELECT * FROM [" + sheet + @"]", conn); OleDbDataAdapter sheetAdapter = new OleDbDataAdapter(sheetCommand); DataSet sheetData = new DataSet(); sheetAdapter.Fill(sheetData); conn.Close(); string examURL = ""; string calendarURL = ""; try { Object[] examSchedule = GenerateExamSchedule(sheetData); SaveExamSheet(examSchedule, fileName); APIManager drive = new APIManager(Session["USER"].ToString()); System.IO.File.Delete(path); path = AppDomain.CurrentDomain.GetData("DataDirectory").ToString() + "/sheetStorage/Exam_" + fileName; examURL = Task.Run(() => drive.UploadSheet(HttpContext, path, "Exam_" + fileName, true)).Result; calendarURL = Task.Run(() => drive.CreateCalendarEvent(HttpContext, "Exam_" + fileName, (List <Exam>)examSchedule[0])).Result; System.IO.File.Delete(path); } catch (Exception e) { TempData["ERROR"] = "The provided file was incompatible. It may be missing required value columns. Please refer to the template sheet for comparison!"; } DBManager db = new DBManager(); db.NewHistoryEntry(fileName, fileURL, "Exam_" + fileName, examURL, calendarURL, Session["USER"].ToString()); }