Esempio n. 1
0
        public ActionResult Index(ImportDataModel importModel)
        {
            var validImageTypes = new []
            {
                "application/vnd.ms-excel"
            };
            bool errorExcel;

            if (importModel.UploadFile != null && importModel.UploadFile.ContentLength > 0)
            {
                errorExcel = !validImageTypes.Contains(importModel.UploadFile.ContentType);
            }
            else
            {
                errorExcel = true;
            }
            if (errorExcel)
            {
                ModelState.AddModelError("UploadFile", "Por favor seleccione un archivo de Excel");
            }
            var academicYear = _academicYearRepository.GetByFields(importModel.Year, importModel.GradeImport, importModel.Section);

            if (academicYear == null)
            {
                ModelState.AddModelError("Year", "No existe ese año academico");
            }
            ViewBag.GradeId = new SelectList(_gradeRepository.Query(x => x), "Id", "Name", 0);
            if (!ModelState.IsValid)
            {
                return(View(importModel));
            }
            var myDataSet = _importDataRepository.GetDataSetFromExcelFile(importModel.UploadFile);

            try
            {
                _importDataRepository.Import(myDataSet, academicYear);
            }
            catch (Exception ex)
            {
                _viewMessageLogic.SetNewMessage("Error!", ex.Message, ViewMessageType.ErrorMessage);
                return(RedirectToAction("Index"));
            }

            const string title   = "Importación de Datos Correcta";
            var          content = string.Format("Se importaron datos para el año: {0}, grado: {1} y sección: {2}"
                                                 , importModel.Year        // 0
                                                 , importModel.GradeImport // 1
                                                 , importModel.Section     // 2
                                                 );

            _viewMessageLogic.SetNewMessage(title, content, ViewMessageType.InformationMessage);
            return(RedirectToAction("Index"));
        }