Пример #1
0
 static public MOG_ControllerSyncData AddNewWorkspace(MOG_DBSyncedLocationInfo workspace)
 {
     return(AddNewWorkspace(workspace.mTabName, workspace.mWorkingDirectory, workspace.mProjectName, workspace.mBranchName, workspace.mPlatformName, workspace.mUserName));
 }
        /// <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);
        }