Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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()
            });
        }