Canvas.Controllers.ApiController.GetEditControl C# (CSharp) Метод

GetEditControl() приватный Метод

private GetEditControl ( System.Guid controlId, int pageId ) : System.Web.Mvc.JsonResult
controlId System.Guid
pageId int
Результат System.Web.Mvc.JsonResult
        public JsonResult GetEditControl(Guid controlId, int pageId)
        {

            var model = Repository.GetObjectById(pageId);

            if (model != null)
            {

                // Finna Area hvort sem það sé inn í Grid/section eða rótar svæði sem á undir sér Control

                foreach (var area in model.Areas)
                {
                    FindAreaWithControl(area, controlId);
                }

                if (AreaControlResult != null)
                {
                    var control = AreaControlResult.Controls.Where(x => x.ControlID == controlId).FirstOrDefault();

                    if (control != null)
                    {

                        var templates = CanvasHelper.GetTemplates(control.Type);

                        var macros = new List<CanvasMacro>();

                        if (control.Type == "Macro")
                        {
                            using (var db = DatabaseContext.Database)
                            {
                                macros = db.Fetch<CanvasMacro>("SELECT * FROM cmsMacro where macroUseInEditor = @0 ORDER BY macroName", true);
                            }
                        }

                        var controlProperties = control.GetType().GetProperties().ToDictionary(x => x.Name, x => x.GetValue(control, null) == null ? "" : HttpUtility.HtmlDecode(x.GetValue(control, null).ToString())).ToList();

                        return Json(new { success = true, controlId = controlId, properties = controlProperties, templates = templates, type = control.Type, macros = macros }, JsonRequestBehavior.AllowGet);

                    }
                }

            }

            return Json(new { success = false }, JsonRequestBehavior.AllowGet);


        }