Wtx ~ Wt Extension Library
WtxLib
User.cpp
1 
2 #include <Wtx/Dbo/QueryModel.h>
3 #include <Wtx/Core/Core.h>
4 
5 #include "User.h"
6 
7 
8 Wtx::Sys::User::Item::Ptr Wtx::Sys::User::load( int userid, Wtx::Dbo::Session & session )
9 {
10  Wtx::Sys::User::Item::Ptr retVal;
11 
12  Wt::Dbo::Transaction t(session);
13  retVal =
14  session.load< Wtx::Sys::User::Item >( userid )
15  ;
16 
17  return retVal;
18 
19 }
20 
21 Wtx::Sys::User::Item::Ptr Wtx::Sys::User::find( const std::string & keyField, Wtx::Dbo::Session & session )
22 {
23  Wtx::Sys::User::Item::Ptr retVal;
24 
25  Wt::Dbo::Transaction t(session);
26  retVal =
27  session.find< Wtx::Sys::User::Item >()
28  .where( "UPPER(\"keyField\") = UPPER(?)")
29  .bind( keyField )
30  .resultValue()
31  ;
32 
33  return retVal;
34 
35 }
36 
37 Wtx::Sys::User::Item::Ptr Wtx::Sys::User::xfind( const std::string & xid, Wtx::Dbo::Session & session )
38 {
39  Wtx::Sys::User::Item::Ptr retVal;
40 
41  if( xid != "" )
42  {
43  Wt::Dbo::Transaction t(session);
44  retVal =
45  session.find< Wtx::Sys::User::Item >()
46  .where( "UPPER(xid) = UPPER(?)")
47  .bind( xid )
48  .resultValue()
49  ;
50  }
51 
52  return retVal;
53 
54 }
55 
56 Wtx::Sys::User::Item::Ptr Wtx::Sys::User::add( const std::string & keyField, const std::string & cfyField, Wtx::Dbo::Session & session )
57 {
58  Wtx::Sys::User::Item::Ptr retVal;
59 
60  Wt::Dbo::Transaction t(session);
61  retVal =
62  session.addNew< Wtx::Sys::User::Item >(keyField,cfyField)
63  ;
64 
65  return retVal;
66 
67 }
68 
69 std::shared_ptr<Wt::WAbstractItemModel> Wtx::Sys::User::getComboBoxModel( int tid, const std::string & group, Wtx::Dbo::Session & session )
70 {
71  auto retVal = std::make_shared< Wtx::Dbo::QueryModel< Wtx::Sys::User::Item::Ptr > >();
72 
73  Wt::Dbo::Transaction t(session);
74 
75  if( tid == -1 )
76  {
77  auto query =
78  session.find< Wtx::Sys::User::Item >()
79  .where("\"isActive\" is true AND (UPPER(\"cfyField\") LIKE UPPER(?) OR \"cfyField\" LIKE '%%*%%')")
80  .bind( Wt::WString("%%{1}%%").arg(group) )
81  .orderBy("\"keyField\"")
82  ;
83 
84  retVal-> setQuery( query );
85  }
86 
87  else
88  {
89  auto query =
90  session.find< Wtx::Sys::User::Item >()
91  .where("id = ?")
92  .bind( tid )
93  ;
94 
95  retVal-> setQuery( query );
96  }
97 
98  retVal-> addColumn("id");
99  retVal-> addColumn("keyField");
100 
101  return retVal;
102 }
103 
104