示例#1
0
        public DataTable ConsumeFile(UploadExcelFileModel uploadFile)
        {
            var memoryStream = new MemoryStream();

            uploadFile.File.InputStream.CopyTo(memoryStream);
            return(ExcelParser.ExtractExcelSheetValues(memoryStream, ServiceOfferingSheetName));
        }
示例#2
0
        public ActionResult FileUpload(UploadExcelFileModel uploadFile)
        {
            var model = new ServiceUploadModel();

            if (!ModelState.IsValid)
            {
                foreach (ModelState state in ModelState.Values)
                {
                    foreach (ModelError error in state.Errors)
                    {
                        model.RowErrors.Add(error.ErrorMessage);
                    }
                }
                return(View("FileUploadComplete", model));
            }
            DataTable dataTable = null;

            try
            {
                dataTable = FileProcessor.ConsumeFile(uploadFile);
            }
            catch
            {
                model.RowErrors.Add("Corrupted file format.  Please redownload the template and try again.");
                model.ProcessedRowCount = model.SuccessfulRowsCount = 0;
                return(View("FileUploadComplete", model));
            }
            model = FileProcessor.Import((EducationSecurityPrincipal)User, TemplatePath, dataTable);
            return(View("FileUploadComplete", model));
        }
示例#3
0
        public void GivenIConsumeAValidServiceAttendanceUploadFile_ThenADataTableIsReturned()
        {
            var filePath        = UploadFileTemplatePath + "ValidServiceAttendanceUpload.xlsx";
            var destinationPath = CopyTestFile(filePath);

            using (FileStream fs = File.Open(destinationPath, FileMode.Open))
            {
                var uploadFile = new UploadExcelFileModel();
                uploadFile.File = MockRepository.GenerateMock <HttpPostedFileBase>();
                uploadFile.File.Expect(u => u.InputStream).Return(fs);

                var table = Target.ConsumeFile(uploadFile);

                Assert.IsNotNull(table);
            }

            DestroyTestFile(destinationPath);
        }
        public void GivenIConsumeAValidServiceUploadFile_ThenTheModelHasNoErrors()
        {
            var filePath        = UploadFileTemplatePath + "HappyPath.xlsx";
            var destinationPath = CopyTestFile(filePath);
            var model           = new ServiceUploadModel();

            using (FileStream fs = File.Open(destinationPath, FileMode.Open))
            {
                var uploadFile = new UploadExcelFileModel();
                uploadFile.File = MockRepository.GenerateMock <HttpPostedFileBase>();
                uploadFile.File.Expect(u => u.InputStream).Return(fs);

                var table = Target.ConsumeFile(uploadFile);

                Assert.IsNotNull(model);
                Assert.IsTrue(model.RowErrors.Count == 0);
            }

            DestroyTestFile(destinationPath);
        }
示例#5
0
        public void GivenIConsumeAValidServiceAttendanceUploadFile_ThenTheCorrectDataTableIsReturned()
        {
            var filePath        = UploadFileTemplatePath + "ValidServiceAttendanceUpload.xlsx";
            var destinationPath = CopyTestFile(filePath);

            DataTable expected = new DataTable();

            expected.Columns.Add("blank", typeof(string));
            expected.Columns.Add("Id", typeof(string));
            expected.Columns.Add("DateAttended", typeof(string));
            expected.Columns.Add("Subject", typeof(string));
            expected.Columns.Add("Duration", typeof(string));
            expected.Columns.Add("Notes", typeof(string));
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            DataRow row = expected.NewRow();

            row["Id"] = "Upload Attendance Records for a Service Offering";
            expected.Rows.Add(row);
            row                 = expected.NewRow();
            row["Id"]           = "1";
            row["DateAttended"] = "YMCA";
            row["Subject"]      = "After School";
            expected.Rows.Add(row);
            row                 = expected.NewRow();
            row["Id"]           = "STUDENT ID";
            row["DateAttended"] = "DATE";
            row["Subject"]      = "SUBJECT";
            row["Duration"]     = "DURATION";
            row["Notes"]        = "NOTES";
            expected.Rows.Add(row);
            row                 = expected.NewRow();
            row["Id"]           = "10";
            row["DateAttended"] = "41390";
            row["Subject"]      = "test subject 3";
            row["Duration"]     = "30";
            row["Notes"]        = "Further testing";
            expected.Rows.Add(row);
            row                 = expected.NewRow();
            row["Id"]           = "20";
            row["DateAttended"] = "41391";
            row["Subject"]      = "test subject 4";
            row["Duration"]     = "40";
            row["Notes"]        = "Even further testing";
            expected.Rows.Add(row);

            using (FileStream fs = File.Open(destinationPath, FileMode.Open))
            {
                var uploadFile = new UploadExcelFileModel();
                uploadFile.File = MockRepository.GenerateMock <HttpPostedFileBase>();
                uploadFile.File.Expect(u => u.InputStream).Return(fs);

                var actual = Target.ConsumeFile(uploadFile);

                CollectionAssert.AreEqual(expected.Rows[0].ItemArray, actual.Rows[0].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[1].ItemArray, actual.Rows[1].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[2].ItemArray, actual.Rows[2].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[3].ItemArray, actual.Rows[3].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[4].ItemArray, actual.Rows[4].ItemArray);
            }

            DestroyTestFile(destinationPath);
        }
        public void GivenIConsumeAValidServiceOfferingUploadFile_ThenTheCorrectDataTableIsReturned()
        {
            var filePath        = UploadFileTemplatePath + "HappyPath.xlsx";
            var destinationPath = CopyTestFile(filePath);
            var model           = new ServiceUploadModel();

            DataTable expected = new DataTable();

            expected.Columns.Add("blank", typeof(string));
            expected.Columns.Add("Id", typeof(string));
            expected.Columns.Add("StartDate", typeof(string));
            expected.Columns.Add("EndDate", typeof(string));
            expected.Columns.Add("Notes", typeof(string));
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            expected.Columns.Add(new DataColumn());
            DataRow row = expected.NewRow();

            row["Id"] = "Upload and Assign Students to a Service Offering";
            expected.Rows.Add(row);
            row              = expected.NewRow();
            row["Id"]        = "1";
            row["StartDate"] = "YMCA";
            row["EndDate"]   = "After School";
            expected.Rows.Add(row);
            row              = expected.NewRow();
            row["Id"]        = "STUDENT ID";
            row["StartDate"] = "START DATE";
            row["EndDate"]   = "END DATE";
            row["Notes"]     = "NOTES";
            expected.Rows.Add(row);
            row              = expected.NewRow();
            row["Id"]        = "10";
            row["StartDate"] = "40920";
            row["EndDate"]   = "40920";
            row["Notes"]     = "testing";
            expected.Rows.Add(row);
            row              = expected.NewRow();
            row["Id"]        = "20";
            row["StartDate"] = "40962";
            row["EndDate"]   = "40963";
            row["Notes"]     = "testing 2";
            expected.Rows.Add(row);

            using (FileStream fs = File.Open(destinationPath, FileMode.Open))
            {
                var uploadFile = new UploadExcelFileModel();
                uploadFile.File = MockRepository.GenerateMock <HttpPostedFileBase>();
                uploadFile.File.Expect(u => u.InputStream).Return(fs);

                var actual = Target.ConsumeFile(uploadFile);

                CollectionAssert.AreEqual(expected.Rows[0].ItemArray, actual.Rows[0].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[1].ItemArray, actual.Rows[1].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[2].ItemArray, actual.Rows[2].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[3].ItemArray, actual.Rows[3].ItemArray);
                CollectionAssert.AreEqual(expected.Rows[4].ItemArray, actual.Rows[4].ItemArray);
            }

            DestroyTestFile(destinationPath);
        }