protected void Page_Load(object sender, EventArgs e) { var result = new AjaxResponse(); try { // assume success unless an exception is thrown result.Success = true; // there should always be exactly one file if (Request.Files.Count == 0) { throw new VoteException("The upload file is missing"); } if (Request.Files.Count > 1) { throw new VoteException("Unexpected files in the upload package"); } // Test error handling //throw new VoteException("Some weird-ass error"); // get the file var postedFile = Request.Files[0]; var electionKey = Request.Form["electionKey"]; Elections.ActualizeElection(electionKey); var jurisdictionScope = Request.Form["jurisdictionScope"]; var electionScope = Request.Form["electionScope"]; using (var memoryStream = new MemoryStream()) { postedFile.InputStream.Position = 0; postedFile.InputStream.CopyTo(memoryStream); var spreadsheet = ParseSpreadsheet(memoryStream, IsExcel(postedFile.FileName)); var columns = spreadsheet.Columns.OfType <DataColumn>().Select(c => c.ColumnName) .ToList(); var id = ElectionSpreadsheets.Insert(postedFile.FileName, DateTime.UtcNow, memoryStream.ToArray(), electionKey, false, columns.Count, spreadsheet.Rows.Count, jurisdictionScope, electionScope); for (var x = 0; x < columns.Count; x++) { ElectionSpreadsheetsColumns.Insert(id, x, columns[x], Empty); } for (var x = 0; x < spreadsheet.Rows.Count; x++) { ElectionSpreadsheetsRows.Insert(id, x, Empty, Empty, Empty, Empty); } result.Html = GetSpreadsheetListHtml(false, id); } result.Message = "Ok"; } catch (Exception ex) { result.Success = false; result.Message = ex.Message; } WriteJsonResultToResponse(result); }
public static SpreadsheetRow GetSpreadsheetRow(int id, int sequence) { var spreadsheet = ReadSpreadsheet(id); if (spreadsheet == null) { return(null); } var table = ElectionSpreadsheetsRows.GetDataByIdSequence(id, sequence); if (table.Count != 1) { return(null); } var row = table[0]; return(new SpreadsheetRow { Id = row.Id, Sequence = row.Sequence, ElectionKey = row.ElectionKey, OfficeKey = row.OfficeKey, PoliticianKey = row.PoliticianKey, Status = row.Status, Columns = spreadsheet.Rows[sequence].ItemArray.Select(i => i as string).ToArray() }); }