1 #include "../include/board.h"
\r
2 #include "../include/stringfunctions.h"
\r
12 m_boarddescription="";
\r
13 m_datecreated.Set(1970,1,1);
\r
17 m_savereceivedmessages=true;
\r
21 Board::Board(const long boardid)
\r
26 Board::Board(const std::string &boardname)
\r
31 Board::Board(const long boardid, const std::string &boardname, const std::string &boarddescription, const std::string datecreated, const long lowmessageid, const long highmessageid, const long messagecount, const bool savereceivedmessages, const std::string &addedmethod)
\r
34 m_boardname=boardname;
\r
35 m_boarddescription=boarddescription;
\r
36 m_lowmessageid=lowmessageid;
\r
37 m_highmessageid=highmessageid;
\r
38 m_messagecount=messagecount;
\r
39 m_savereceivedmessages=savereceivedmessages;
\r
40 m_addedmethod=addedmethod;
\r
42 SetDateFromString(datecreated);
\r
47 const bool Board::Load(const long boardid)
\r
49 // clear current values
\r
52 m_boarddescription="";
\r
53 m_datecreated.Set(1970,1,1);
\r
59 SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardID=?;");
\r
63 if(st.RowReturned())
\r
66 std::string tempstr;
\r
67 std::vector<std::string> dateparts;
\r
70 st.ResultText(0,m_boardname);
\r
71 st.ResultText(1,m_boarddescription);
\r
72 st.ResultText(2,tempstr);
\r
74 SetDateFromString(tempstr);
\r
77 st.ResultInt(3,tempint);
\r
78 m_highmessageid=tempint;
\r
80 st.ResultInt(4,tempint);
\r
81 m_lowmessageid=tempint;
\r
83 st.ResultInt(5,tempint);
\r
84 m_messagecount=tempint;
\r
85 st.ResultText(6,tempstr);
\r
88 m_savereceivedmessages=true;
\r
92 m_savereceivedmessages=false;
\r
94 st.ResultText(7,m_addedmethod);
\r
104 const bool Board::Load(const std::string &boardname) // same as loading form boardid - but using name
\r
107 SQLite3DB::Statement st=m_db->Prepare("SELECT BoardID FROM tblBoard WHERE BoardName=?;");
\r
108 st.Bind(0,boardname);
\r
110 if(st.RowReturned())
\r
113 st.ResultInt(0,tempint);
\r
114 return Load(tempint);
\r
122 // clear current values
\r
125 m_boarddescription="";
\r
126 m_datecreated.Set(1970,1,1);
\r
133 SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, tblBoard.BoardID, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardName=?;");
\r
134 st.Bind(0,boardname);
\r
137 if(st.RowReturned())
\r
140 std::string tempstr;
\r
141 std::vector<std::string> dateparts;
\r
143 st.ResultText(0,m_boardname);
\r
144 st.ResultText(1,m_boarddescription);
\r
145 st.ResultText(2,tempstr);
\r
146 st.ResultInt(7,tempint); // boardid
\r
149 SetDateFromString(tempstr);
\r
152 st.ResultInt(3,tempint);
\r
153 m_highmessageid=tempint;
\r
155 st.ResultInt(4,tempint);
\r
156 m_lowmessageid=tempint;
\r
158 st.ResultInt(5,tempint);
\r
159 m_messagecount=tempint;
\r
160 st.ResultText(6,tempstr);
\r
161 if(tempstr=="true")
\r
163 m_savereceivedmessages=true;
\r
167 m_savereceivedmessages=false;
\r
169 st.ResultText(8,m_addedmethod);
\r
180 void Board::SetDateFromString(const std::string &datestring)
\r
182 // break out date created - date should be in format yyyy-mm-dd HH:MM:SS, so we split on "-", " " (space), and ":"
\r
184 std::vector<std::string> dateparts;
\r
185 StringFunctions::SplitMultiple(datestring,"- :",dateparts);
\r
186 if(dateparts.size()>0)
\r
188 StringFunctions::Convert(dateparts[0],tempint);
\r
189 m_datecreated.SetYear(tempint);
\r
191 if(dateparts.size()>1)
\r
193 StringFunctions::Convert(dateparts[1],tempint);
\r
194 m_datecreated.SetMonth(tempint);
\r
196 if(dateparts.size()>2)
\r
198 StringFunctions::Convert(dateparts[2],tempint);
\r
199 m_datecreated.SetDay(tempint);
\r
201 if(dateparts.size()>3)
\r
203 StringFunctions::Convert(dateparts[3],tempint);
\r
204 m_datecreated.SetHour(tempint);
\r
206 if(dateparts.size()>4)
\r
208 StringFunctions::Convert(dateparts[4],tempint);
\r
209 m_datecreated.SetMinute(tempint);
\r
211 if(dateparts.size()>5)
\r
213 StringFunctions::Convert(dateparts[5],tempint);
\r
214 m_datecreated.SetSecond(tempint);
\r