private void RefreshWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker         = sender as BackgroundWorker;
            string           trashDirectory = MOG_ControllerProject.GetActiveUser().GetUserPath() + "\\Trash";

            mSize = 0;

            ArrayList assets = MOG_DBInboxAPI.InboxGetAssetListWithProperties("Trash", MOG_ControllerProject.GetActiveUser().GetUserName(), "", "");
            int       i      = 0;

            foreach (MOG_DBInboxProperties asset in assets)
            {
                // Create the properties for this asset
                MOG_Properties pProperties = new MOG_Properties(asset.mProperties);

                worker.ReportProgress(i, asset.mAsset.GetAssetName());

                // Create the ListViewItem
                ListViewItem item = guiAssetManager.NewListViewItem(asset.mAsset, pProperties.Status, pProperties);

                if (!string.IsNullOrEmpty(pProperties.Size))
                {
                    mSize += long.Parse(pProperties.Size);
                }

                worker.ReportProgress(i, item);
                i++;
            }
        }
        private string FormatString(guiAssetTreeTag tag, string format)
        {
            // Replace out any string options {}
            if (format.IndexOf("{projectRoot}") != -1)
            {
                format = format.Replace("{projectRoot}", MOG_ControllerProject.GetCurrentSyncDataController().GetSyncDirectory());
            }

            // Replace out any string options {}
            if (format.IndexOf("{projectName}") != -1)
            {
                format = format.Replace("{projectName}", MOG_ControllerProject.GetProjectName());
            }

            // Replace out any string options {}
            if (format.IndexOf("{LoginUserName}") != -1)
            {
                format = format.Replace("{LoginUserName}", MOG_ControllerProject.GetActiveUser().GetUserName());
            }

            // Replace out any string options {}
            if (format.IndexOf("{SelectedItem}") != -1)
            {
                format = format.Replace("{SelectedItem}", tag.FullFilename);
            }

            return(format);
        }
        /// <summary>
        /// Try to rebuild all of our user boxes based on what's on the HDD
        /// </summary>
        /// <param name="mainForm"></param>
        static public void MOGGlobalViewRebuildInbox(MogMainForm mainForm)
        {
            if (mainForm.mAssetManager != null)
            {
                // Initialize our variables...
                string boxDirectory = mainForm.mAssetManager.mInboxAssetsDirectory;
                string userPath     = MOG_ControllerProject.GetActiveUser().GetUserPath();
                // If we have a proper boxDirectory, add a "\\" to it
                if (boxDirectory.Length > 0)
                {
                    boxDirectory += "\\";
                }

                // Rebuild our contents.info and the database based on what's in the HDD
                UpdateBox(userPath, "Inbox", boxDirectory, false);
                UpdateBox(userPath, "Drafts", boxDirectory, false);
                UpdateBox(userPath, "Outbox", boxDirectory, false);
                UpdateBox(userPath, "Trash", boxDirectory, true);

                // Now rebuild local window
                if (mainForm.mAssetManager.mLocal != null && MOG_ControllerProject.GetCurrentSyncDataController() != null)
                {
                    MOG_ControllerInbox.RebuildInboxView(String.Concat(MOG_ControllerProject.GetCurrentSyncDataController().GetSyncDirectory(), "\\MOG\\UpdatedTray"), false);
                    mainForm.mAssetManager.mLocal.RefreshWindow();
                }
            }
        }
Exemple #4
0
 public void InitializeUsers()
 {
     if (MOG_ControllerProject.IsUser())
     {
         // Set the current active users box
         mCurrentUsersBox = MOG_ControllerProject.GetActiveUser().GetUserName();
     }
     else
     {
         mCurrentUsersBox = "Login to project...";
     }
 }
 public void RefreshInbox()
 {
     if (!mWorkerInbox.IsBusy)
     {
         // Only do this if we have an active project and user
         if (MOG_ControllerProject.GetProject() != null &&
             MOG_ControllerProject.GetActiveUser() != null)
         {
             mAssetManager.mainForm.Cursor = Cursors.WaitCursor;
             mWorkerInbox.RunWorkerAsync("InBox");
         }
     }
 }
        public void AssetImportFromShell(string[] files, bool separate, bool looseFileMatching)
        {
            // If we are not the login user, switch us
            if (string.Compare(MOG_ControllerProject.GetActiveUser().GetUserName(), MOG_ControllerProject.GetUser().GetUserName(), true) != 0)
            {
                guiUser user = new guiUser(mAssetManager.mainForm);
                mAssetManager.mainForm.AssetManagerActiveUserComboBox.Text = MOG_ControllerProject.GetUser().GetUserName();
                user.SetActiveUser(MOG_ControllerProject.GetUser().GetUserName());
                mAssetManager.RefreshActiveWindow();
            }

            if (separate)
            {
                guiAssetController.ImportSeparately(files, looseFileMatching);
            }
            else
            {
                guiAssetController.ImportAsOne(files, looseFileMatching);
            }
        }
Exemple #7
0
        /// <summary>
        /// Update the inboxes with the new command that just came in
        /// </summary>
        /// <param name="command"></param>
        public void RefreshWindowsBoth(MOG_Command command)
        {
            MOG_Filename del = new MOG_Filename(command.GetSource());
            MOG_Filename add = new MOG_Filename(command.GetDestination());

            // We need to strip off the root folder so that we get a more accurate user path
            // Without this change, we got y:\\Projects\Users when we selected a root drive at the repository
            string userPath = MOG_ControllerProject.GetActiveUser().GetUserPath().ToLower();

            // Check if the add is within the inboxes
            if (add.IsWithinInboxes())
            {
                // Check if we are not within the path that is relevant for this user?
                if (!add.IsWithinPath(userPath))
                {
                    // Eat it
                    add.SetFilename("");
                }
            }
            // Check if this is outside our current workspace directory?
            else if (add.IsLocal())
            {
                // Check if we are not within the path that is relevant for this user?
                if (!add.IsWithinPath(MOG_ControllerProject.GetWorkspaceDirectory()))
                {
                    // Eat it
                    add.SetFilename("");
                }
            }

            // Check if the del is within the inboxes
            if (del.IsWithinInboxes())
            {
                // Check if we are not within the path that is relevant for this user?
                if (!del.IsWithinPath(userPath))
                {
                    // Eat it
                    del.SetFilename("");
                }
            }
            // Check if this is outside our current workspace directory?
            else if (del.IsLocal())
            {
                // Check if we are not within the path that is relevant for this user?
                if (!del.IsWithinPath(MOG_ControllerProject.GetWorkspaceDirectory()))
                {
                    // Eat it
                    del.SetFilename("");
                }
            }

            // Determin which one we can test for the asset type?
            MOG_Filename check = (add.GetOriginalFilename().Length != 0) ? add : del;

            switch (check.GetFilenameType())
            {
            case MOG_FILENAME_TYPE.MOG_FILENAME_Group:
            case MOG_FILENAME_TYPE.MOG_FILENAME_Asset:
            case MOG_FILENAME_TYPE.MOG_FILENAME_Link:
                if (mAssets != null)
                {
                    mAssets.RefreshBox(add, del, command);
                }
                break;
            }

            //Application.DoEvents();
        }
Exemple #8
0
        /// <summary>
        /// Find the correct listview for this new asset name
        /// </summary>
        /// <param name="box"></param>
        /// <param name="type"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public ListView IsolateListView(string box, MOG_FILENAME_TYPE type, string userName)
        {
            // Bail if this is an event for anothers box but not if the username is blank.  Blank user names are from our local data window
            if (MOG_ControllerProject.IsProject() &&
                MOG_ControllerProject.GetActiveUser() != null &&
                (string.Compare(userName, MOG_ControllerProject.GetActiveUser().GetUserName(), true) != 0) &&
                (userName.Length != 0))
            {
                return(null);
            }

            if (string.Compare(box, "Inbox", true) == 0)
            {
                mActiveAssetsDirectory = mInboxAssetsDirectory;
                switch (type)
                {
                case MOG_FILENAME_TYPE.MOG_FILENAME_Asset:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Group:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Link:
                    return(mainForm.AssetManagerInboxListView);

                default:
                    return(null);
                }
            }
            else if (string.Compare(box, "Drafts", true) == 0)
            {
                mActiveAssetsDirectory = mInboxAssetsDirectory;
                switch (type)
                {
                case MOG_FILENAME_TYPE.MOG_FILENAME_Asset:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Group:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Link:
                    return(mainForm.AssetManagerDraftsListView);

                default:
                    return(null);
                }
            }
            else if (string.Compare(box, "Outbox", true) == 0)
            {
                mActiveAssetsDirectory = mOutboxAssetsDirectory;
                switch (type)
                {
                case MOG_FILENAME_TYPE.MOG_FILENAME_Asset:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Group:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Link:
                    return(mainForm.AssetManagerSentListView);

                default:
                    return(null);
                }
            }
            else if (string.Compare(box, "Trash", true) == 0)
            {
                mActiveAssetsDirectory = "";
                switch (type)
                {
                case MOG_FILENAME_TYPE.MOG_FILENAME_Asset:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Group:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Link:
                    return(mainForm.AssetManagerTrashListView);

                default:
                    return(null);
                }
            }
            else if (string.Compare(box, "", true) == 0)
            {
                mActiveAssetsDirectory = "";
                switch (type)
                {
                case MOG_FILENAME_TYPE.MOG_FILENAME_Asset:                              // This is an asset in the local data area
                case MOG_FILENAME_TYPE.MOG_FILENAME_Group:
                case MOG_FILENAME_TYPE.MOG_FILENAME_Link:
                    return(this.mLocal.GetLocalWorkSpaceListView());

                default:
                    return(null);
                }
            }


            return(null);
        }
        public static void BlessAssets_Worker(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker    worker     = sender as BackgroundWorker;
            List <object>       parameters = e.Argument as List <object>;
            List <MOG_Filename> filenames  = parameters[0] as List <MOG_Filename>;
            string comment      = parameters[1] as string;
            bool   maintainLock = (bool)parameters[2];

            bool   bUserAltered = false;
            string loginUser    = MOG_ControllerProject.GetUser().GetUserName();
            string activeUser   = MOG_ControllerProject.GetActiveUser().GetUserName();

            // Make sure the inbox that we are in matches the logged in user
            if (string.Compare(MOG_ControllerProject.GetUser().GetUserName(), MOG_ControllerProject.GetActiveUser().GetUserName(), true) != 0)
            {
                // Login as this user so that his bless targets will be respected during this bless!
                MOG_ControllerProject.LoginUser(MOG_ControllerProject.GetActiveUser().GetUserName());
                bUserAltered = true;
            }

            // Obtain a unique bless jobLabel
            string timestamp = MOG_Time.GetVersionTimestamp();
            string jobLabel  = "Bless." + MOG_ControllerSystem.GetComputerName() + "." + timestamp;

            // Changed to a for-loop to facilitate the loop breakout box on bless failure below
            for (int assetIndex = 0; assetIndex < filenames.Count; assetIndex++)
            {
                MOG_Filename asset = filenames[assetIndex] as MOG_Filename;
                if (asset != null)
                {
                    string message = "Blessing:\n" +
                                     "     " + asset.GetAssetClassification() + "\n" +
                                     "     " + asset.GetAssetName();
                    worker.ReportProgress(assetIndex * 100 / filenames.Count, message);

                    // Try to bless each asset and report if there is a failure
                    try
                    {
                        if (MOG_ControllerInbox.BlessAsset(asset, comment, maintainLock, jobLabel, worker))
                        {
                            WorkspaceManager.MarkLocalAssetBlessed(asset, timestamp);
                        }
                        else
                        {
                            // If there are more assets to bless, ask the user how to proceed
                            if (assetIndex < filenames.Count - 1)
                            {
                                MOGPromptResult result = MOG_Prompt.PromptResponse("Bless Error", "An error has occurred while blessing " + asset.GetAssetFullName() + "\nWould you like to continue blessing assets?", MOGPromptButtons.YesNo);
                                if (result == MOGPromptResult.Yes)
                                {
                                    // continue with the next asset
                                    continue;
                                }
                                else if (result == MOGPromptResult.No)
                                {
                                    // bail
                                    return;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        // Send this Exception back to the server
                        MOG_Report.ReportMessage("Bless", ex.Message, ex.StackTrace, MOG_ALERT_LEVEL.CRITICAL);

                        // Check if we are logged in an anyone?
                        if (MOG_ControllerProject.IsUser())
                        {
                            // Send a notification to the ofending user
                            MOG_Report.ReportMessage("Bless", ex.Message, ex.StackTrace, MOG_ALERT_LEVEL.CRITICAL);
                        }
                    }
                }
            }

            // Start the job
            MOG_ControllerProject.StartJob(jobLabel);

            // Restore user if changed
            if (bUserAltered)
            {
                MOG_ControllerProject.LoginUser(loginUser);
                MOG_ControllerProject.SetActiveUserName(activeUser);
            }
        }
        public ListViewItem[] RefreshUsersBox(BackgroundWorker worker, string desiredBox, string contentsFileDirectory)
        {
            MOG_Time now = new MOG_Time();

            ArrayList assets = MOG_DBInboxAPI.InboxGetAssetListWithProperties(desiredBox, MOG_ControllerProject.GetActiveUser().GetUserName(), "", "");

            ListViewItem[] items = new ListViewItem[assets.Count];

            int x = 0;

            foreach (MOG_DBInboxProperties asset in assets)
            {
                // Create the properties for this asset
                MOG_Properties pProperties = new MOG_Properties(asset.mProperties);

                string message = "Refreshing:\n" +
                                 "     " + asset.mAsset.GetAssetClassification() + "\n" +
                                 "     " + asset.mAsset.GetAssetName();
                worker.ReportProgress(x, message);

                // Update the ListViewItem
                ListViewItem item = guiAssetManager.NewListViewItem(asset.mAsset, pProperties.Status, pProperties);
                items[x++] = item;
            }

            return(items);
        }
Exemple #11
0
        public bool SetLoginUser(string userName)
        {
            string ActiveUser, LoginUser;

            // Make sure the user specified is not a label
            if (userName.IndexOf("[") != -1)
            {
                return(false);
            }

            if (MOG_ControllerProject.LoginUser(userName) != null)
            {
                // Update tab pages
                if (mainForm.mAssetManager != null)
                {
                    ActiveUser = mainForm.mAssetManager.GetActiveUser();
                    LoginUser  = MOG_ControllerProject.GetUser().GetUserName();

                    if (MOG_ControllerProject.GetActiveUser() != null)
                    {
                        mainForm.mAssetManager.SetActiveUser(MOG_ControllerProject.GetActiveUser().GetUserName());
                        ActiveUser = MOG_ControllerProject.GetActiveUser().GetUserName();
                    }
                }
                else
                {
                    ActiveUser = "******";
                    LoginUser  = "******";
                }

                // Update tab pages
                if (mainForm.mProjectManager != null)
                {
                    mainForm.mProjectManager.Initialize();
                }

                if (mainForm.mAssetManager != null)
                {
                    mainForm.mAssetManager.LatentInitialize();

                    // Only load branches if we have already booted MOG
                    if (mainForm.mAssetManager.mLoadBranches == false)
                    {
                        mainForm.mAssetManager.mLocal.LoadUserLocalBranches();
                    }

                    // Initialize the Tasks Window
                    //mainForm.AssetManagerTaskWindow.InitializeForUser();
                }

                if (mainForm.mLibraryManager != null)
                {
                    mainForm.mLibraryManager.Initialize();
                }

                // Enable the logout button
                mainForm.AssetManagerLogoutButton.Enabled = true;

                // Also set the default active user
                SetActiveUser(userName);

                // Set the status bar
                mainForm.MOGStatusBarUserBarPanel.Text = userName;

                // Save our prefs file
                guiUserPrefs.SaveStatic_ProjectPrefs();

                return(true);
            }

            mainForm.AssetManagerLogoutButton.Enabled = false;
            return(false);
        }