public ActionResult RefreshStatus(Guid id) { BL.Project blProject = MAP.MapSupport.ActiveCtx.Project.Single(item => item.Id == id); if (blProject.TrackingUpdateTime.GetValueOrDefault() + UpdateTreshold > DateTime.Now) { return(RedirectToAction("Index")); } StatusTrackingAbstractionType abs = null; if (String.IsNullOrWhiteSpace(blProject.StatusTrackingUrl) == false) { try { // https://raw.github.com/abstractiondev/Demo/master/LogicalOperationDemo/Abstractions/AbstractionContent/StatusTracking/In/OperationToStatusTracking/StatusTracking_FromOperationContent_v1_0.xml WebRequest webRequest = WebRequest.Create(blProject.StatusTrackingUrl); webRequest.Timeout = 5000; WebResponse webResponse = webRequest.GetResponse(); XmlSerializer serializer = new XmlSerializer(typeof(StatusTrackingAbstractionType)); abs = (StatusTrackingAbstractionType)serializer.Deserialize(webResponse.GetResponseStream()); } catch (Exception) { return(RedirectToAction("Index")); } } blProject.StatusData = abs; blProject.TrackingUpdateTime = DateTime.Now; MAP.MapSupport.ActiveCtx.SaveChanges(); return(RedirectToAction("Index")); }
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 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 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 EditProjectMeasurement(EditProjectMeasurementData model, string button, List <ProjectMeasurement> ProjectMeasurementList, string returnViewName) { // TODO: Version concurrency check if (button.StartsWith("Add")) { model.ProjectMeasurementList.Add(new ProjectMeasurement()); return(View(model)); } Guid ProjectId = model.ProjectId; Project entity = GetProject(ProjectId); entity.ProjectStatusInfo.Measurements = ProjectMeasurementList; BL.Project blProject = MAP.MapProject.MapMvcToBusiness(entity); MAP.MapSupport.ActiveCtx.SaveChanges(); entity = GetProject(ProjectId); return(View(returnViewName, entity)); }
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 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); }