1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#include <sstream>
#include "CristallValues.h"
using namespace std;
using namespace Cristall;
int CristallValues::size()
{
return Summary.size();
}
string CristallValues::getElement(int Id, Cristall::DataType Data)
{
switch (Data)
{
case DataType::Label:
return Summary[Id].Label;
break;
case DataType::Value:
return Summary[Id].Value;
break;
}
return Summary[Id].Label;
}
void CristallValues::loadData(const std::vector<CristallValuesModel>& Data)
{
Summary = Data;
}
void CristallValues::addElement(std::string Label, std::string Value, ModelReciv Reciv)
{
CristallValuesModel Model(Label, Reciv );
if (!Value.empty())
Model.setValue(Value);
Summary.push_back(Model);
}
void CristallValues::addElement(std::string Label, ModelReciv Reciv)
{
addElement(Label, "", Reciv);
}
CristallValues CristallValues::search(std::string What, Cristall::DataType Data, Cristall::SearchType How)
{
CristallValues Result;
int Index = 0;
for (auto i : Summary)
{
if ((getElement(Index, Data) == What && How == SearchType::FullText)
|| ((int)getElement(Index, Data).find(What) > -1 && How == SearchType::Inside))
Result.addElement(getElement(Index, DataType::Label), getElement(Index, DataType::Value), ModelReciv::Normal);
else if ((getElement(Index, Data) == What || (int)getElement(Index, Data).find(What) > -1) && How == SearchType::Any)
Result.addElement(getElement(Index, DataType::Label), getElement(Index, DataType::Value), ModelReciv::Normal);
Index++;
}
return Result;
}
void CristallValues::clear()
{
Summary.erase(Summary.begin(), Summary.end());
}
|