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

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

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

            var model = Repository.GetObjectById(pageId);
            CanvasControl control = null;
            CanvasArea areaDraggedFrom = null;
            CanvasArea areaDroppedTo = null;

            foreach (var area in model.Areas)
            {
                FindArea(area, areaFromAlias);
            }

            if (AreaResult != null)
            {
                areaDraggedFrom = AreaResult;
            }

            // if Sort
            if (areaFromAlias == areaToAlias)
            {
                // If sort

                if (areaDraggedFrom != null)
                {

                    control = areaDraggedFrom.Controls.FirstOrDefault(x => x.ControlID == controlId);

                    areaDraggedFrom.Controls.Remove(control);

                    areaDraggedFrom.Controls.Insert(position, control);

                }

            }
            else
            {
                // If Move
                AreaResult = null;

                foreach (var area in model.Areas)
                {
                    FindArea(area, areaToAlias);
                }

                if (AreaResult != null)
                {
                    areaDroppedTo = AreaResult;
                }

                if (areaDraggedFrom != null)
                {

                    control = areaDraggedFrom.Controls.FirstOrDefault(x => x.ControlID == controlId);

                    areaDraggedFrom.Controls.Remove(control);

                }

                if (areaDroppedTo != null)
                {

                    areaDroppedTo.Controls.Insert(position, control);

                }

            }


            Repository.SaveJson(model, pageId);

            return Json(new { success = true });

        }