Exemplo n.º 1
0
        public static string GetSearchView(this Vault vault, string search, bool onlyDoc = true)
        {
            var viewName = "搜索:" + search + " - " + DateTime.Now.ToString("yyyyMMddHHmmss");
            var oViewNew = new View {
                Name = viewName
            };
            var searchStr = search ?? String.Empty;

            if (!String.IsNullOrWhiteSpace(searchStr))
            {
                searchStr += "*";
            }
            else
            {
                searchStr = String.Empty;
            }
            var oSc = new SearchCriteria
            {
                FullTextSearchString = searchStr,
                FullTextSearchFlags  = (MFFullTextSearchFlags.MFFullTextSearchFlagsStemming
                                        | MFFullTextSearchFlags.MFFullTextSearchFlagsLookInMetaData
                                        | MFFullTextSearchFlags.MFFullTextSearchFlagsLookInFileData
                                        | MFFullTextSearchFlags.MFFullTextSearchFlagsTypeAnyWords),
                SearchFlags = MFSearchFlags.MFSearchFlagNone,
                ExpandUI    = false
            };

            var oExpression = new Expression();

            oExpression.DataStatusValueType         = MFStatusType.MFStatusTypeDeleted;
            oExpression.DataStatusValueDataFunction = MFDataFunction.MFDataFunctionNoOp;
            var oTypedValue = new TypedValue();

            oTypedValue.SetValue(MFDataType.MFDatatypeBoolean, false);
            var oDeletedEx = new SearchConditionEx();

            oDeletedEx.SearchCondition.Set(oExpression, MFConditionType.MFConditionTypeEqual, oTypedValue);
            oDeletedEx.Enabled     = true;
            oDeletedEx.Ignored     = false;
            oDeletedEx.SpecialNULL = false;
            oSc.AdditionalConditions.Add(-1, oDeletedEx);

            SearchConditions baseConditions = null;

            if (onlyDoc)
            {
                baseConditions = new SearchConditions();
                var objTypeSc =
                    MFSearchConditionUtils.ObjType((int)MFBuiltInObjectType.MFBuiltInObjectTypeDocument);
                baseConditions.Add(-1, objTypeSc);
            }
            var oViewNew1 = vault.ViewOperations.AddTemporarySearchView(oViewNew, oSc, baseConditions);

            return(vault.ViewOperations.GetViewLocationInClient(oViewNew1.ID));
        }
Exemplo n.º 2
0
        //public static async Task<string> SearchView(Vault vault, string search)
        //{
        //    var viewName = "搜索:" + search + " - "+DateTime.Now.ToString("yyyyMMddHHmmss");
        //    var oViewNew = new View { Name = viewName };
        //    var oSc = new SearchCriteria
        //    {
        //        FullTextSearchString = search,
        //        FullTextSearchFlags = (MFFullTextSearchFlags.MFFullTextSearchFlagsStemming
        //                               | MFFullTextSearchFlags.MFFullTextSearchFlagsLookInMetaData
        //                               | MFFullTextSearchFlags.MFFullTextSearchFlagsLookInFileData
        //                               | MFFullTextSearchFlags.MFFullTextSearchFlagsTypeAnyWords),
        //        SearchFlags = MFSearchFlags.MFSearchFlagNone,
        //        ExpandUI = false
        //    };

        //    var oExpression = new Expression();
        //    oExpression.DataStatusValueType = MFStatusType.MFStatusTypeDeleted;
        //    oExpression.DataStatusValueDataFunction = MFDataFunction.MFDataFunctionNoOp;
        //    var oTypedValue = new TypedValue();
        //    oTypedValue.SetValue(MFDataType.MFDatatypeBoolean, false);
        //    var oDeletedEx = new SearchConditionEx();
        //    oDeletedEx.SearchCondition.Set(oExpression, MFConditionType.MFConditionTypeEqual, oTypedValue);
        //    oDeletedEx.Enabled = true;
        //    oDeletedEx.Ignored = false;
        //    oDeletedEx.SpecialNULL = false;
        //    oSc.AdditionalConditions.Add(-1, oDeletedEx);

        //    var oViewNew1 =
        //        await Task.Run(() => vault.ViewOperations.AddTemporarySearchView(oViewNew, oSc)).ConfigureAwait(false);
        //    return await Task.Run(() => vault.ViewOperations.GetViewLocationInClient(oViewNew1.ID)).ConfigureAwait(false);
        //}

        internal static SearchConditionEx GetDelStatusSearchEx(bool deleted)
        {
            var delExp = new Expression();

            delExp.DataStatusValueType         = MFStatusType.MFStatusTypeDeleted;
            delExp.DataStatusValueDataFunction = MFDataFunction.MFDataFunctionNoOp;
            var delTv = new TypedValue();

            delTv.SetValue(MFDataType.MFDatatypeBoolean, deleted);
            var delSearchEx = new SearchConditionEx();

            delSearchEx.SearchCondition.Set(delExp, MFConditionType.MFConditionTypeEqual, delTv);
            delSearchEx.Enabled     = true;
            delSearchEx.Ignored     = false;
            delSearchEx.SpecialNULL = false;
            return(delSearchEx);
        }