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 });
}