public static BL.Project MapMvcToBusiness(MVC.Project source) { if (source == null) { return(null); } BL.Project target = BL.Project.GetOrCreate(MapSupport.ActiveCtx, source.ProjectId); if (target.Version != Guid.Empty && target.Version != source.ProjectVersion) { throw new DataException("Concurrency check failed"); } if (source.ProjectIsDeleted) { target.Delete(MapSupport.ActiveCtx); return(null); } else { target.Version = source.ProjectVersion; target.Name = source.ProjectName; target.StatusTrackingUrl = source.ProjectStatusTrackingUrl; target.TrackingUpdateTime = source.ProjectTrackingUpdateTime; target.StatusData = source.ProjectStatusData; target.ProjectInfo = MapProjectInfo.MapMvcToBusiness(source.ProjectInfo); target.ProjectStatusInfo = MapProjectStatusInfo.MapMvcToBusiness(source.ProjectStatusInfo); } return(target); }
public ActionResult Delete(Guid id, Project project) { try { BL.Project blProject = MAP.MapSupport.ActiveCtx.Project.Single(item => item.Id == id); MAP.MapSupport.ActiveCtx.Project.Remove(blProject); if(blProject.ProjectInfo != null) MAP.MapSupport.ActiveCtx.ProjectInfo.Remove(blProject.ProjectInfo); if(blProject.ProjectStatusInfo != null) { MAP.MapSupport.ActiveCtx.ProjectStatusInfo.Remove(blProject.ProjectStatusInfo); foreach (var ig in blProject.ProjectStatusInfo.InterestGroups) MAP.MapSupport.ActiveCtx.InterestGroup.Remove(ig); foreach (var measurement in blProject.ProjectStatusInfo.Measurements) MAP.MapSupport.ActiveCtx.ProjectMeasurement.Remove(measurement); foreach (var act in blProject.ProjectStatusInfo.Actions) MAP.MapSupport.ActiveCtx.ProjectAction.Remove(act); foreach (var ca in blProject.ProjectStatusInfo.CounterActions) MAP.MapSupport.ActiveCtx.CounterAction.Remove(ca); foreach (var cae in blProject.ProjectStatusInfo.ChallengesAndExceptions) MAP.MapSupport.ActiveCtx.ProjectChallenge.Remove(cae); foreach (var result in blProject.ProjectStatusInfo.Results) MAP.MapSupport.ActiveCtx.ProjectResult.Remove(result); MAP.MapSupport.ActiveCtx.Project.Remove(blProject); } MAP.MapSupport.ActiveCtx.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } }
public ActionResult Create(Project project, ProjectInfo projectInfo, ProjectStatusInfo projectStatusInfo) { try { project.ProjectInfo = projectInfo; project.ProjectStatusInfo = projectStatusInfo; BL.Project blProject = MAP.MapProject.MapMvcToBusiness(project); MAP.MapSupport.ActiveCtx.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } }
public static MVC.Project MapBusinessToMvc(BL.Project source) { if (source == null) { return(null); } MVC.Project target = new MVC.Project(); target.ProjectId = source.Id; target.ProjectVersion = source.Version; target.ProjectName = source.Name; target.ProjectStatusTrackingUrl = source.StatusTrackingUrl; target.ProjectTrackingUpdateTime = source.TrackingUpdateTime; target.ProjectStatusData = source.StatusData; target.ProjectInfo = MapProjectInfo.MapBusinessToMvc(source.ProjectInfo); target.ProjectStatusInfo = MapProjectStatusInfo.MapBusinessToMvc(source.ProjectStatusInfo); return(target); }
public static MVC.Project MapBusinessToMvc(BL.Project source) { if(source == null) return null; MVC.Project target = new MVC.Project(); target.ProjectId = source.Id; target.ProjectVersion = source.Version; target.ProjectName = source.Name; target.ProjectStatusTrackingUrl = source.StatusTrackingUrl; target.ProjectTrackingUpdateTime = source.TrackingUpdateTime; target.ProjectStatusData = source.StatusData; target.ProjectInfo = MapProjectInfo.MapBusinessToMvc(source.ProjectInfo); target.ProjectStatusInfo = MapProjectStatusInfo.MapBusinessToMvc(source.ProjectStatusInfo); return target; }
private ActionResult handleEditButton(string button, Project project) { if (button == "Add Action") project.ProjectStatusInfo.Actions.Add(new ProjectAction()); else if (button == "Add Measurement") project.ProjectStatusInfo.Measurements.Add(new ProjectMeasurement()); else if (button == "Add Interest Group") project.ProjectStatusInfo.InterestGroups.Add(new InterestGroup()); else if (button == "Add Result") project.ProjectStatusInfo.Results.Add(new ProjectResult()); else if (button == "Add Challenge") project.ProjectStatusInfo.ChallengesAndExceptions.Add(new ProjectChallenge()); else if (button == "Add Counter Action") project.ProjectStatusInfo.CounterActions.Add(new CounterAction()); else throw new NotImplementedException("Add button not implemented: " + button); return View("Edit", project); }
public ActionResult Edit(Guid id, string button, Project project) { try { if (button != null && button.StartsWith("Add")) return handleEditButton(button, project); // TODO: Add update logic here BL.Project blProject = MAP.MapProject.MapMvcToBusiness(project); MAP.MapSupport.ActiveCtx.SaveChanges(); return RedirectToAction("Index"); } catch { return View(); } }
public ActionResult DelLink(Project project, Guid id) { return View("Edit"); }