Exemplo n.º 1
0
        public Holder validateFileStructure(StreamReader csvReader, enteredData enteredData) //VALIDA ESTRUCTURA A TRAVÉS DE LA CLASE StructureValidation
        {
            Holder hold            = new Holder();
            var    selectedStation = db.stations.Where(a => a.idStation.Equals(enteredData.idStation)).FirstOrDefault();

            if (enteredData.idDataType == 1)                //LOS DATOS A VALIDAR SON OBSERVACIONES
            {
                if (selectedStation.idMeasurementType == 1) //VALIDAR ESTRUCTURA DATOS METEOROLOGICOS
                {
                    hold = new StructureValidation().checkMeteorologicalStructure(csvReader, enteredData, selectedStation);
                }
                else if (selectedStation.idMeasurementType == 2) //VALIDAR ESTRUCTURA DATOS GLACIOLOGICOS
                {
                    hold = new StructureValidation().checkGlaciologicalStructure(csvReader);
                }
                else //VALIDAR ESTRUCTURA DATOS HIDROLOGICOS
                {
                    hold = new StructureValidation().checkHydrologicalStructure(csvReader);
                }
            }
            else //DATOS A VALIDAR SON SIMULACIONES
            {
                hold.status  = true;
                hold.message = "NO";
            }
            return(hold);
        }
Exemplo n.º 2
0
        public FileResult DownloadFile(int id)
        {
            enteredData doc = db.enteredDatas.Single(I => I.idEnteredData == id);

            var filename = Server.MapPath("~/UploadedFiles/" + "ORIGINAL-" + doc.nameEnteredData);

            byte[] datos = System.IO.File.ReadAllBytes(filename);
            return(File(datos, ".csv", doc.nameEnteredData));
        }
Exemplo n.º 3
0
        public ActionResult UploadFile(HttpPostedFileBase fileToCheck, enteredData enteredData) //HttpPostedFileBase FileUpload
        {
            if (Request != null)                                                                //control generico de existencia de archivo
            {
                //HttpPostedFileBase file = Request.Files["files"]; //leo el archivo subido por el usuario. Elnombre debe coincidir con el declarado en el la Vista
                try
                {
                    if (fileToCheck.ContentLength > 0)          //TAMAÑO DEL ARCHIVO MAYOR A 0 BYTES
                    {
                        if (validateFileExtension(fileToCheck)) //extension csv
                        {
                            StreamReader csvReader = new StreamReader(fileToCheck.InputStream);
                            Holder       hold      = validateFileStructure(csvReader, enteredData); //validación de estructura de archivo
                            if (hold.status == true)
                            {
                                saveFileData(csvReader, fileToCheck, enteredData);
                            }
                            else
                            {
                                Session["error"]        = hold.message;
                                Session["message"]      = null;
                                Session["notification"] = null;
                                return(RedirectToAction("UploadFile"));
                            }
                        }
                        else
                        {
                            Session["error"]        = "The file must have an extension .csv";
                            Session["message"]      = null;
                            Session["notification"] = null;
                        }
                        return(RedirectToAction("UploadFile"));
                    }
                }
                catch
                {
                    Session["error"]        = "File upload failed!" + " " + "Please verify that there are no NULL fields";
                    Session["message"]      = null;
                    Session["notification"] = null;
                    return(RedirectToAction("UploadFile"));
                }

                //StreamReader csvReader = new StreamReader(file.InputStream);
            }
            return(RedirectToAction("UploadFile"));
        }
Exemplo n.º 4
0
        // POST: enteredData/Delete/5
        public ActionResult GoDown(int id)
        {
            try
            {
                enteredData doc = db.enteredDatas.Single(i => i.idEnteredData == id);
                if (doc.station.idMeasurementType == 1)
                {
                    //METEREOLOGICAL
                    db.metadatas.RemoveRange(doc.metadatas);
                    db.SaveChanges();

                    db.meteorologicalDatas.RemoveRange(doc.meteorologicalDatas);
                    db.SaveChanges();
                }
                else if (doc.station.idMeasurementType == 2)
                {
                    //GLACIOLOGICAL
                    var data = db.glaciologicalDatas.Where(i => i.idEnteredData == id);
                    db.glaciologicalDatas.RemoveRange(data);
                }
                else if (doc.station.idMeasurementType == 3)
                {
                    //HIDROLOGICAL
                    var data = db.hydrologicalDatas.Where(i => i.idEnteredData == id);
                    db.hydrologicalDatas.RemoveRange(data);
                }
                string partName = "ORIGINAL-" + doc.nameEnteredData;
                var    path     = Path.Combine(Server.MapPath("~/UploadedFiles"), partName);
                System.IO.File.Delete(path);
                db.enteredDatas.Remove(doc);
                db.SaveChanges();
                Session["error"]        = null;
                Session["message"]      = null;
                Session["notification"] = null;
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                Session["error"]        = ex.Message;
                Session["message"]      = null;
                Session["notification"] = null;
                return(RedirectToAction("Index"));
            }
        }
Exemplo n.º 5
0
 public int checkAndInsertDocumentFeatures(enteredData enteredData, string fileName)
 {
     try
     {
         //systemUsersController u = new systemUsersController();
         enteredData document = new enteredData();
         document.nameEnteredData = fileName;
         document.startDate       = enteredData.startDate;
         document.endDate         = enteredData.endDate;
         document.idDataType      = enteredData.idDataType;
         document.idStation       = enteredData.idStation;
         document.idSystemUser    = int.Parse(Session["idSystemUser"].ToString());
         document.stateR          = true;
         db.enteredDatas.Add(document);
         db.SaveChanges();
         return(document.idEnteredData);
     }
     catch
     {
         return(0);
     }
 }
Exemplo n.º 6
0
 public int checkAndInsertDocumentFeatures(int idUser, enteredData enteredData, string fileName)
 {
     try
     {
         enteredData document = new enteredData();
         document.nameEnteredData = fileName;
         document.startDate       = enteredData.startDate;
         document.endDate         = enteredData.endDate;
         document.idDataType      = enteredData.idDataType;
         document.idStation       = enteredData.idStation;
         document.idSystemUser    = idUser;//int.Parse(Session["idSystemUser"].ToString());
         document.stateR          = true;
         db.enteredDatas.Add(document);
         db.SaveChanges();
         return(document.idEnteredData);
     }
     catch (Exception ex)
     {
         var sms = ex.Message;
         return(0);
     }
     //return 0;
 }
Exemplo n.º 7
0
        public void saveFileData(string nameOfFile, string path, string finalPath, enteredData enteredData, int idUser)//, HttpContext mainContext)
        {
            //await Task.Run(() => {
            using (var csvReader = new StreamReader(path)) {
                csvReader.BaseStream.Seek(0, SeekOrigin.Begin); //Resetea la posición del stream para que empiece de nuevo

                //Insertar Datos en la BBDD
                int rowNumber       = 1;
                int idDocument      = checkAndInsertDocumentFeatures(idUser, enteredData, nameOfFile);//Path.GetFileName(fileToCheck.FileName));
                var selectedStation = db.stations.Where(a => a.idStation.Equals(enteredData.idStation)).FirstOrDefault();
                //{
                while (!csvReader.EndOfStream)
                {
                    if (selectedStation.measurementType.nameMT == "Meteorological")
                    {
                        string reader = csvReader.ReadLine();
                        if (!reader.Contains("#"))
                        {
                            //Session["message"] = null;
                            // Session["notification"] = "Loading data...";
                            // Session["error"] = null;
                            bool respHeaders = insertMeteorologicalData(idDocument, reader, selectedStation);
                        }
                        else
                        {
                            //Session["message"] = null;
                            // Session["notification"] = "Loading data...";
                            // Session["error"] = null;
                            bool respMetData = insertMeteoMetadata(idDocument, rowNumber, reader, enteredData);
                            rowNumber = rowNumber + 1;
                        }
                    }
                    else if (selectedStation.measurementType.nameMT == "Glaciological")
                    {
                        string reader = csvReader.ReadLine();
                        if (!reader.Contains("#"))
                        {
                            //Session["message"] = null;
                            //Session["notification"] = "Loading data...";
                            //Session["error"] = null;
                            bool respGlaData = insertGlaciologicalData(idDocument, reader);
                        }
                    }
                    else
                    {
                        //Session["message"] = null;
                        //Session["notification"] = "Loading data...";
                        //Session["error"] = null;
                        string reader       = csvReader.ReadLine();
                        bool   respHydrData = insertHydrologicalData(idDocument, rowNumber, reader);
                        rowNumber = rowNumber + 1;
                    }
                }
                try
                {
                    System.IO.File.Copy(path, finalPath);
                    //FinalizarCarga("Upload data process has finished", null, null,mainContext);
                    Session.Add("message", "Upload data process has finished");
                    Session["notification"] = null;
                    Session["error"]        = null;
                    var name = Url.Action();
                    RedirectToAction(name);
                }
                catch (Exception ex) {
                    //FinalizarCarga(null, null, ex.Message, mainContext);
                }
            }
            // });
            //return await Task.FromResult(true);
        }
Exemplo n.º 8
0
        public ActionResult UploadFile(HttpPostedFileBase fileToCheck, enteredData enteredData) //HttpPostedFileBase FileUpload
        {
            if (Request != null)                                                                //control generico de existencia de archivo, que se ha seleccionado el archivo
            {
                //HttpPostedFileBase file = Request.Files["files"]; //leo el archivo subido por el usuario. Elnombre debe coincidir con el declarado en el la Vista
                try
                {
                    if (fileToCheck.ContentLength > 0)          //TAMAÑO DEL ARCHIVO MAYOR A 0 BYTES
                    {
                        if (validateFileExtension(fileToCheck)) //extension csv
                        {
                            var fileName = Path.GetFileName(fileToCheck.FileName);
                            var docAux   = db.enteredDatas.Where(a => a.nameEnteredData.Equals(fileName)).FirstOrDefault();

                            if (docAux == null) //si no existe un archivo en la bbdd con el mismo nombre, continúo subiendo
                            {
                                StreamReader csvReader = new StreamReader(fileToCheck.InputStream);
                                Holder       hold      = validateFileStructure(csvReader, enteredData); //validación de estructura de archivo
                                if (hold.status == true)
                                {
                                    int idUser = int.Parse(Session["idSystemUser"].ToString());
                                    var path   = Path.Combine(Server.MapPath("~/UploadedFiles/TemporaryFiles"), fileName);
                                    fileToCheck.SaveAs(path);
                                    string finalName = "ORIGINAL-" + fileName;                                                 //Path.GetFileName(fileToCheck.FileName);
                                    string finalPath = Path.Combine(Server.MapPath("~/UploadedFiles"), finalName);
                                    BackgroundJob.Enqueue(() => saveFileData(fileName, path, finalPath, enteredData, idUser)); //, System.Web.HttpContext.Current));
                                    Session.Add("message", "Upload process started. DO NOT close the website until this process finished!");
                                    Session["error"]        = null;
                                    Session["notification"] = null;
                                }
                                else
                                {
                                    Session["error"]        = hold.message;
                                    Session["message"]      = null;
                                    Session["notification"] = null;
                                    return(RedirectToAction("UploadFile"));
                                }
                            }
                            else
                            {
                                Session["error"]        = "It seems that someone has already upload a file with the same name. Please verify it!";
                                Session["message"]      = null;
                                Session["notification"] = null;
                                return(RedirectToAction("UploadFile"));
                            }
                        }
                        else
                        {
                            Session["error"]        = "The file must have an extension .csv";
                            Session["message"]      = null;
                            Session["notification"] = null;
                        }
                        return(RedirectToAction("UploadFile"));
                    }
                }
                catch (Exception ex)
                {
                    Session["error"]        = ex.Message + "\nFile upload failed!" + " " + "Please verify that there are no NULL fields";
                    Session["message"]      = null;
                    Session["notification"] = null;
                    return(RedirectToAction("UploadFile"));
                }
            }
            return(RedirectToAction("UploadFile"));
        }
Exemplo n.º 9
0
 public bool insertMeteoMetadata(int idDocument, int rowNumber, string reader, enteredData enteredData)
 {
     try //SOLO HAY UNO INDEPENDIENTE SI ES DENTRO O FUERA DEL GLACIAR PORQUE EL NÚMERO DE COLUMNAS DE METADATOS ES EL MISMO
     {
         if (rowNumber > 3)
         {
             if (!reader.Contains("#date"))
             {
                 string[] aux = null;
                 aux = reader.Split(';').ToArray();
                 metadata metadata = new metadata();
                 metadata.variable_code       = aux[0];
                 metadata.variable_name       = aux[1];
                 metadata.sensor_manufacturer = aux[2];
                 metadata.sensor_model        = aux[3];
                 metadata.unit          = aux[4];
                 metadata.dataQuality   = aux[5];
                 metadata.idEnteredData = idDocument;
                 db.metadatas.Add(metadata);
             }
             db.SaveChanges();
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Exemplo n.º 10
0
        public void saveFileData(StreamReader csvReader, HttpPostedFileBase fileToCheck, enteredData enteredData) //Guardar datos en la bbdd
        {
            csvReader.BaseStream.Seek(0, SeekOrigin.Begin);                                                       //Resetea la posición del stream para que empiece de nuevo
                                                                                                                  //Insertar Datos en la BBDD
            int rowNumber       = 1;
            int idDocument      = checkAndInsertDocumentFeatures(enteredData, Path.GetFileName(fileToCheck.FileName));
            var selectedStation = db.stations.Where(a => a.idStation.Equals(enteredData.idStation)).FirstOrDefault();

            while (!csvReader.EndOfStream)
            {
                if (selectedStation.measurementType.nameMT == "Meteorological")
                {
                    string reader = csvReader.ReadLine();
                    if (!reader.Contains("#"))
                    {
                        insertMeteorologicalData(idDocument, reader, selectedStation);
                    }
                    else
                    {
                        insertMeteoMetadata(idDocument, rowNumber, reader, enteredData);
                        rowNumber = rowNumber + 1;
                    }
                }
                else if (selectedStation.measurementType.nameMT == "Glaciological")
                {
                    string reader = csvReader.ReadLine();
                    if (!reader.Contains("#"))
                    {
                        insertGlaciologicalData(idDocument, reader);
                    }
                }
                else
                {
                    string reader = csvReader.ReadLine();
                    insertHydrologicalData(idDocument, rowNumber, reader);
                    rowNumber = rowNumber + 1;
                }
            }

            //Insertar documento en la carpeta UploadedFiles
            string fileName = "ORIGINAL-" + Path.GetFileName(fileToCheck.FileName);
            string path     = Path.Combine(Server.MapPath("~/UploadedFiles"), fileName);

            fileToCheck.SaveAs(path);
            //Session["error"] = "File uploaded successfully!";
            //return RedirectToAction("UploadFile");
        }