Example #1
0
        public ActionResult Update(TopoTrailFormModel update)
        {
            var response = _topoTrailService.UpdateTrail(update);

            if (response.OK)
            {
                var model = InitModel(response.Data.Key);
                model.Edit           = new TopoTrailFormModel(model.Trail);
                model.ConfirmMessage = $"Trail updated at {DateTime.Now}";
                return(View(model));
            }
            else
            {
                var model = InitModel(update.Key);
                model.Edit = update;
                model.AddValidationErrors(response.ValidationErrors);
                return(View(model));
            }
        }
Example #2
0
        public ActionResult Import(TopoTrailFormModel update)
        {
            // TODO: REFACTOR: move to service and fix TopoTrail.Track useage

            // validate form inputs
            var response = _topoTrailService.ValidateCreate(update);

            if (response.OK)
            {
                var key = "";

                // do create
                if (String.IsNullOrWhiteSpace(update.Key))
                {
                    var trail = new TopoTrailInfo(update, null);
                    foreach (var t in _trackEditService.ListTracks())
                    {
                        var track = new TopoTrackInfo(trail, t);
                        trail.AddTrack_TODO_DEPRECATE(track);
                    }
                    key = _topoTrailService.CreateTrail(trail);
                }
                else                 // do update
                {
                    // replace trails on existing track
                    var trail = _topoTrailService.GetTrail(update.Key);
                    trail.ClearTracks_TODO_DEPRECATE();
                    foreach (var t in _trackEditService.ListTracks())
                    {
                        var track = new TopoTrackInfo(_editing, t);
                        trail.AddTrack_TODO_DEPRECATE(track);
                    }
                    key = _topoTrailService.UpdateTrail(update).Data.Key;
                }

                // show results
                var model = InitModel(key);
                model.Edit           = new TopoTrailFormModel(model.Trail);
                model.ConfirmMessage = $"Trail imported at {DateTime.Now}";
                return(View(model));
            }
            else
            {
                var model = InitModel();
                model.Trail = _editing;
                model.Edit  = update;

                // TODO: duplicated in GET + POST
                var tracks = new List <TopoTrackInfo>();
                foreach (var t in _trackEditService.ListTracks())
                {
                    var track = new TopoTrackInfo(_editing, t);
                    _topoTrailService.UpdateTrackPlaces(track);
                    tracks.Add(track);
                }
                model.Tracks = tracks;

                model.AddValidationErrors(response.ValidationErrors);
                return(View(model));
            }
        }