Пример #1
0
        // GET api/Xml_ExportOracle/5
        public HttpResponseMessage Get(string idrandom)
        {
            general gn             = new general();
            var     dicAppSet      = gn.ReadAppseting();
            var     lst            = JObject.Parse(_dicPara_xml["StrColumnNames" + idrandom]).SelectToken("kq").ToString();
            var     LstColumnNames = JsonConvert.DeserializeObject <List <ListColumnExport> >(lst);

            // lay du lieu
            gnOracle or = new gnOracle();

            if (dicAppSet == null || dicAppSet.Count == 0)
            {
                return(null);
            }

            var dicPara   = gn.ParaConvertDicPara(_dicPara_xml["StrPara" + idrandom]);
            var dicConfig = gn.ConfigConvertToDicConfig(_dicPara_xml["StrConfig" + idrandom]);

            if (dicPara == null && dicConfig == null)
            {
                return(null);
            }
            _dicPara_xml.Remove("StrPara" + idrandom);
            _dicPara_xml.Remove("StrConfig" + idrandom);
            _dicPara_xml.Remove("StrColumnNames" + idrandom);

            var dsParaOnSql = or.DecodeProceduePara_New(dicConfig, dicAppSet);
            var paraOk      = or.dicParaToOraclePara_New(dsParaOnSql, dicPara);

            var ds = or.ExcuteReturnDataSet(dicConfig["namesql"], paraOk.ToList(), CommandType.StoredProcedure, dicAppSet[dicConfig["connstr"].ToLower()]);

            if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
            {
                return(null);
            }
            var ds1 = gn.convertDatasetToLower(ds);

            string filePath = dicAppSet["path_saveonserver"] + dicConfig["namefile"] + ".xml";

            System.IO.StreamWriter xmlSW = new System.IO.StreamWriter(filePath);
            ds1.WriteXml(xmlSW, XmlWriteMode.WriteSchema);
            xmlSW.Close();

            var        response   = new HttpResponseMessage();
            FileStream fileStream = File.Open(filePath, FileMode.Open);

            response.Content = new StreamContent(fileStream);
            response.Content.Headers.ContentDisposition
                = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
            response.Content.Headers.ContentDisposition.FileName = dicConfig["namefile"] + ".xml";
            response.Content.Headers.ContentType
                = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");

            response.Content.Headers.ContentLength
                = fileStream.Length;
            return(response);

            //return System.Web.Mvc.Controller.(filePath, MimeMapping.GetMimeMapping(filePath));
        }
Пример #2
0
        // GET api/ExcelExportOracle/5
        public string Get(string idrandom)
        {
            general gn             = new general();
            var     dicAppSet      = gn.ReadAppseting();
            var     lst            = JObject.Parse(_dicPara_exoracle["StrColumnNames" + idrandom]).SelectToken("kq").ToString();
            var     LstColumnNames = JsonConvert.DeserializeObject <List <ListColumnExport> >(lst);

            // lay du lieu
            gnOracle or = new gnOracle();

            if (dicAppSet == null || dicAppSet.Count == 0)
            {
                return("{\"result\":\"ERROR\",\"data\":[{\"status\":\"Đọc appsetting lỗi\"}]}");
            }

            var dicPara   = gn.ParaConvertDicPara(_dicPara_exoracle["StrPara" + idrandom]);
            var dicConfig = gn.ConfigConvertToDicConfig(_dicPara_exoracle["StrConfig" + idrandom]);

            _dicPara_exoracle.Remove("StrPara" + idrandom);
            _dicPara_exoracle.Remove("StrConfig" + idrandom);
            _dicPara_exoracle.Remove("StrColumnNames" + idrandom);

            if (dicPara == null && dicConfig == null)
            {
                return("{\"result\":\"ERROR\",\"data\":[{\"status\":\"Kiểm tra lại định dạng json đầu vào\"}]}");
            }

            var dsParaOnSql = or.DecodeProceduePara_New(dicConfig, dicAppSet);
            var paraOk      = or.dicParaToOraclePara_New(dsParaOnSql, dicPara);

            var ds = or.ExcuteReturnDataSet(dicConfig["namesql"], paraOk.ToList(), CommandType.StoredProcedure, dicAppSet[dicConfig["connstr"].ToLower()]);

            if (ds == null || ds.Tables.Count == 0)
            {
                return("");
            }
            var ds1 = gn.convertDatasetToLower(ds);

            gnExcel exx = new gnExcel();

            var idtable = 0;

            if (dicConfig.ContainsKey("exporttable"))
            {
                idtable = Convert.ToInt32(dicConfig["exporttable"]);
            }

            exx.ExporttoExcel(new List <string>(), ds1.Tables[idtable], LstColumnNames, dicConfig.ContainsKey("namefile") ? dicConfig["namefile"] : "" + DateTime.Now.ToString("dd-MM-yyyy"), 1, false, true);
            return("");
        }
Пример #3
0
        public string InportXmlToOrcale()
        {
            try
            {
                general gn = new general();

                string fileName = "";

                HttpPostedFileBase file = Request.Files[0];     //Uploaded file
                                                                //Use the following properties to get file's name, size and MIMEType
                int fileSize = file.ContentLength;
                fileName = file.FileName;
                string           mimeType    = file.ContentType;
                System.IO.Stream fileContent = file.InputStream;
                if (!Directory.Exists(Server.MapPath("~/UploadFile/")))
                {
                    Directory.CreateDirectory(Server.MapPath("~/UploadFile/"));
                }

                //To save file, use SaveAs method
                string filePath = Server.MapPath("~/UploadFile/") + fileName;
                file.SaveAs(filePath);     //File will be saved in application root

                var itemp = this.Request.Form;
                var parr  = new Dictionary <string, string>();
                foreach (var key in itemp.AllKeys)
                {
                    parr.Add(key.ToLower(), itemp[key]);
                }


                // CHUYEN SANG DATASET
                var         ds     = new DataSet();
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(filePath);
                var xmlReader = new XmlNodeReader(xmlDoc);
                ds.ReadXml(xmlReader);
                var ds1 = gn.convertDatasetToLower(ds);

                if (ds1 == null || ds1.Tables.Count == 0)
                {
                    return("{\"result\":\"OK\",\"data\":[{\"status\":\"Lỗi không đọc được file xml\"}]}");
                }

                // add them 1 so cot
                DataColumn tenfile = new DataColumn("tenfile", typeof(System.String));
                tenfile.DefaultValue = fileName;
                DataColumn ngayup = new DataColumn("ngayup", typeof(System.String));
                ngayup.DefaultValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                DataColumn idrandom = new DataColumn("idrandom", typeof(System.String));
                idrandom.DefaultValue = parr["idrandom"];

                ds1.Tables[0].Columns.Add(tenfile);
                ds1.Tables[0].Columns.Add(ngayup);
                ds1.Tables[0].Columns.Add(idrandom);

                // check bang neu chua ton tai thi tao bang
                gnOracle or        = new gnOracle();
                general  gns       = new general();
                var      dicAppSet = gns.ReadAppseting();

                var checkTonTai = "SELECT COUNT(1) TONTAI FROM USER_TABLES WHERE UPPER(TABLE_NAME) = UPPER('" + parr["insertto"] + "') ";
                var count       = or.ExcuteReturnDataSet(checkTonTai, null, CommandType.Text, dicAppSet[parr["connstr"].ToLower()]);

                if (count != null && count.Tables.Count > 0 && count.Tables[0].Rows.Count > 0 && count.Tables[0].Rows[0]["TONTAI"].ToString() == "0")
                {
                    // TAO COT CHINH
                    var str = "CREATE TABLE " + parr["insertto"] + " ( ";
                    foreach (var col in ds1.Tables[0].Columns)
                    {
                        str += " " + col.ToString().ToUpper() + " VARCHAR2(255),";
                    }

                    str = str.Substring(0, str.Length - 1) + " )  ";

                    or.ExcuteReturnDataSet(str, null, CommandType.Text, dicAppSet[parr["connstr"].ToLower()]);
                }

                // bulk copy to oracle
                gnOracle gnOr          = new gnOracle();
                string   connectOracle = dicAppSet[parr["connstr"].ToLower()];

                var dt2 = gnOr.forMartTable(ds1.Tables[0], parr["insertto"], connectOracle);

                using (var connection = new OracleConnection(connectOracle))
                {
                    connection.Open();
                    using (var bulkCopy = new OracleBulkCopy(connection, OracleBulkCopyOptions.UseInternalTransaction))
                    {
                        bulkCopy.DestinationTableName = parr["insertto"];
                        var table = gnOr.potentialFix(dt2);
                        bulkCopy.WriteToServer(table);
                    }
                }


                return("{\"result\":\"OK\",\"data\":[{\"idrandom\":\"" + parr["idrandom"] + "\"}]}");
            }
            catch (Exception ex)
            {
                return("{\"result\":\"ERROR\",\"data\":[{\"status\":\"" + ex.Message.Replace("\n", "") + "\"}]}");
            }
        }
Пример #4
0
        public string readKml()
        {
            try
            {
                general gn = new general();

                string fileName = "";

                HttpPostedFileBase file = Request.Files[0];     //Uploaded file
                                                                //Use the following properties to get file's name, size and MIMEType
                int fileSize = file.ContentLength;
                fileName = file.FileName;
                string           mimeType    = file.ContentType;
                System.IO.Stream fileContent = file.InputStream;
                if (!Directory.Exists(Server.MapPath("~/UploadFile/")))
                {
                    Directory.CreateDirectory(Server.MapPath("~/UploadFile/"));
                }

                //To save file, use SaveAs method
                string filePath = Server.MapPath("~/UploadFile/") + fileName;
                file.SaveAs(filePath);     //File will be saved in application root

                var itemp = this.Request.Form;
                var parr  = new Dictionary <string, string>();
                foreach (var key in itemp.AllKeys)
                {
                    parr.Add(key.ToLower(), itemp[key]);
                }


                // CHUYEN SANG DATASET
                var         ds     = new DataSet();
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(filePath);
                var xmlReader = new XmlNodeReader(xmlDoc);
                ds.ReadXml(xmlReader);

                var ds1 = gn.convertDatasetToLower(ds);

                if (ds1 == null || ds1.Tables.Count == 0)
                {
                    return("{\"result\":\"OK\",\"data\":[{\"status\":\"Lỗi không đọc được file xml\"}]}");
                }

                var dt = new DataTable("dt");
                dt.Columns.Add("name");
                dt.Columns.Add("coordinates");
                dt.Columns.Add("description");

                foreach (DataRow row in ds.Tables["Placemark"].Rows)
                {
                    var name        = row["name"].ToString();
                    var description = row["description"].ToString();
                    var coor        = ds1.Tables["Point"].Select("Placemark_id=" + row["Placemark_id"].ToString());
                    var coordinates = "";
                    if (coor != null && coor.Length > 0)
                    {
                        coordinates = coor[0]["coordinates"].ToString();
                    }
                    else
                    {
                        var coor1 = ds1.Tables["LineString"].Select("Placemark_id=" + row["Placemark_id"].ToString());
                        if (coor1 != null && coor1.Length > 0)
                        {
                            coordinates = coor1[0]["coordinates"].ToString();
                        }
                    }
                    dt.Rows.Add(name, coordinates, description);
                }

                var ds2 = new DataSet();
                ds2.Tables.Add(dt);
                var data = gn.ConvertDatasetToListJson(ds2);
                if (data == null)
                {
                    return("{\"result\":\"OK\",\"data\":[{\"status\":\"Lỗi khi ConvertDatasetToListJson\"}]}");
                }

                var json = gn.ConvertListToJson(data);
                return("{\"result\":\"OK\",\"data\":" + json + "}");
            }
            catch (Exception ex)
            {
                return("{\"result\":\"ERROR\",\"data\":[{\"status\":\"" + ex.Message.Replace("\n", "") + "\"}]}");
            }
        }
Пример #5
0
        public string InportXmlToOrcale()
        {
            try
            {
                general gn = new general();

                string fileName = "";

                HttpPostedFileBase file = Request.Files[0];     //Uploaded file
                                                                //Use the following properties to get file's name, size and MIMEType
                int fileSize = file.ContentLength;
                fileName = file.FileName;
                string           mimeType    = file.ContentType;
                System.IO.Stream fileContent = file.InputStream;
                if (!Directory.Exists(Server.MapPath("~/UploadFile/")))
                {
                    Directory.CreateDirectory(Server.MapPath("~/UploadFile/"));
                }

                //To save file, use SaveAs method
                string filePath = Server.MapPath("~/UploadFile/") + fileName;
                file.SaveAs(filePath);     //File will be saved in application root

                var itemp = this.Request.Form;
                var parr  = new Dictionary <string, string>();
                foreach (var key in itemp.AllKeys)
                {
                    parr.Add(key.ToLower(), itemp[key]);
                }

                var insertTo = parr["insertto"];
                var connstr  = parr["connstr"];
                parr.Remove("insertto");
                parr.Remove("connstr");

                // CHUYEN SANG DATASET
                var         ds     = new DataSet();
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(filePath);
                var xmlReader = new XmlNodeReader(xmlDoc);
                ds.ReadXml(xmlReader);
                var ds1 = gn.convertDatasetToLower(ds);

                var dt = new DataTable("dt");
                foreach (var val in parr)
                {
                    dt.Columns.Add(val.Key);
                }

                foreach (DataRow row in ds1.Tables[0].Rows)
                {
                    var dr = dt.NewRow();
                    foreach (var val in parr)
                    {
                        dr[val.Key] = row[val.Key];
                    }
                    dt.Rows.Add(dr);
                }

                // bulk copy to oracle
                gnOracle gnOr          = new gnOracle();
                string   connectOracle = ConfigurationManager.ConnectionStrings[connstr].ConnectionString;
                using (var connection = new OracleConnection(connectOracle))
                {
                    connection.Open();
                    using (var bulkCopy = new OracleBulkCopy(connection, OracleBulkCopyOptions.UseInternalTransaction))
                    {
                        bulkCopy.DestinationTableName = insertTo;
                        var table = gnOr.potentialFix(dt);
                        bulkCopy.WriteToServer(table);
                    }
                }


                return("{\"result\":\"OK\",\"data\":[{\"status\":\"OK\"}]}");
            }
            catch (Exception ex)
            {
                return("{\"result\":\"ERROR\",\"data\":[{\"status\":\"" + ex.Message.Replace("\n", "") + "\"}]}");
            }
        }