1: using System;
2: using System.Collections.Generic;
3: using System.Data;
4: using System.Linq;
5: using System.Text;
6: using System.Text.RegularExpressions;
7:
8: namespace Ia.Ngn.Cl.Model.Ui
9: {
10: ////////////////////////////////////////////////////////////////////////////
11:
12: /// <summary publish="true">
13: /// Report support class for Optical Fiber Network (OFN) ui model.
14: /// </summary>
15: ///
16: /// <remarks>
17: /// Copyright © 2006-2017 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
18: ///
19: /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
20: /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
21: ///
22: /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
23: /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
24: ///
25: /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
26: ///
27: /// Copyright notice: This notice may not be removed or altered from any source distribution.
28: /// </remarks>
29: public class Report
30: {
31: ////////////////////////////////////////////////////////////////////////////
32:
33: /// <summary>
34: ///
35: /// </summary>
36: public Report() { }
37:
38: ////////////////////////////////////////////////////////////////////////////
39:
40: /// <summary>
41: ///
42: /// </summary>
43: public static List<Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest> ReportWithReportOpenStatusByUserIdListAndFrameworkIdList(List<Guid> userIdList, List<int> frameworkIdList)
44: {
45: var list = Ia.Ngn.Cl.Model.Data.Report.ReportWithReportOpenStatusByUserIdListAndFrameworkIdList(userIdList, frameworkIdList);
46:
47: list = (from rasr in list
48: orderby (rasr.Access != null ? rasr.Access.AreaId : 0), (rasr.Access != null ? rasr.Access.Block : string.Empty), (rasr.Access != null ? rasr.Access.Street : string.Empty), (rasr.Access != null ? rasr.Access.PremisesOld : string.Empty) ascending
49: select rasr).ToList();
50:
51: return list;
52: }
53:
54: ////////////////////////////////////////////////////////////////////////////
55:
56: /// <summary>
57: ///
58: /// </summary>
59: public static List<Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest> ReportWithReportOpenStatusByUserIdListAndFrameworkIdList(List<Guid> userIdList, int frameworkId)
60: {
61: List<int> frameworkIdList;
62:
63: if (frameworkId == 0) frameworkIdList = new List<int> { };
64: else frameworkIdList = new List<int> { frameworkId };
65:
66: var list = ReportWithReportOpenStatusByUserIdListAndFrameworkIdList(userIdList, frameworkIdList);
67:
68: return list;
69: }
70:
71: ////////////////////////////////////////////////////////////////////////////
72: ////////////////////////////////////////////////////////////////////////////
73:
74: /// <summary>
75: ///
76: /// </summary>
77: public static DataTable ToSimpleTextDataTable(List<Guid> userIdList, int siteId, List<int> actionCheckBoxSelectedItemValueList)
78: {
79: // below:
80: DataRow dr;
81: DataTable dt;
82: List<Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest> reportAccessServiceRequestList;
83:
84: dt = new DataTable("");
85: dt.Columns.Add("Service");
86: dt.Columns.Add("Action");
87: dt.Columns.Add("Access/ONT Name");
88: dt.Columns.Add("Address");
89: dt.Columns.Add("Detail");
90: dt.Columns.Add("Note");
91: dt.Columns.Add("Contact");
92:
93: reportAccessServiceRequestList = Ia.Ngn.Cl.Model.Ui.Report.ReportWithReportOpenStatusByUserIdListAndFrameworkIdList(userIdList, siteId);
94:
95: reportAccessServiceRequestList = (from l in reportAccessServiceRequestList
96: where actionCheckBoxSelectedItemValueList.Contains(l.Report.LastReportHistory.Action)
97: select l).ToList();
98:
99: foreach (Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest reportAccessServiceRequest in reportAccessServiceRequestList)
100: {
101: dr = dt.NewRow();
102:
103: dr["Service"] = Ia.Ngn.Cl.Model.Business.Service.ServiceName(reportAccessServiceRequest.Report.Service, reportAccessServiceRequest.Report.ServiceType);
104: dr["Action"] = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ActionDictionary[reportAccessServiceRequest.Report.LastReportHistory.Action].ToString() : string.Empty;
105: dr["Access/ONT Name"] = ((reportAccessServiceRequest.Access != null) ? reportAccessServiceRequest.Access.Name : string.Empty);
106: dr["Address"] = ((reportAccessServiceRequest.Access != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Access.Address) : string.Empty);
107: dr["Detail"] = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Detail) : string.Empty;
108: dr["Note"] = (reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Note) : string.Empty;
109: dr["Contact"] = Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.Contact);
110:
111: dt.Rows.Add(dr);
112: }
113:
114: return dt;
115: }
116:
117: ////////////////////////////////////////////////////////////////////////////
118: ////////////////////////////////////////////////////////////////////////////
119:
120: /// <summary>
121: ///
122: /// </summary>
123: public static string ToSimpleTextString(List<Guid> userIdList, int siteId, List<int> actionCheckBoxSelectedItemValueList)
124: {
125: string s;
126: StringBuilder sb;
127: List<Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest> reportAccessServiceRequestList;
128:
129: s = string.Empty;
130: sb = new StringBuilder();
131:
132: reportAccessServiceRequestList = Ia.Ngn.Cl.Model.Ui.Report.ReportWithReportOpenStatusByUserIdListAndFrameworkIdList(userIdList, siteId);
133:
134: reportAccessServiceRequestList = (from l in reportAccessServiceRequestList
135: where actionCheckBoxSelectedItemValueList.Contains(l.Report.LastReportHistory.Action)
136: select l).ToList();
137:
138: foreach (Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest reportAccessServiceRequest in reportAccessServiceRequestList)
139: {
140: sb.AppendLine("Service: " + Ia.Ngn.Cl.Model.Business.Service.ServiceName(reportAccessServiceRequest.Report.Service, reportAccessServiceRequest.Report.ServiceType).Trim());
141: sb.AppendLine("Action: " + ((reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ActionDictionary[reportAccessServiceRequest.Report.LastReportHistory.Action].ToString() : string.Empty).Trim());
142: sb.AppendLine("Access: " + ((reportAccessServiceRequest.Access != null) ? reportAccessServiceRequest.Access.Name : string.Empty).Trim());
143: sb.AppendLine("Address: " + ((reportAccessServiceRequest.Access != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Access.Address) : string.Empty).Trim());
144: sb.AppendLine("Detail: " + ((reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Detail) : string.Empty).Trim());
145: sb.AppendLine("Note: " + ((reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Note) : string.Empty).Trim());
146: sb.AppendLine("Contact: " + Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.Contact).Trim());
147: sb.AppendLine(" ");
148:
149: s = Regex.Replace(sb.ToString(), @"[\r\n]{2,}", "\r\n");
150: }
151:
152: return s;
153: }
154:
155: ////////////////////////////////////////////////////////////////////////////
156:
157: /// <summary>
158: ///
159: /// </summary>
160: public static string ToSimpleQrCodeTextString(List<Guid> userIdList, int siteId)
161: {
162: string s;
163: StringBuilder sb;
164: List<Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest> reportAccessServiceRequestList;
165:
166: s = string.Empty;
167: sb = new StringBuilder();
168:
169: reportAccessServiceRequestList = Ia.Ngn.Cl.Model.Ui.Report.ReportWithReportOpenStatusByUserIdListAndFrameworkIdList(userIdList, siteId);
170:
171: foreach (Ia.Ngn.Cl.Model.Ui.ReportAccessServiceRequest reportAccessServiceRequest in reportAccessServiceRequestList)
172: {
173: sb.AppendLine(Ia.Ngn.Cl.Model.Business.Service.ServiceName(reportAccessServiceRequest.Report.Service, reportAccessServiceRequest.Report.ServiceType).Trim());
174: //sb.AppendLine(reportAccessServiceRequest.Port.ToString().Trim());
175: sb.AppendLine(((reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Ngn.Cl.Model.Data.Report.ActionDictionary[reportAccessServiceRequest.Report.LastReportHistory.Action].ToString() : string.Empty).Trim());
176: sb.AppendLine(((reportAccessServiceRequest.Access != null) ? reportAccessServiceRequest.Access.Name : string.Empty).Trim());
177: sb.AppendLine(((reportAccessServiceRequest.Access != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Access.Address) : string.Empty).Trim());
178: sb.AppendLine(((reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Detail) : string.Empty).Trim());
179: sb.AppendLine(((reportAccessServiceRequest.Report.LastReportHistory != null) ? Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.LastReportHistory.Note) : string.Empty).Trim());
180: sb.AppendLine(Ia.Cl.Model.Html.Decode(reportAccessServiceRequest.Report.Contact).Trim());
181: sb.AppendLine(" ");
182:
183: s = Regex.Replace(sb.ToString(), @"[\r\n]{2,}", "\r\n");
184: }
185:
186: return s;
187: }
188:
189: ////////////////////////////////////////////////////////////////////////////
190: ////////////////////////////////////////////////////////////////////////////
191:
192: }
193:
194: ////////////////////////////////////////////////////////////////////////////
195: ////////////////////////////////////////////////////////////////////////////
196: }