public ActionResult SaveSpacingStyling(int widgetidspacing, SpacingSettings mdl)
        {

      if (ModelState.IsValid) {
        
            var item = _contentManager.Get<CustomStyle>(widgetidspacing);
            if (item != null)
            {
                string css = item.CssStyle;
                if (string.IsNullOrWhiteSpace(css)) css = string.Empty;
                //parse
                var col = ParseStringTocssCollection(css);
                //properties (margin: 50px 50px 50px 5px;)


                //clear any previous margin instanses
                if (col.ContainsKey("margin")) col.Remove("margin");
                //build padding rule
                if (mdl.MarginSameForAll==true) 
                    {
                    string marginrule = string.Format("{0}px", mdl.MarginTop);
                    // add css styles from model
                    col.Add("margin", marginrule);
                    }

                else {
                    string marginrule = string.Format("{0}px {1}px {2}px {3}px", mdl.MarginTop, mdl.MarginRight, mdl.MarginBottom, mdl.MarginLeft);
                    // add css styles from model
                    col.Add("margin", marginrule);
                    }


                //clear any previous padding instanses
                if (col.ContainsKey("padding")) col.Remove("padding");
                //build padding rule
                if (mdl.PaddingSameForAll == true)
                {
                    string paddingrule = string.Format("{0}px", mdl.PaddingTop);
                    // add css styles from model
                    col.Add("padding", paddingrule);
                }

                else
                {
                    string paddingrule = string.Format("{0}px {1}px {2}px {3}px", mdl.PaddingTop, mdl.PaddingRight, mdl.PaddingBottom, mdl.PaddingLeft);
                    // add css styles from model
                    col.Add("padding", paddingrule);
                }


                //serialize back
                item.CssStyle = CssCollectionTostring(col);


                _repo.Update(item.Record);

                return Json(new { s = "Saved settings!" });
            }

      }

          else
          {
             //model state is not valid
              return Json(new { s = PrepareErrMsg(ModelState) });
          
        

          }
            return null;

        }
        public ActionResult SpacingStyling(int widgetid)
        {
            var item = _contentManager.Get<CustomStyle>(widgetid);

            if (item != null)
            {

                string css = item.CssStyle;
                //parse
                if (string.IsNullOrWhiteSpace(css)) css = string.Empty;
                //strip out the px symbol
                css = css.Replace("px", "");
                var col = ParseStringTocssCollection(css);
                ViewBag.widgetid = widgetid;
              

                var mdl = new SpacingSettings();

                //margins
                if (col.ContainsKey("margin"))
                {
                    //parse 

                    string shadowvals = col["margin"];

                    string[] shadowvalsArray = shadowvals.Split(Convert.ToChar(" "));

                    if (shadowvalsArray.Count()==1) {
                        mdl.MarginSameForAll = true;
                        mdl.MarginTop = Convert.ToInt32(shadowvalsArray[0]);


                    }
                    else
                        {
                        mdl.MarginSameForAll = false;
                        mdl.MarginTop = Convert.ToInt32(shadowvalsArray[0]);
                        mdl.MarginRight = Convert.ToInt32(shadowvalsArray[1]);
                        mdl.MarginBottom = Convert.ToInt32(shadowvalsArray[2]);
                        mdl.MarginLeft = Convert.ToInt32(shadowvalsArray[3]);
                        }

                   }

                //paddings
                if (col.ContainsKey("padding"))
                {
                    //parse 

                    string shadowvals = col["padding"];

                    string[] paddingsvalarray  = shadowvals.Split(Convert.ToChar(" "));

                    if (paddingsvalarray.Count() == 1) {
                        mdl.PaddingSameForAll = true;
                        mdl.PaddingTop = Convert.ToInt32(paddingsvalarray[0]);

                    }
                    else

                        {
                            mdl.PaddingSameForAll = false;
                            mdl.PaddingTop = Convert.ToInt32(paddingsvalarray[0]);
                            mdl.PaddingRight = Convert.ToInt32(paddingsvalarray[1]);
                            mdl.PaddingBottom = Convert.ToInt32(paddingsvalarray[2]);
                            mdl.PaddingLeft = Convert.ToInt32(paddingsvalarray[3]);
                        }



                     

                }


                return PartialView(mdl);
            }

            return null;
        }