Пример #1
0
        private SP.ListItem GetLinkedProject()
        {
            // get all linked projects
            SP.ListItemCollection linkedProjects = GetItemsFromSharepointList(
                SharepointConstants.Links.linkedProjectList,
                SharepointConstants.Views.allItems
                );
            if (linkedProjects.Count == 0)
            {
                //return null;
            }

            // see if the current project is linked
            SP.ListItem linkedProject = SharepointMethods.GetItem(
                linkedProjects,
                SharepointConstants.ColumnHeaders.Title,
                _doc.Title
                );
            return(linkedProject);
        }
Пример #2
0
        private void HandleState()
        {
            // check user credentials
            CheckLogin();
            if (_isLoggedIn)
            {
                using (ProgressDialog pd = new ProgressDialog("Loading data.", 4))
                {
                    pd.Show();

                    // get current user from sharepoint
                    pd.StartTask("Looking up user.");
                    SP.ListItem user = GetCurrentUser();
                    if (user == null)
                    {
                        // disable the form if the user doesn't exist
                        SharepointConstants.Cache.user = null;
                        DisableForm();
                        pd.Close();
                        return;
                    }
                    SharepointConstants.Cache.user = user;
                    // CheckUser();
                    pd.Increment();

                    // get all available projects from sharepoint
                    pd.StartTask("Fetching sharepoint projects.");
                    SP.ListItemCollection projects = GetProjects();
                    if (projects == null)
                    {
                        SharepointConstants.Cache.projects = null;
                        pd.Close();
                        return;
                    }
                    SharepointConstants.Cache.projects = projects;
                    pd.Increment();

                    // check if the project is linked
                    pd.StartTask("Checking Revit model link status.");
                    SP.ListItem linkedProject = GetLinkedProject();
                    if (linkedProject == null)
                    {
                        // display the available projects in the dropdown box
                        SharepointConstants.Cache.project = null;
                        DisplayProjects(projects);
                        ReloadForm();
                        pd.Close();
                        return;
                    }
                    pd.Increment();

                    // get the sharepoint project associated with the linked project
                    pd.StartTask("Establishing Revit model to Sharepoint link.");
                    SP.ListItem spProject = SharepointMethods.GetItem(
                        projects,
                        SharepointConstants.ColumnHeaders.ID,
                        linkedProject[SharepointConstants.ColumnHeaders.project_id].ToString()
                        );
                    SharepointConstants.Cache.project = spProject;
                    pd.Increment();
                }
            }
            // refresh the form
            ReloadForm();
        }