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());
     }
 }
Exemple #5
0
        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);
        }