public CollectionModel UpdateWithLastProcessChanges(string projectUID, string activityUID)
        {
            try {
                var project = Project.Parse(projectUID);

                Activity activity = project.GetActivity(activityUID);
                var      updater  = new ProcessUpdater(activity);

                FixedList <ProjectItem> activities = updater.UpdateWithLastProcessChanges();

                return(new CollectionModel(this.Request, activities.ToResponse()));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }
        public SingleObjectModel WhatIfUpdateProjectDeadlines(string projectUID, string activityUID)
        {
            try {
                var project = Project.Parse(projectUID);

                Activity activity = project.GetActivity(activityUID);
                var      updater  = new ProcessUpdater(activity);

                WhatIfResult result = updater.OnUpdateDeadlines();
                return(new SingleObjectModel(this.Request, result.ToResponse(),
                                             typeof(WhatIfResult).FullName));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }
        public CollectionModel UpdateProjectDeadlines(string projectUID, string activityUID)
        {
            try {
                var project = Project.Parse(projectUID);

                Activity activity = project.GetActivity(activityUID);

                var updater = new ProcessUpdater(activity);

                FixedList <ProjectItem> result = updater.UpdateDeadlines();

                return(new CollectionModel(this.Request, result.ToResponse(), typeof(ProjectItem).FullName));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }
        public SingleObjectModel UpdateAllProjectProcessesWithLastChanges(string projectUID)
        {
            try {
                var project = Project.Parse(projectUID);

                var result = ModelingServices.ProcessesCheckList(project);

                foreach (var process in result)
                {
                    Activity startActivity = project.GetActivity(process.StartActivity.UID);

                    var updater = new ProcessUpdater(startActivity);

                    updater.UpdateWithLastProcessChanges();
                }

                return(new SingleObjectModel(this.Request, result.ToResponse(),
                                             typeof(WhatIfResult).FullName));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }