Set(
_showLoading,
true
);
If(Button3_16.Text = "People",UpdateContext({_path:_appSearchPeoplePath}),UpdateContext({_path:_appSearchPath}));
Clear(col_allSearchresultsPosts);
Clear(col_allSearchresultsPeople);
Set(var_pageNumber,1);
Set(var_pageSize,3);
Set(
var_requestBody,
"{
""requests"": [
{
""entityTypes"": [
""listItem""
],
""query"": {
""queryString"": """&txtComment_3.Text&" path:\"""&_path&"\""""
},
""fields"": [
""title"",
""listItemId""
]
}
]
}"
);
Set(
_searchText,
"data:text/plain;base64," & With(
{
InputText: (var_requestBody),
AsciiTable: AddColumns(
Sequence(
2 ^ 8,
1
),
"char",
Char(Value)
),
B64ToBin: Table(
{
b64: "A",
bin: "000000"
},
{
b64: "B",
bin: "000001"
},
{
b64: "C",
bin: "000010"
},
{
b64: "D",
bin: "000011"
},
{
b64: "E",
bin: "000100"
},
{
b64: "F",
bin: "000101"
},
{
b64: "G",
bin: "000110"
},
{
b64: "H",
bin: "000111"
},
{
b64: "I",
bin: "001000"
},
{
b64: "J",
bin: "001001"
},
{
b64: "K",
bin: "001010"
},
{
b64: "L",
bin: "001011"
},
{
b64: "M",
bin: "001100"
},
{
b64: "N",
bin: "001101"
},
{
b64: "O",
bin: "001110"
},
{
b64: "P",
bin: "001111"
},
{
b64: "Q",
bin: "010000"
},
{
b64: "R",
bin: "010001"
},
{
b64: "S",
bin: "010010"
},
{
b64: "T",
bin: "010011"
},
{
b64: "U",
bin: "010100"
},
{
b64: "V",
bin: "010101"
},
{
b64: "W",
bin: "010110"
},
{
b64: "X",
bin: "010111"
},
{
b64: "Y",
bin: "011000"
},
{
b64: "Z",
bin: "011001"
},
{
b64: "a",
bin: "011010"
},
{
b64: "b",
bin: "011011"
},
{
b64: "c",
bin: "011100"
},
{
b64: "d",
bin: "011101"
},
{
b64: "e",
bin: "011110"
},
{
b64: "f",
bin: "011111"
},
{
b64: "g",
bin: "100000"
},
{
b64: "h",
bin: "100001"
},
{
b64: "i",
bin: "100010"
},
{
b64: "j",
bin: "100011"
},
{
b64: "k",
bin: "100100"
},
{
b64: "l",
bin: "100101"
},
{
b64: "m",
bin: "100110"
},
{
b64: "n",
bin: "100111"
},
{
b64: "o",
bin: "101000"
},
{
b64: "p",
bin: "101001"
},
{
b64: "q",
bin: "101010"
},
{
b64: "r",
bin: "101011"
},
{
b64: "s",
bin: "101100"
},
{
b64: "t",
bin: "101101"
},
{
b64: "u",
bin: "101110"
},
{
b64: "v",
bin: "101111"
},
{
b64: "w",
bin: "110000"
},
{
b64: "x",
bin: "110001"
},
{
b64: "y",
bin: "110010"
},
{
b64: "z",
bin: "110011"
},
{
b64: "0",
bin: "110100"
},
{
b64: "1",
bin: "110101"
},
{
b64: "2",
bin: "110110"
},
{
b64: "3",
bin: "110111"
},
{
b64: "4",
bin: "111000"
},
{
b64: "5",
bin: "111001"
},
{
b64: "6",
bin: "111010"
},
{
b64: "7",
bin: "111011"
},
{
b64: "8",
bin: "111100"
},
{
b64: "9",
bin: "111101"
},
{
b64: "+",
bin: "111110"
},
{
b64: "/",
bin: "111111"
}
)
},
With(
{
BinRep: Concat(
AddColumns(
ForAll(
Split(
InputText,
""
),
{Result: ThisRecord.Value}
),
"dec",
LookUp(
AsciiTable,
char = Result
).Value
),//Convert text to Ascii character code (decimal)
Concat(
Sequence(
8,
8,
-1
),
Text(
If(
And(
Mod(
dec,
Power(
2,
Value
)
) >= Power(
2,
Value - 1
),
Mod(
dec,
Power(
2,
Value
)
) < Power(
2,
Value
)
),
1,
0
)
)
) & "",
""
)//Convert decimal to binary
},
With(
{
b64string: Concat(
Sequence(
RoundUp(
Len(BinRep) / 6,
0
),
0
),
LookUp(
B64ToBin,
bin = Mid(
BinRep & Left(
"000000",
6 - Mod(
Len(BinRep),
6
)
),
6 * Value + 1,
6
)//Left("000000"....) is padding right with zero
).b64 & "",
""
)
},
b64string & Left(
"====",
Mod(
4 - Mod(
Len(b64string),
4
),
4
)
)//Convert binary to base64
)
)
)
);
Set(
_searchResults,
Office365Groups.HttpRequest(
_appSearchEndPoint,
"POST",
_searchText
)
);
Set(_searchResultUnTyped, Table(Index(Table(Index(Table(_searchResults.value),1).Value.hitsContainers),1).Value.hits));
ClearCollect(_searchResultCollection, ForAll( _searchResultUnTyped,
{ ID : Value(ThisRecord.Value.resource.fields.listItemId),
Title : Text(ThisRecord.Value.resource.fields.title)
}));
//Clear the collection first
Clear(CollectionWithSequenceNumbers);
//For each item in the original collection, add a sequence number
ForAll(_searchResultCollection,
Collect(CollectionWithSequenceNumbers,
Last(FirstN(AddColumns(_searchResultCollection,"SequenceNumber",CountRows(CollectionWithSequenceNumbers)+1),CountRows(CollectionWithSequenceNumbers)+1)))
);
//ClearCollect(_searchResultCollectionWithSequence,Filter(CollectionWithSequenceNumbers,Value(ID) >= Value(var_pageNumber) And Value(ID) <= Value(var_pageNumber)*Value(var_pageSize)));
ClearCollect(_searchResultCollectionWithSequence,If(Value(var_pageNumber) = 1,FirstN(_searchResultCollection, var_pageSize),FirstN(LastN(_searchResultCollection,CountRows(_searchResultCollection) - Value(var_pageNumber)*Value(var_pageSize)),var_pageSize)));
If(Button3_16.Text = "Posts",ForAll(_searchResultCollectionWithSequence As SR,
Collect(col_allSearchresultsPosts,
Filter(Posts, PostID = SR.Title))
),ForAll(_searchResultCollectionWithSequence As SR,
Collect(col_allSearchresultsPeople,
Filter(Employees, Title = SR.Title))
));
/*ClearCollect(_searchResultCollection, ForAll( Table( ParseJSON( _searchResults ) ), { ChangedBy: Text(ThisRecord.Value.ChangedBy), Comments: Text(ThisRecord.Value.Comments), DateOfChange: DateTimeValue(ThisRecord.Value.DateOfChange), Status : Text(ThisRecord.Value.Status) } ))*/
Set(
_showLoading,
false
);
No comments:
Post a Comment