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" }));
        }
Beispiel #3
0
        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);
        }