AGS.Editor.AGSEditor.AttemptToGetWriteAccess C# (CSharp) Метод

AttemptToGetWriteAccess() публичный Метод

public AttemptToGetWriteAccess ( IList fileNames ) : bool
fileNames IList
Результат bool
        public bool AttemptToGetWriteAccess(IList<string> fileNames)
        {
            List<string> fileNamesWithFullPaths = new List<string>();
            foreach (string fileName in fileNames)
            {
                if (File.Exists(fileName))
                {
                    fileNamesWithFullPaths.Add(Path.GetFullPath(fileName));
                }
            }

            try
            {
                if (fileNamesWithFullPaths.Count > 0)
                {
                    SourceControlFileStatus[] statuses = Factory.AGSEditor.SourceControlProvider.GetFileStatuses(fileNamesWithFullPaths.ToArray());
                    List<string> filesToCheckOut = new List<string>();
                    for (int i = 0; i < statuses.Length; i++)
                    {
                        if (((statuses[i] & SourceControlFileStatus.Controlled) != 0) &&
                            ((statuses[i] & SourceControlFileStatus.Deleted) == 0) &&
                            ((statuses[i] & SourceControlFileStatus.CheckedOutByMe) == 0))
                        {
                            filesToCheckOut.Add(fileNamesWithFullPaths[i]);
                        }
                    }

                    if (filesToCheckOut.Count > 0)
                    {
                        if (!Factory.GUIController.ShowCheckOutDialog(filesToCheckOut))
                        {
                            return false;
                        }
                    }
                }
            }
            catch (SourceControlException ex)
            {
                Factory.GUIController.ShowMessage("Unable to check source control status: " + ex.SccErrorMessage, MessageBoxIcon.Warning);
                return false;
            }

            bool success = true;
            foreach (string fileName in fileNamesWithFullPaths)
            {
                success = success & CheckFileSystemWriteAccess(fileName);
            }
            return success;
        }

Same methods

AGSEditor::AttemptToGetWriteAccess ( string fileName ) : bool

Usage Example

Пример #1
0
 private void scintilla_AttemptModify(ref bool allowModify)
 {
     if (AttemptToEditScript != null)
     {
         AttemptToEditScript(ref allowModify);
         if (!allowModify)
         {
             return;
         }
     }
     if (!_agsEditor.AttemptToGetWriteAccess(_script.FileName))
     {
         allowModify = false;
     }
 }