コード例 #1
0
        private static bool TestCondition(Condition condition, FileSystemInfo fileSystemInfo)
        {
            var allowedStatuses = condition.Properties["state"].Split(';');
            if (allowedStatuses.Length == 0 || (allowedStatuses.Length == 1 && allowedStatuses[0].Length == 0))
            {
                return true;
            }

            var status = fileSystemInfo.CanBeVersionControlledItem()
                ? OverlayIconManager.GetStatus(fileSystemInfo)
                : StatusKind.Unversioned;

            /*if (status == "Unversioned") {
                PropertyDictionary pd = SvnClient.Instance.Client.PropGet("svn:ignore", Path.GetDirectoryName(fileName), Revision.Working, Recurse.None);
                if (pd != null) {
                    string shortFileName = Path.GetFileName(fileName);
                    foreach (Property p in pd.Values) {
                        using (StreamReader r = new StreamReader(new MemoryStream(p.Data))) {
                            string line;
                            while ((line = r.ReadLine()) != null) {
                                if (string.Equals(line, shortFileName, StringComparison.OrdinalIgnoreCase)) {
                                    status = "Ignored";
                                    break;
                                }
                            }
                        }
                    }
                }
            }*/

            //LoggingService.Debug("Status of " + fileName + " is " + status);
            return Array.IndexOf(allowedStatuses, status.ToString()) >= 0;
        }