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