public virtual PartialViewResult ChangePathOfEshterakPartial(ChangePathOfEshterakViewModel viewModel) { if (!ModelState.IsValid) { return(PartialView("_ChangePathOfEshterak", viewModel)); } viewModel.PathSelectListItems = viewModel.PathSelectListItems; viewModel.PreviousPathName = viewModel.PreviousPathName; return(PartialView("_ChangePathOfEshterak", viewModel)); }
public virtual JsonResult ChangePathOfEshterakSubmit(ChangePathOfEshterakViewModel viewModel) { if (!ModelState.IsValid) { return(Json(new { status = "FormIsNotValid" })); } var gridData = Session["PathGridData"] as List <PathGrid>; var updatedGridData = _pathFinderService.ChangePathOfEshterak(gridData, viewModel); Session["PathGridData"] = updatedGridData; Session["MapData"] = updatedGridData.Select(g => new PointCluster { PointClusterCoordinates = g.PointClusterCoordinates }).ToList(); return(Json(new { status = "Success" })); }
public List <PathGrid> ChangePathOfEshterak(List <PathGrid> gridData, ChangePathOfEshterakViewModel viewModel) { if (gridData == null) { throw new ArgumentNullException(nameof(gridData), "gridData Argument cannot be null."); } var pathOrigin = gridData.Single(g => g.TemporaryId == viewModel.TemporaryPathId); var eshterak = pathOrigin.PointClusterCoordinates.Single(p => p.CoordinateId == viewModel.EshterakId); pathOrigin.PointClusterCoordinates.Remove(eshterak); var pathDestination = gridData.Single(g => g.TemporaryId == viewModel.PathSelect); pathDestination.PointClusterCoordinates.Add(eshterak); // if path origin doesn't have any point left, delete the path (since it doesn't have any coordinate) if (!pathOrigin.PointClusterCoordinates.Any()) { gridData.Remove(pathOrigin); } return(gridData); }