/// <summary>
        /// Populate all the mog aware directories within the 'MyProjects' node
        /// </summary>
        private void PopulateMogProjects()
        {
            TreeNode mogProjects = new TreeNode("MyProjects", 1, 1);

            GameDataTreeView.Nodes.Add(mogProjects);

            string userName = MOG_ControllerProject.GetUserName_DefaultAdmin();

            // Get a list of all our projects that the server knows about
            ArrayList projectsArray = MOG_DBSyncedDataAPI.GetAllSyncedLocations(MOG_ControllerSystem.GetComputerName(), null, userName);

            if (projectsArray != null && projectsArray.Count > 0)
            {
                foreach (MOG_DBSyncedLocationInfo project in projectsArray)
                {
                    // Hash our local tab name
                    string LocalBranchName = "@" + project.mWorkingDirectory;

                    MOG_ControllerSyncData targetGameData = new MOG_ControllerSyncData(project.mWorkingDirectory, project.mProjectName, project.mBranchName, project.mPlatformName, userName);

                    TreeNode projectNode = new TreeNode(LocalBranchName, 4, 4);
                    projectNode.Tag = new guiAssetTreeTag(project.mWorkingDirectory, projectNode, targetGameData);

                    FillDirectory(projectNode, project.mWorkingDirectory, targetGameData);

                    mogProjects.Nodes.Add(projectNode);
                }
            }

            // Create the helper project
            mogProjects.Nodes.Add("<Create new local branch>");

            mogProjects.Expand();
        }
Esempio n. 2
0
        private void LoginDepartmentComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            List <string> users = guiStartup.GetUsers(LoginProjectsComboBox.Text, LoginDepartmentComboBox.Text);

            LoginUsersComboBox.Items.Clear();
            LoginUsersComboBox.Items.AddRange(users.ToArray());
            if (LoginUsersComboBox.Items.Contains(MOG_ControllerProject.GetUserName_DefaultAdmin()))
            {
                LoginUsersComboBox.SelectedItem = MOG_ControllerProject.GetUserName_DefaultAdmin();
            }
        }
Esempio n. 3
0
        private void btnAddUser_Click(object sender, EventArgs e)
        {
            MOG_Privileges privs = MOG_ControllerProject.GetPrivileges();

            if (privs != null)
            {
                if (!privs.GetUserPrivilege(MOG_ControllerProject.GetUserName_DefaultAdmin(), MOG_PRIVILEGE.AddNewUser))
                {
                    MOG_Prompt.PromptResponse("Insufficient Privileges", "Your privileges do not allow you to add users.");
                    return;
                }
            }

            EditUserForm form = new EditUserForm(this, mProject, mPrivileges, null);

            form.ShowDialog(this);
        }
Esempio n. 4
0
        public bool Remove(MOG_Filename filename, BackgroundWorker worker)
        {
            Debug.Write(filename.GetOriginalFilename(), "\nClick_Delete");
            MOG_ControllerInbox.Delete(filename);

            // Check if this asset was within our own inbox?
            if (string.Compare(filename.GetUserName(), MOG_ControllerProject.GetUserName_DefaultAdmin(), true) == 0)
            {
                // Check if this was one of our drafts or inbox assets?
                if (filename.IsDrafts() || filename.IsInbox())
                {
                    // Add this asset to all of our active workspaces
                    if (WorkspaceManager.RemoveAssetFromWorkspaces(filename, true, worker))
                    {
                    }
                }
            }

            return(true);
        }
Esempio n. 5
0
        /// <summary>
        /// Create a Directory TreeNode checking to see if this directory is a MOG sync target
        /// </summary>
        /// <param name="fullname"></param>
        /// <returns></returns>
        private TreeNode CreateDirectoryNode(string fullname, MOG_ControllerSyncData targetGameData)
        {
            string name = fullname;

            try
            {
                name = Path.GetFileName(fullname);
            }
            catch
            {
            }

            string userName = MOG_ControllerProject.GetUserName_DefaultAdmin();

            TreeNode directory = new TreeNode(name);

            directory.ForeColor = SystemColors.InactiveCaptionText;
            directory.Tag       = new guiAssetTreeTag(fullname, directory, false);

            return(directory);
        }
Esempio n. 6
0
        string ResolveToken(string token)
        {
            string value = "";

            // Make sure this token starts with the '{'?
            if (token.StartsWith("{"))
            {
                // Get the name of this token
                string[] parts = token.Split("{}.".ToCharArray(), 3);
                // Make sure this resembled a real token?
                if (parts.Length == 3)
                {
                    // Check for any contained commands?
                    string testToken = "{" + parts[1] + "}";
                    // Determine which token we have?
                    switch (testToken)
                    {
                    // Repository Tokens
                    case TOKEN_Repository_Path:
                        value = MOG_ControllerSystem.GetSystemRepositoryPath();
                        break;

                    case TOKEN_Repository_ProjectsPath:
                        value = MOG_ControllerSystem.GetSystemProjectsPath();
                        break;

                    case TOKEN_Repository_ToolsPath:
                        value = MOG_ControllerSystem.GetSystemRepositoryPath() + "\\Tools";
                        break;

                    case TOKEN_Repository_Project_Path:
                        value = MOG_ControllerProject.GetProjectPath();
                        break;

                    case TOKEN_Repository_Project_ToolsPath:
                        value = MOG_ControllerProject.GetProjectPath() + "\\Tools";
                        break;

                    case TOKEN_Repository_Project_AssetsPath:
                        value = MOG_ControllerRepository.GetRepositoryPath();
                        break;

                    case TOKEN_Repository_Project_ArchivePath:
                        value = MOG_ControllerRepository.GetArchivePath();
                        break;

                    case TOKEN_Repository_Project_UsersPath:
                        value = MOG_ControllerProject.GetProjectPath() + "\\Users";
                        break;

                    // Project Tokens
                    case TOKEN_Project_Name:
                        value = MOG_ControllerProject.GetProjectName();
                        break;

                    case TOKEN_Project_BranchName:
                        value = MOG_ControllerProject.GetBranchName();
                        break;

                    case TOKEN_Project_UserName:
                        value = MOG_ControllerProject.GetUserName_DefaultAdmin();
                        break;

                    case TOKEN_Project_PlatformName:
                        value = MOG_ControllerProject.GetPlatformName();
                        break;

                    case TOKEN_Project_WorkspaceDirectory:
                        value = MOG_ControllerProject.GetWorkspaceDirectory();
                        break;

                    // Ripper Tokens
                    case TOKEN_Ripper_SourcePath:
                        value = mRipperSourcePath;
                        break;

                    case TOKEN_Ripper_SourceFilePattern:
                        value = mRipperSourceFilePattern;
                        break;

                    case TOKEN_Ripper_DestinationPath:
                        value = mRipperDestinationPath;
                        break;

                    // Package Tokens
                    case TOKEN_Package_WorkspaceDirectory:
                        if (mPackageFileInfo != null)
                        {
                            value = mPackageFileInfo.mPackageWorkspaceDirectory;
                        }
                        break;

                    case TOKEN_Package_DataDirectory:
                        if (mPackageFileInfo != null)
                        {
                            value = mPackageFileInfo.mPackageDataDirectory;
                        }
                        break;

                    case TOKEN_Package_PackageFile_Filename:
                        if (mPackageFileInfo != null)
                        {
                            value = mPackageFileInfo.mPackageFile;
                        }
                        break;

                    case TOKEN_Package_PackageFile_FullName:
                    {
                        MOG_Filename packageFilename = (mPackageFileInfo != null) ? mPackageFileInfo.mPackageAssetFilename : new MOG_Filename(MOG_ControllerPackage.GetPackageName(mPackageAssignment));
                        value = packageFilename.GetAssetFullName();
                    }
                    break;

                    case TOKEN_Package_PackageFile_Classification:
                    {
                        MOG_Filename packageFilename = (mPackageFileInfo != null) ? mPackageFileInfo.mPackageAssetFilename : new MOG_Filename(MOG_ControllerPackage.GetPackageName(mPackageAssignment));
                        value = packageFilename.GetAssetClassification();
                    }
                    break;

                    case TOKEN_Package_PackageFile_Label:
                    {
                        MOG_Filename packageFilename = (mPackageFileInfo != null) ? mPackageFileInfo.mPackageAssetFilename : new MOG_Filename(MOG_ControllerPackage.GetPackageName(mPackageAssignment));
                        value = packageFilename.GetAssetLabel();
                    }
                    break;

                    case TOKEN_Package_PackageFile_Platform:
                    {
                        MOG_Filename packageFilename = (mPackageFileInfo != null) ? mPackageFileInfo.mPackageAssetFilename : new MOG_Filename(MOG_ControllerPackage.GetPackageName(mPackageAssignment));
                        value = packageFilename.GetAssetPlatform();
                    }
                    break;

                    case TOKEN_Package_PackageFile_Group:
                        value = MOG_ControllerPackage.GetPackageGroups(mPackageAssignment);
                        break;

                    case TOKEN_Package_PackageFile_Object:
                        value = MOG_ControllerPackage.GetPackageObjects(mPackageAssignment);
                        break;

                    // Inbox Tokens
                    case TOKEN_Inbox_UserName:
                        value = mAssetFilename.GetUserName();
                        break;

                    case TOKEN_Inbox_UserPath:
                        value = mAssetFilename.GetUserPath();
                        break;

                    case TOKEN_Inbox_BoxName:
                        value = mAssetFilename.GetBoxName();
                        break;

                    case TOKEN_Inbox_BoxPath:
                        value = mAssetFilename.GetBoxPath();
                        break;

                    // Asset Tokens
                    case TOKEN_Asset_AssetName_Path:
                        value = mAssetFilename.GetPath();
                        break;

                    case TOKEN_Asset_AssetName_FullName:
                        value = mAssetFilename.GetAssetFullName();
                        break;

                    case TOKEN_Asset_AssetName_Classification:
                        value = mAssetFilename.GetAssetClassification();
                        break;

                    case TOKEN_Asset_AssetName_Name:
                        value = mAssetFilename.GetAssetName();
                        break;

                    case TOKEN_Asset_AssetName_PlatformName:
                        value = mAssetFilename.GetAssetPlatform();
                        break;

                    case TOKEN_Asset_AssetName_Label:
                        value = mAssetFilename.GetAssetLabel();
                        break;

                    case TOKEN_Asset_ImportedFile:
                    case TOKEN_Asset_RippedFile:
                        value = ResolveToken_AssetFile(token);
                        break;

                    case TOKEN_Asset_Property:
                        value = ResolveToken_Property(token);
                        break;

                    case TOKEN_Asset_ClassificationPath:
                        value = MOG_Filename.GetClassificationPath(mAssetFilename.GetAssetClassification());
                        break;

                    case TOKEN_Asset_VersionTimeStamp:
                        value = mAssetFilename.GetVersionTimeStamp();
                        break;
                    }

                    // Check if we have a command?
                    if (parts[2] != ".")
                    {
                    }
                }
            }

            return(value);
        }
        /// <summary>
        /// Create a Directory TreeNode checking to see if this directory is a MOG sync target
        /// </summary>
        /// <param name="fullname"></param>
        /// <returns></returns>
        private TreeNode CreateDirectoryNode(string fullname, MOG_ControllerSyncData targetGameData)
        {
            string name = fullname;

            try
            {
                name = Path.GetFileName(fullname);
            }
            catch
            {
            }
            //Check active user for null/empty string and default to Admin if that is the case.
            string userName = MOG_ControllerProject.GetUserName_DefaultAdmin();

            TreeNode directory = new TreeNode(name);

            directory.Tag = new guiAssetTreeTag(fullname, directory);

            // This is a virtual directory
            if (targetGameData != null)
            {
                directory.ImageIndex         = 5;
                directory.SelectedImageIndex = 5;
                directory.Tag = new guiAssetTreeTag(fullname, directory, targetGameData);
            }
            else
            {
                // Is this a MOG controlled directory - Always remove ' characters when talking to the database?
                if (MOG.DATABASE.MOG_DBSyncedDataAPI.DoesSyncedLocationExist(MOG_ControllerSystem.GetComputerName(), null, null, fullname.Replace("'", ""), userName))
                {
                    ArrayList gameDataArray = MOG.DATABASE.MOG_DBSyncedDataAPI.GetAllSyncedLocations(MOG_ControllerSystem.GetComputerName(), fullname.Replace("'", ""), userName);

                    if (gameDataArray.Count == 1)
                    {
                        MOG_DBSyncedLocationInfo dbLocation = (MOG_DBSyncedLocationInfo)gameDataArray[0];
                        MOG_ControllerSyncData   gameData   = new MOG_ControllerSyncData(dbLocation.mWorkingDirectory, dbLocation.mProjectName, dbLocation.mBranchName, dbLocation.mPlatformName, userName);
                        directory.Tag = new guiAssetTreeTag(fullname, directory, gameData);
                    }
                    else if (gameDataArray.Count > 1)
                    {
                        MOG_Report.ReportMessage("Create Mog Aware directory", "Got back too many gameDataControllers for this directory!\n\nDIRECTORY: " + fullname + "\n\nTaking first one...", Environment.StackTrace, MOG_ALERT_LEVEL.ERROR);
                        MOG_DBSyncedLocationInfo dbLocation = (MOG_DBSyncedLocationInfo)gameDataArray[0];
                        MOG_ControllerSyncData   gameData   = new MOG_ControllerSyncData(dbLocation.mWorkingDirectory, dbLocation.mProjectName, dbLocation.mBranchName, dbLocation.mPlatformName, userName);
                        directory.Tag = new guiAssetTreeTag(fullname, directory, gameData);
                    }
                    else if (gameDataArray.Count == 0)
                    {
                        MOG_Report.ReportMessage("Create Mog Aware directory", "Got back zero gameDataControllers for this directory!\n\nDIRECTORY: " + fullname, Environment.StackTrace, MOG_ALERT_LEVEL.ERROR);
                        return(directory);
                    }

                    directory.ImageIndex         = 4;
                    directory.SelectedImageIndex = 4;
                }
                else
                {
                    directory.ImageIndex         = 3;
                    directory.SelectedImageIndex = 3;
                }
            }

            return(directory);
        }
Esempio n. 8
0
        /// <summary>
        /// Makes the selected assets the current version in the current branch
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MakeCurrentMenuItem_Click(object sender, System.EventArgs e)
        {
            try
            {
                ArrayList selectedItems  = ControlGetSelectedItems();
                ArrayList assetFilenames = new ArrayList();

                // Scan the list and prepare it for delivery to the DLL
                string message = "";
                foreach (guiAssetTreeTag tag in selectedItems)
                {
                    if (tag.Execute)
                    {
                        MOG_Filename filename = new MOG_Filename(tag.FullFilename);
                        if (filename.GetFilenameType() == MOG_FILENAME_TYPE.MOG_FILENAME_Asset)
                        {
                            assetFilenames.Add(filename);
                        }

                        message = message + filename.GetAssetFullName() + "\n";
                    }
                }

                // Check if this request effects more than 1 asset??
                if (selectedItems.Count > 1)
                {
                    if (MOG_Prompt.PromptResponse("Are you sure you want to make all of these assets the current versions?", message, MOGPromptButtons.OKCancel) != MOGPromptResult.OK)
                    {
                        return;
                    }
                }

                // Stamp all the specified assets
                if (MOG_ControllerProject.MakeAssetCurrentVersion(assetFilenames, "Made current by " + MOG_ControllerProject.GetUserName_DefaultAdmin()))
                {
                    // Check if this request effects more than 1 asset??
                    if (selectedItems.Count > 1)
                    {
                        // Inform the user this may take a while
                        MOG_Prompt.PromptResponse("Completed",
                                                  "This change requires Slave processing.\n" +
                                                  "The project will not reflect these changes until all slaves have finished processing the generated commands.\n" +
                                                  "The progress of this task can be monitored in the Connections Tab.");
                    }
                }
                else
                {
                    MOG_Prompt.PromptMessage("Make Current Failed", "The system was unable to fully complete the task!", Environment.StackTrace);
                }
            }
            catch (Exception ex)
            {
                MOG_Report.ReportMessage("MakeCurrent Exception", ex.Message, ex.StackTrace, MOG.PROMPT.MOG_ALERT_LEVEL.CRITICAL);
            }
        }