PartSizeFileClr.cpp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. #include "stdafx.h"
  2. #include "PartSizeFileClr.h"
  3. namespace OTSINTERFACE {
  4. CPartSizeFileClr::CPartSizeFileClr()
  5. {
  6. m_LpPartSizeFile = new CPartSizeFilePtr(new CPartSizeFile());
  7. }
  8. CPartSizeFileClr::CPartSizeFileClr(CPartSizeFilePtr a_pPartSizeFile) // copy constructor
  9. {
  10. if (a_pPartSizeFile == nullptr)
  11. {
  12. LogErrorTrace(__FILE__, __LINE__, _T("CPartSizeFileClr: invalid pointer"));
  13. return;
  14. }
  15. m_LpPartSizeFile = new CPartSizeFilePtr(a_pPartSizeFile);
  16. }
  17. CPartSizeFileClr::~CPartSizeFileClr()
  18. {
  19. if (m_LpPartSizeFile != nullptr)
  20. {
  21. delete m_LpPartSizeFile;
  22. m_LpPartSizeFile = nullptr;
  23. }
  24. }
  25. CPartSizeFileClr::!CPartSizeFileClr()
  26. {
  27. if (m_LpPartSizeFile != nullptr)
  28. {
  29. delete m_LpPartSizeFile;
  30. m_LpPartSizeFile = nullptr;
  31. }
  32. }
  33. CPartSizeFilePtr CPartSizeFileClr::GetPartSizeFilePtr()
  34. {
  35. return *m_LpPartSizeFile;
  36. }
  37. String^ CPartSizeFileClr::GetName()
  38. {
  39. if (m_LpPartSizeFile == nullptr)
  40. {
  41. LogErrorTrace(__FILE__, __LINE__, _T("GetName: current CLR point is invalid."));
  42. return nullptr;
  43. }
  44. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  45. ASSERT(pPartSizeFile);
  46. if (!pPartSizeFile)
  47. {
  48. LogErrorTrace(__FILE__, __LINE__, _T("GetName:invalid pointer."));
  49. return nullptr;
  50. }
  51. CString sPartSize = pPartSizeFile->GetName();
  52. String^ sPartSizeClr = gcnew String(sPartSize);
  53. return sPartSizeClr;
  54. }
  55. void CPartSizeFileClr::SetName(String^ a_strName)
  56. {
  57. if (m_LpPartSizeFile == nullptr)
  58. {
  59. LogErrorTrace(__FILE__, __LINE__, _T("SetName: current CLR point is invalid."));
  60. return;
  61. }
  62. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  63. ASSERT(pPartSizeFile);
  64. if (!pPartSizeFile)
  65. {
  66. LogErrorTrace(__FILE__, __LINE__, _T("SetName:invalid pointer."));
  67. return;
  68. }
  69. ASSERT(a_strName);
  70. if (!a_strName)
  71. {
  72. LogErrorTrace(__FILE__, __LINE__, _T("SetName:invalid pointer."));
  73. return;
  74. }
  75. pPartSizeFile->SetName(a_strName);
  76. }
  77. // version
  78. String^ CPartSizeFileClr::GetVersion()
  79. {
  80. if (m_LpPartSizeFile == nullptr)
  81. {
  82. LogErrorTrace(__FILE__, __LINE__, _T("GetVersion: current CLR point is invalid."));
  83. return nullptr;
  84. }
  85. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  86. ASSERT(pPartSizeFile);
  87. if (!pPartSizeFile)
  88. {
  89. LogErrorTrace(__FILE__, __LINE__, _T("GetVersion:invalid pointer."));
  90. return nullptr;
  91. }
  92. CString sVersion = pPartSizeFile->GetVersion();
  93. String^ sVersionClr = gcnew String(sVersion);
  94. return sVersionClr;
  95. }
  96. void CPartSizeFileClr::SetVersion(String^ a_strVersion)
  97. {
  98. if (m_LpPartSizeFile == nullptr)
  99. {
  100. LogErrorTrace(__FILE__, __LINE__, _T("SetVersion: current CLR point is invalid."));
  101. return;
  102. }
  103. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  104. ASSERT(pPartSizeFile);
  105. if (!pPartSizeFile)
  106. {
  107. LogErrorTrace(__FILE__, __LINE__, _T("SetVersion:invalid pointer."));
  108. return;
  109. }
  110. ASSERT(a_strVersion);
  111. if (!a_strVersion)
  112. {
  113. LogErrorTrace(__FILE__, __LINE__, _T("SetVersion:invalid pointer."));
  114. return;
  115. }
  116. pPartSizeFile->SetVersion(a_strVersion);
  117. }
  118. List<double>^ CPartSizeFileClr::GetPartSizes()
  119. {
  120. if (m_LpPartSizeFile == nullptr)
  121. {
  122. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizes: current CLR point is invalid."));
  123. return nullptr;
  124. }
  125. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  126. ASSERT(pPartSizeFile);
  127. if (!pPartSizeFile)
  128. {
  129. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizes:invalid pointer."));
  130. return nullptr;
  131. }
  132. List<double>^ SizeListClr = gcnew List<double>();
  133. std::vector<double> SizeList = pPartSizeFile->GetSizes();
  134. for (auto dSize : SizeList)
  135. {
  136. SizeListClr->Add(dSize);
  137. }
  138. return SizeListClr;
  139. }
  140. void CPartSizeFileClr::SetPartSizes(List<double>^ a_listPartSize, bool a_bClear)
  141. {
  142. if (m_LpPartSizeFile == nullptr)
  143. {
  144. LogErrorTrace(__FILE__, __LINE__, _T("SetPartSizes: current CLR point is invalid."));
  145. return;
  146. }
  147. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  148. ASSERT(pPartSizeFile);
  149. if (!pPartSizeFile)
  150. {
  151. LogErrorTrace(__FILE__, __LINE__, _T("SetPartSizes:invalid pointer."));
  152. return;
  153. }
  154. ASSERT(a_listPartSize);
  155. if (!a_listPartSize)
  156. {
  157. LogErrorTrace(__FILE__, __LINE__, _T("SetPartSizes:invalid pointer."));
  158. return;
  159. }
  160. int nSize = a_listPartSize->Count;
  161. std::vector<double> SizeList;
  162. for (int i = 0; i < nSize; i++)
  163. {
  164. SizeList.push_back(a_listPartSize[i]);
  165. }
  166. pPartSizeFile->SetSizes(SizeList);
  167. }
  168. CPartSizeItemListClr^ CPartSizeFileClr::GetPartSizeList()
  169. {
  170. if (m_LpPartSizeFile == nullptr)
  171. {
  172. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizeList: current CLR point is invalid."));
  173. return nullptr;
  174. }
  175. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  176. ASSERT(pPartSizeFile);
  177. if (!pPartSizeFile)
  178. {
  179. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizeList:invalid pointer."));
  180. return nullptr;
  181. }
  182. CPartSizeItemListClr^ SizeListClr = gcnew CPartSizeItemListClr();
  183. CPartSizeItemList SizeItemList = pPartSizeFile->GetPartSizeList();
  184. for (auto dSizeItem : SizeItemList)
  185. {
  186. CPartSizeItemClr^ SizeItemClr = gcnew CPartSizeItemClr(dSizeItem);
  187. SizeListClr->Add(SizeItemClr);
  188. }
  189. return SizeListClr;
  190. }
  191. // part size list
  192. void CPartSizeFileClr::SetPartSizeList(CPartSizeItemListClr^ a_listPartSize, bool a_bClear)
  193. {
  194. if (m_LpPartSizeFile == nullptr)
  195. {
  196. LogErrorTrace(__FILE__, __LINE__, _T("SetPartSizeList: current CLR point is invalid."));
  197. return;
  198. }
  199. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  200. ASSERT(pPartSizeFile);
  201. if (!pPartSizeFile)
  202. {
  203. LogErrorTrace(__FILE__, __LINE__, _T("SetPartSizeList:invalid pointer."));
  204. return;
  205. }
  206. ASSERT(a_listPartSize);
  207. if (!a_listPartSize)
  208. {
  209. LogErrorTrace(__FILE__, __LINE__, _T("SetPartSizeList:invalid pointer."));
  210. return;
  211. }
  212. int nSize = a_listPartSize->Count;
  213. CPartSizeItemList SizeList;
  214. for (int i = 0; i < nSize; i++)
  215. {
  216. CPartSizeItemPtr pItem = CPartSizeItemPtr(new CPartSizeItem(a_listPartSize[i]->GetCPartSizeItemPtr().get()));
  217. SizeList.push_back(pItem);
  218. }
  219. pPartSizeFile->SetPartSizeList(SizeList, a_bClear);
  220. }
  221. CPartSizeItemClr^ CPartSizeFileClr::GetPartSizeByIndex(int a_nIndex)
  222. {
  223. if (m_LpPartSizeFile == nullptr)
  224. {
  225. return nullptr;
  226. }
  227. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  228. ASSERT(pPartSizeFile);
  229. if (!pPartSizeFile)
  230. {
  231. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizeByIndex: can't get part size file pointer."));
  232. return nullptr;
  233. }
  234. CPartSizeItemPtr pPartSizeItem = pPartSizeFile->GetPartSizeByIndex(a_nIndex);
  235. ASSERT(pPartSizeItem);
  236. if (!pPartSizeItem)
  237. {
  238. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizeByIndex: can't get part size item pointer."));
  239. return nullptr;
  240. }
  241. CPartSizeItemClr^ PartSizeItemClr = gcnew CPartSizeItemClr(pPartSizeItem);
  242. return PartSizeItemClr;
  243. }
  244. CPartSizeItemClr^ CPartSizeFileClr::GetPartSizeByName(String^ a_strPartSizeName)
  245. {
  246. if (m_LpPartSizeFile == nullptr)
  247. {
  248. return nullptr;
  249. }
  250. CPartSizeFilePtr pPartSizeFile = GetPartSizeFilePtr();
  251. ASSERT(pPartSizeFile);
  252. if (!pPartSizeFile)
  253. {
  254. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizeByName: can't get part size file pointer."));
  255. return nullptr;
  256. }
  257. CPartSizeItemPtr pPartSizeItem = pPartSizeFile->GetPartSizeByName(a_strPartSizeName);
  258. ASSERT(pPartSizeItem);
  259. if (!pPartSizeItem)
  260. {
  261. LogErrorTrace(__FILE__, __LINE__, _T("GetPartSizeByName: can't get part size item pointer."));
  262. return nullptr;
  263. }
  264. CPartSizeItemClr^ PartSizeItemClr = gcnew CPartSizeItemClr(pPartSizeItem);
  265. return PartSizeItemClr;
  266. }
  267. }