Thursday, 28 February 2019

Custom Field add in Umbraco CMS

This is folder structure
\App_Plugins\ChannelSelection
channelselection.controller.js
channelselection.html
package.manifest

file contain
------------channelselection.controller.js--------------------
angular.module("umbraco")
    .controller("My.ChannelSelectionController",
    function ($scope) {
        $.ajax({
            url: "/umbraco/api/Portfolio/GetDropdownList",
            dataType: "json",
            type: "GET",
            error: function () {
                //alert(" An error occurred.");
            },
            success: function (data) {
                console.log(JSON.stringify(data));
                $('#fillvalues').find("option").remove();
                var option = $("<option/>");
               // option.attr("value", "").text("Select Channel");
                $("#fillvalues").append(option);
             
                $.each(data, function (i, product) {

                    $.each(product.Channel, function (j, productj) {

                        option = $("<option/>");
                        option.attr("value", productj.Id).text(productj.Name);
                        $("#fillvalues").append(option);
                       // contentc += '    <li><a href="' + productj.link + '"><img src="' + productj.Image + '" alt="' + productj.Name + '" /></a></li>';

                    });
                });
                $('#fillvalues').val($scope.model.value);
            }
        });
        //alert('Control loaded');
    });

--------------------channelselection.html-------------
<div ng-controller="My.ChannelSelectionController">
    <select id="fillvalues"  ng-model="model.value"></select>
 
</div>
--------------------package.manifest---------------
{  
    //you can define multiple editors  
    propertyEditors: [    
        {
            /*this must be a unique alias*/
            alias: "My.ChannelSelection",
            /*the name*/
            name: "Channel Selection",
            /*the html file we will load for the editor*/
            editor: {
                view: "~/App_Plugins/ChannelSelection/channelselection.html"
            }
        }
    ]
    ,
    //array of files we want to inject into the application on app_start
    javascript: [
        '~/App_Plugins/ChannelSelection/channelselection.controller.js'
    ]
}

Wednesday, 27 February 2019

Json string read in 2.0 frame work and 4.5 frame work c sharp asp.net

              Sample json data
              { "d" : { "results" : [ {  "ReqId" : "761"]}}}

               ----------4.5 version---------
               JToken token = JToken.Parse(json2);
                JArray vacancies = (JArray)token.SelectToken("d.results");

                ----------2.0 version---------
                JObject o = JObject.Parse(json2);
                string name = (string)o["d"].ToString();
                JObject p = JObject.Parse(name);
                             
                JArray vacancies = (JArray)p.SelectToken("results");//d.results

                foreach (JToken m in vacancies)
                {
                Response.Write(m["ReqId"].ToString().Replace("<", "").Replace(">", "").Replace("\"", ""));
               }

Thursday, 14 February 2019

Convert Json String To DataTable C sharpasp .net

============================================
DataTable [] dt;
   string JsonString = string.Empty;
   ConvertJsonStringToDataTable jDt = new ConvertJsonStringToDataTable();

 JsonString = ui_lbl_JsonString.Text;
      dt = jDt.JsonStringToDataTable(JsonString);

=================Logic======================
using System;
using System.Collections.Generic;
using System.Data;
using System.Text.RegularExpressions;

public class ConvertJsonStringToDataTable
{
    public DataTable[] JsonStringToDataTable(string jsonString)
   {
      DataTable dt = new DataTable();
      DataTable dt1 = 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))
               {
                   if (!ColumnsName.Contains("\\"))
                   {
                       ColumnsName.Add(ColumnsNameString);
                   }
               }
            }
            catch (Exception ex)
            {
               throw new Exception(string.Format("Error Parsing Column Name : {0}", ColumnsNameData));
            }
         }
         break;
      }
      foreach (string AddColumnName in ColumnsName)
      {
          if (AddColumnName.Contains("\\"))
          {
              dt1.Columns.Add(AddColumnName.Replace("\\",""));
          }
          else
          {
              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.Contains("\\"))
               {
                   nr[RowColumns] = RowDataString;
               }
            }
            catch (Exception ex)
            {
               continue;
            }
         }
         dt.Rows.Add(nr);
      }
      foreach (string jSA in jsonStringArray)
      {
          string[] RowData = Regex.Split(jSA.Replace("{", "").Replace("}", ""), ",");
          DataRow nr = dt1.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.Contains("\\"))
                  {
                      nr[RowColumns.Replace("\\", "")] = RowDataString.Replace("\\", "");
                  }
               
              }
              catch (Exception ex)
              {
                  continue;
              }
          }
          dt1.Rows.Add(nr);
      }
      return new DataTable[] { dt, dt1 };
   }
}

Add array value in hidden field and retrieve array value from hidden value


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //For Add array
            $("#selcity").on("change", function () {
                var itemval = $("#selcity option:selected").val();
                var itemtext = $("#selcity option:selected").text();
             
                var items = JSON.parse($('#hdfield').val());
                //Avaide duplicate
                var bool = true;
                    for (var i = 0; i < items.length; i++) {
                       if (items[i][1] == itemval) {
                            bool = false;
                        }
                    }

//                $("#selcity").each(function () {
//                    alert($(this).val() +'=='+ itemval+ ($(this).val() == itemval))
//                    if ($(this).val() == itemval) {
//                        bool = true;
//                    }
//                })

                if (bool) {
                    //For Add
                    var items1 = [itemtext, itemval]
                    items.push(items1)
                    console.log(JSON.stringify(items));
                    document.getElementById("Start").innerHTML = JSON.stringify(items);
                    $('#hdfield').val(JSON.stringify(items));
                }
                //For remove
                //                     for (var i = 0; i < items.length; i++) {
                //                         if (items[i][0] == "Mumbai") {
                //                             items.splice(i, 1);
                //                         }
                //                     }

             

            })
        });

        function pushvalue() {
            var items = JSON.parse($('#hdfield').val());
            var items1 = ["Nasik", 40]
            items.push(items1)
            console.log(JSON.stringify(items));
            document.getElementById("Start").innerHTML = JSON.stringify(items);

            $('#hdfield').val(JSON.stringify(items));
        }
        function hdread() {
            var items = value = JSON.parse($('#hdfield').val());
            for (var i = 0; i < items.length; i++) {
                alert("hdread " + items[i][1] + '-' + items[i][0])
            }
            document.getElementById("Start").innerHTML = JSON.stringify(items);
        }
    </script>
</head>
<body>
<span >Start</span>
<div id='Start'></div>
<p>--------------</p>
<span>Then</span>
<div id='Then'></div>
<input type="hidden" id="hdfield" />
<select id="selcity" >
<option value="40" >Akola</option>
<option value="50" >Bhusawal</option>
<option value="60" >Raigad</option>
</select>
</body>
 <script type="text/javascript" language="javascript">
     var items = [
                  ["Mumbai", 10],
                  ["Jalgaon", 20],
                  ["Pune", 30]
                ];

//     for (var i = 0; i < items.length; i++) {
//         if (items[i][1] == "10") {
//             items.splice(i, 1);
//         }
//     }
     console.log(items);

     $('#hdfield').val(JSON.stringify(items));
     console.log(JSON.stringify(items))
     var value = $('#hdfield').val();
     value = JSON.parse(value);
 
    </script>
</html>