Пример #1
0
        public static DataTable JsonStringToDataTable(string jsonString)
        {
            DataTable dt = new DataTable();

            try
            {
                string[]      jsonStringArray = Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{");
                List <string> ColumnsName     = new List <string>();

                foreach (string jSA in jsonStringArray)
                {
                    string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                    foreach (string ColumnsNameData in jsonStringData)
                    {
                        try
                        {
                            int    idx = ColumnsNameData.IndexOf(":");
                            string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
                            if (!ColumnsName.Contains(ColumnsNameString))
                            {
                                ColumnsName.Add(ColumnsNameString);
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
                        }
                    }
                    break; // TODO: might not be correct. Was : Exit For
                }
                foreach (string AddColumnName in ColumnsName)
                {
                    dt.Columns.Add(AddColumnName);
                }
                foreach (string jSA in jsonStringArray)
                {
                    string[] RowData__1 = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                    DataRow  nr         = dt.NewRow();
                    foreach (string rowData__2 in RowData__1)
                    {
                        try
                        {
                            int    idx           = rowData__2.IndexOf(":");
                            string RowColumns    = rowData__2.Substring(0, idx - 1).Replace("\"", "");
                            string RowDataString = rowData__2.Substring(idx + 1).Replace("\"", "");
                            nr[RowColumns] = RowDataString;
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                    dt.Rows.Add(nr);
                }
                return(dt);
            }
            catch
            {
                return(dt);
            }
        }
Пример #2
0
        public DataTable JsonStringToDataTable(string jsonString)
        {
            DataTable dt = new DataTable();

            string[] stringSeparators = new string[] { "\"INSTRUCTIONS\":" };

            string[]      jsonStringArray1 = jsonString.Split(stringSeparators, StringSplitOptions.None);
            string[]      jsonStringArray  = Regex.Split(jsonStringArray1[1].Replace("[", "").Replace("]", "").Replace("\r\n", ""), "},{");
            List <string> ColumnsName      = new List <string>();

            foreach (string jSA in jsonStringArray)
            {
                //string[] jsonsplit =
                string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", "").Replace("\r\n", "").Replace("\t", "").Replace(" ", ""), ",");

                foreach (string ColumnsNameData in jsonStringData)
                {
                    try
                    {
                        int    idx = ColumnsNameData.IndexOf(":");
                        string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
                        if (!ColumnsName.Contains(ColumnsNameString))
                        {
                            ColumnsName.Add(ColumnsNameString);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
                    }
                }
                break;
            }
            foreach (string AddColumnName in ColumnsName)
            {
                dt.Columns.Add(AddColumnName);
            }
            foreach (string jSA in jsonStringArray)
            {
                string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", "").Replace("\r\n", "").Replace("\t", "").Replace(" ", ""), ",");
                DataRow  nr      = dt.NewRow();
                foreach (string rowData in RowData)
                {
                    try
                    {
                        int    idx           = rowData.IndexOf(":");
                        string RowColumns    = rowData.Substring(0, idx - 1).Replace("\"", "");
                        string RowDataString = rowData.Substring(idx + 1).Replace("\"", "");
                        nr[RowColumns] = RowDataString;
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }
                dt.Rows.Add(nr);
            }
            return(dt);
        }
        public DataTable JsonStringToDataTable(string jsonString)
        {
            //return Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonString);
            DataTable dt = new DataTable();

            string[]      jsonStringArray = Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{");
            List <string> ColumnsName     = new List <string>();

            foreach (string jSA in jsonStringArray)
            {
                string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                foreach (string ColumnsNameData in jsonStringData)
                {
                    try
                    {
                        int    idx = ColumnsNameData.IndexOf(":");
                        string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
                        if (!ColumnsName.Contains(ColumnsNameString))
                        {
                            ColumnsName.Add(ColumnsNameString);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
                    }
                }
                break;
            }
            foreach (string AddColumnName in ColumnsName)
            {
                dt.Columns.Add(AddColumnName);
            }
            foreach (string jSA in jsonStringArray)
            {
                string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                DataRow  nr      = dt.NewRow();
                foreach (string rowData in RowData)
                {
                    try
                    {
                        int    idx           = rowData.IndexOf(":");
                        string RowColumns    = rowData.Substring(0, idx - 1).Replace("\"", "");
                        string RowDataString = rowData.Substring(idx + 1).Replace("\"", "");
                        nr[RowColumns] = RowDataString;
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }
                dt.Rows.Add(nr);
            }
            return(dt);
        }
Пример #4
0
        public static DataTable JsonStringToDataTable(string jsonString)
        {
            //http://www.c-sharpcorner.com/blogs/convert-json-string-to-datatable-in-asp-net1
            DataTable dt = new DataTable();

            if (!string.IsNullOrEmpty(jsonString) && jsonString.ToLower() != "undefined")
            {
                jsonString = jsonString.Replace("}, {", "},{");
                jsonString = CheckComa(jsonString);
                string[]      jsonStringArray = System.Text.RegularExpressions.Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{");
                List <string> ColumnsName     = new List <string>();
                foreach (string jSA in jsonStringArray)
                {
                    string[] jsonStringData = System.Text.RegularExpressions.Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                    foreach (string ColumnsNameData in jsonStringData)
                    {
                        try
                        {
                            int    idx = ColumnsNameData.IndexOf(":");
                            string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "").Trim();
                            if (!ColumnsName.Contains(ColumnsNameString))
                            {
                                ColumnsName.Add(ColumnsNameString);
                            }
                            else
                            {
                                //if found more than one column with same name add the id to difference the column name
                                ColumnsName.Add(ColumnsNameString + (ColumnsName.Count() - 1).ToString());
                            }
                        }
                        catch
                        {
                            throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
                        }
                    }
                    break;
                }
                foreach (string AddColumnName in ColumnsName)
                {
                    dt.Columns.Add(AddColumnName);
                }
                foreach (string jSA in jsonStringArray)
                {
                    string[] RowData      = System.Text.RegularExpressions.Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                    DataRow  nr           = dt.NewRow();
                    int      columnNumber = 0;  //reset index of the column per each element
                    foreach (string rowData in RowData)
                    {
                        try
                        {
                            int    idx           = rowData.IndexOf(":");
                            string RowDataString = rowData.Substring(idx + 1).Replace("\"", "").Trim();
                            nr[columnNumber] = RowDataString;       //because the columns always come in same order use the index not the name
                            columnNumber++;
                        }
                        catch
                        {
                            continue;
                        }
                    }
                    dt.Rows.Add(nr);
                }
            }
            return(dt);
        }
Пример #5
0
        public DataTable JsonStringToDataTable(string jsonString)
        {
            DataTable dt        = new DataTable();
            string    sFuncName = string.Empty;

            try
            {
                sFuncName = "JsonStringToDataTable()";
                oLog.WriteToDebugLogFile("Starting Function ", sFuncName);

                string[] jsonStringArray = Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{");
                if (jsonStringArray[0].ToString() != string.Empty)
                {
                    List <string> ColumnsName = new List <string>();
                    foreach (string jSA in jsonStringArray)
                    {
                        string sjSA = jSA;
                        if (jSA.Contains("base64,"))
                        {
                            sjSA = jSA.Replace("base64,", "base64;");
                        }
                        string[] jsonStringData = Regex.Split(sjSA.Replace("{", "").Replace("}", ""), "\",");
                        foreach (string ColumnsNameData in jsonStringData)
                        {
                            try
                            {
                                int    idx = ColumnsNameData.IndexOf(":");
                                string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
                                if (!ColumnsName.Contains(ColumnsNameString.Trim()))
                                {
                                    ColumnsName.Add(ColumnsNameString.Trim());
                                }
                            }
                            catch (Exception ex)
                            {
                                throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
                            }
                        }
                        break;
                    }
                    foreach (string AddColumnName in ColumnsName)
                    {
                        if (AddColumnName.Contains("Date"))
                        {
                            dt.Columns.Add(AddColumnName, typeof(DateTime));
                        }
                        else
                        {
                            dt.Columns.Add(AddColumnName);
                        }
                    }
                    foreach (string jSA in jsonStringArray)
                    {
                        string sjSA = jSA;
                        if (jSA.Contains("base64,"))
                        {
                            sjSA = jSA.Replace("base64,", "base64;");
                        }
                        string[] RowData = Regex.Split(sjSA.Replace("{", "").Replace("}", ""), "\",");
                        DataRow  nr      = dt.NewRow();
                        foreach (string rowData in RowData)
                        {
                            try
                            {
                                string RowDataString = string.Empty;
                                int    idx           = rowData.Trim().IndexOf(":");
                                string RowColumns    = rowData.Trim().Substring(0, idx - 1).Replace("\"", "");
                                if (rowData.Trim().Substring(idx + 1).Replace("\"", "").Contains("base64;"))
                                {
                                    RowDataString = rowData.Trim().Substring(idx + 1).Replace("\"", "").Replace("base64;", "base64,");
                                }
                                else
                                {
                                    RowDataString = rowData.Trim().Substring(idx + 1).Replace("\"", "");
                                }

                                nr[RowColumns] = RowDataString.Trim();
                            }
                            catch (Exception ex)
                            {
                                continue;
                            }
                        }
                        dt.Rows.Add(nr);
                    }
                }
            }
            catch (Exception ex)
            {
                sErrDesc = ex.Message.ToString();
                oLog.WriteToErrorLogFile(sErrDesc, sFuncName);
                oLog.WriteToDebugLogFile("Completed With ERROR  ", sFuncName);
            }
            return(dt);
        }
Пример #6
0
        public DataTable JsonStringToDataTable(string jsonString)
        {
            DataTable dt = new DataTable();

            string[] jsonStringArray = Regex.Split(jsonString.Replace("[", "").Replace("]", ""), "},{");
            if (jsonStringArray[0].ToString() != string.Empty)
            {
                List <string> ColumnsName = new List <string>();
                foreach (string jSA in jsonStringArray)
                {
                    string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                    foreach (string ColumnsNameData in jsonStringData)
                    {
                        try
                        {
                            int    idx = ColumnsNameData.IndexOf(":");
                            string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
                            if (!ColumnsName.Contains(ColumnsNameString))
                            {
                                ColumnsName.Add(ColumnsNameString);
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
                        }
                    }
                    break;
                }
                foreach (string AddColumnName in ColumnsName)
                {
                    dt.Columns.Add(AddColumnName);
                }
                foreach (string jSA in jsonStringArray)
                {
                    string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                    DataRow  nr      = dt.NewRow();
                    foreach (string rowData in RowData)
                    {
                        try
                        {
                            int    idx           = rowData.IndexOf(":");
                            string RowColumns    = rowData.Substring(0, idx - 1).Replace("\"", "");
                            string RowDataString = rowData.Substring(idx + 1).Replace("\"", "");
                            if (RowDataString != "null")
                            {
                                nr[RowColumns] = RowDataString;
                            }
                            else
                            {
                                nr[RowColumns] = null;
                            }
                        }
                        catch (Exception ex)
                        {
                            continue;
                        }
                    }
                    dt.Rows.Add(nr);
                }
            }
            return(dt);
        }
Пример #7
0
        //get bulk products details through webapi
        public async Task <ActionResult> UploadExternalAPI(HttpPostedFileBase file)
        {
            DataTable      _upcCSVCode          = new DataTable();
            string         path                 = string.Empty;
            var            fileName             = string.Empty;
            var            UPCCode              = string.Empty;
            int            _yes                 = 1;
            bool           _isFirstRowHeader    = Convert.ToBoolean(_yes);
            string         _retrunProductDetail = string.Empty;
            ArrayList      _upcCodeListForCSV   = new ArrayList();
            List <dynamic> _list                = new List <dynamic>();
            StringBuilder  sb = new StringBuilder();
            DataTable      dt = new DataTable();
            DataSet        _productDataset = new DataSet();

            if (file.ContentLength > 0)
            {
                fileName = Path.GetFileName(file.FileName);
                path     = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
                file.SaveAs(path);
                _upcCSVCode = GetDataTableFromCsv(path, _isFirstRowHeader);
                if (_upcCSVCode.Rows.Count > 0)
                {
                    for (int i = 0; i < _upcCSVCode.Rows.Count; i++)
                    {
                        UPCCode = _upcCSVCode.Rows[i][0].ToString();
                        if (UPCCode != null)
                        {
                            string   _appKey    = "/zDQJTHnn1dS";
                            string   _authKey   = "Yj83A3i3i5Kc8Wi6";
                            string   _signature = GetDigitEyesVerificationCode(UPCCode, _authKey);//Third party eye method to get sample signature of particuler upc code
                            string   _url       = "https://www.digit-eyes.com/gtin/v2_0/?upcCode=" + UPCCode + "&field_names=all&language=en&app_key=" + _appKey + "&signature=" + _signature + "";
                            string[] _jsonProductArray;
                            using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
                            {
                                client.BaseAddress = new Uri(_url);
                                client.DefaultRequestHeaders.Accept.Clear();
                                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                                System.Net.Http.HttpResponseMessage response = await client.GetAsync(_url);

                                if (response.IsSuccessStatusCode)
                                {
                                    _retrunProductDetail = await response.Content.ReadAsStringAsync();

                                    _jsonProductArray = Regex.Split(_retrunProductDetail.Replace(", gcp", ""), "},{");
                                    string[] jsonStringArray = Regex.Split(_retrunProductDetail.Replace("[", "").Replace("]", "").Replace(", Inc.", " Inc."), "},{");
                                    if (dt.Columns.Count <= 0)
                                    {
                                        List <string> ColumnsName = new List <string>();
                                        foreach (string jSA in jsonStringArray)
                                        {
                                            string[] jsonStringData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
                                            foreach (string ColumnsNameData in jsonStringData)
                                            {
                                                try
                                                {
                                                    int    idx = ColumnsNameData.IndexOf(":");
                                                    string ColumnsNameString = ColumnsNameData.Substring(0, idx - 1).Replace("\"", "");
                                                    if (!ColumnsName.Contains(ColumnsNameString))
                                                    {
                                                        ColumnsName.Add(ColumnsNameString);
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
                                                }
                                            }
                                            break;
                                        }
                                        foreach (string AddColumnName in ColumnsName)
                                        {
                                            var _columnName = Regex.Replace(AddColumnName, @"\s+", "");
                                            if (dt.Columns.Contains(_columnName))
                                            {
                                                dt.Columns.Add("gcp1");
                                            }
                                            else
                                            {
                                                dt.Columns.Add(_columnName);
                                            }
                                        }
                                        dt.Rows.Add(JsonStringToDataTable(jsonStringArray, dt));
                                    }
                                    else
                                    {
                                        dt.Rows.Add(JsonStringToDataTable(jsonStringArray, dt));
                                    }
                                }
                            }
                        }
                    }
                    string _convertProductetailsToCSV = ConvertToCSV(dt);//convert to csv file
                    _saveProductsDetailCSVFile(_convertProductetailsToCSV.ToString());
                    string _retrunProductsDetail = JsonConvert.SerializeObject(_productDataset, Formatting.Indented);
                    TempData["ProductDetailList"] = _retrunProductsDetail;
                    return(RedirectToAction("UPCSearch"));
                }
                else
                {
                    TempData["sErrMsg"] = "Please Add UPC Code in .csv file !";
                }
            }
            else
            {
                return(RedirectToAction("UPCSearch"));
            }

            return(RedirectToAction("UPCSearch"));
        }