コード例 #1
0
        public static MenuSpecification FromFileSpecification
        (
            [NotNull] FileSpecification specification
        )
        {
            Sure.NotNull(specification, nameof(specification));

            MenuSpecification result = new MenuSpecification
            {
                Database = specification.Database,
                Path     = specification.Path,
                FileName = specification.FileName
            };

            return(result);
        }
コード例 #2
0
        public static MenuSpecification Parse
        (
            [CanBeNull] string text
        )
        {
            MenuSpecification result = new MenuSpecification
            {
                Path = IrbisPath.MasterFile
            };

            if (!ReferenceEquals(text, null) && text.Length != 0)
            {
                TextNavigator navigator = new TextNavigator(text);
                result.FileName = navigator.ReadUntil('\\');
                if (navigator.PeekChar() == '\\')
                {
                    navigator.ReadChar();
                }
                if (!navigator.IsEOF)
                {
                    string db = navigator.ReadUntil('\\');
                    if (navigator.PeekChar() == '\\')
                    {
                        navigator.ReadChar();
                    }

                    result.Database = db;

                    if (!navigator.IsEOF)
                    {
                        string sortText = navigator.GetRemainingText();
                        NumericUtility.TryParseInt32(sortText, out int sortMode);
                        result.SortMode = sortMode;
                    }
                }
            }

            return(result);
        }