Esempio n. 1
0
 public IHttpActionResult UploadMarksheet()
 {
     try
     {
         int totalCount  = 0;
         var httpRequest = HttpContext.Current.Request;
         if (httpRequest.Files.Count > 0)
         {
             try
             {
                 string identityUser     = httpRequest.Headers["Email"];
                 int    bunchNumber      = Convert.ToInt32(ConfigurationManager.AppSettings["MarksheetBunchCounter"]);
                 string uploadedFileName = string.Empty;
                 foreach (string file in httpRequest.Files)
                 {
                     HttpPostedFile postedFile = httpRequest.Files[file];
                     if (httpRequest.Browser.Browser.ToUpper() == "IE" || httpRequest.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
                     {
                         string[] testfiles = postedFile.FileName.Split(new char[] { '\\' });
                         uploadedFileName = testfiles[testfiles.Length - 1];
                     }
                     else
                     {
                         uploadedFileName = postedFile.FileName;
                     }
                     var newName = uploadedFileName.Split('.');
                     uploadedFileName = newName[0] + "_" + DateTime.Now.Ticks.ToString() + "." + newName[1];
                     var uploadRootFolderInput = AppDomain.CurrentDomain.BaseDirectory + "\\ExcelUploads";
                     Directory.CreateDirectory(uploadRootFolderInput);
                     var directoryFullPathInput = uploadRootFolderInput;
                     uploadedFileName = Path.Combine(directoryFullPathInput, uploadedFileName);
                     postedFile.SaveAs(uploadedFileName);
                     string xlsFile = uploadedFileName;
                     if (newName[1] == "xls")
                     {
                         uploadedFileName = ConvertXLS_XLSX(uploadedFileName);
                         if (File.Exists(xlsFile))
                         {
                             File.Delete(xlsFile);
                         }
                     }
                     var excelData = ReadMarksheetExcel(uploadedFileName);
                     if (excelData != null)
                     {
                         totalCount = excelData.Count;
                         foreach (var item in excelData)
                         {
                             Marksheets marksheets = new Marksheets
                             {
                                 EnrollementNo = item.EnrollmentNo,
                                 StatementNo   = item.StatementNo,
                                 Year          = item.Year,
                                 Month         = item.Month,
                                 CreatedTime   = DateTime.Now,
                                 CreatedBy     = identityUser,
                                 BunchNumber   = bunchNumber,
                                 UploadType    = "Excel Upload",
                                 Semester      = Convert.ToInt32(item.Semester),
                                 Department    = item.Department
                             };
                             _context.Marksheets.Add(marksheets);
                         }
                         _context.SaveChanges();
                         BunchCounter marksheetBunch = new BunchCounter()
                         {
                             BunchNumber     = bunchNumber,
                             BunchType       = "Marksheet",
                             BunchUploadedBy = identityUser,
                             BunchUploadTime = DateTime.Now,
                             BunchTotal      = totalCount
                         };
                         _context.BunchCounters.Add(marksheetBunch);
                         _context.SaveChanges();
                         bunchNumber++;
                         Configuration webConfigApp = WebConfigurationManager.OpenWebConfiguration("~");
                         webConfigApp.AppSettings.Settings["MarksheetBunchCounter"].Value = bunchNumber.ToString();
                         webConfigApp.Save();
                     }
                     else
                     {
                         return(Ok(new
                         {
                             status = false,
                             message = "Failed to upload the file to server"
                         }));
                     }
                 }
             }
             catch (Exception ex)
             {
                 Logs.ExcelLogs(ex);
                 return(Ok(new
                 {
                     status = false,
                     message = ex.Message
                 }));
             }
         }
         return(Ok(new
         {
             status = true,
             message = $"{totalCount} marksheets uploaded successfully"
         }));
     }
     catch (Exception ex)
     {
         Logs.ControllerLogs(ex);
         return(Ok(new
         {
             status = false,
             message = ex.Message
         }));
     }
 }