)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Skip Navigation LinksHome » Code Library » ServiceSuspensionController

Public general use code classes and xml files that we've compiled and used over the years:

Service Suspension API Controller class of Next Generation Network'a (NGN's) model.

   1:  using System;
   2:  using System.Linq;
   3:  using System.Runtime.Serialization;
   4:  using System.Web.Http;
   5:   
   6:  namespace Ia.Ngn.Cl.Model.Api.Controller
   7:  {
   8:      ////////////////////////////////////////////////////////////////////////////
   9:   
  10:      /// <summary publish="true">
  11:      /// Service Suspension API Controller class of Next Generation Network'a (NGN's) model.
  12:      /// </summary>
  13:      /// 
  14:      /// <remarks> 
  15:      /// Copyright © 2006-2021 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
  16:      ///
  17:      /// 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
  18:      /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  19:      ///
  20:      /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  21:      /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  22:      /// 
  23:      /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
  24:      /// 
  25:      /// Copyright notice: This notice may not be removed or altered from any source distribution.
  26:      /// </remarks> 
  27:      public class ServiceSuspensionController : ApiController
  28:      {
  29:          ////////////////////////////////////////////////////////////////////////////
  30:   
  31:          /// <summary>
  32:          /// 
  33:          /// </summary>
  34:          [DataContract(IsReference = true, Name = "apiAdministrationServiceSuspensionActivateSuspendResult")]
  35:          public class ServiceSuspensionActivateSuspendResult
  36:          {
  37:              /// <summary/>
  38:              [DataMember(Name = "number")]
  39:              public string Number { get; set; }
  40:   
  41:              /// <summary/>
  42:              [DataMember(Name = "isSuccessful")]
  43:              public bool IsSuccessful { get; set; }
  44:   
  45:              /// <summary/>
  46:              [DataMember(Name = "message")]
  47:              public string Message { get; set; }
  48:          }
  49:   
  50:          ////////////////////////////////////////////////////////////////////////////
  51:   
  52:          /// <summary>
  53:          /// 
  54:          /// </summary>
  55:          [DataContract(IsReference = true, Name = "apiAdministrationServiceSuspensionReadResult")]
  56:          public class ServiceSuspensionReadResult
  57:          {
  58:              /// <summary/>
  59:              [DataMember(Name = "number")]
  60:              public string Number { get; set; }
  61:   
  62:              /// <summary/>
  63:              [DataMember(Name = "isSuccessful")]
  64:              public bool IsSuccessful { get; set; }
  65:   
  66:              /// <summary/>
  67:              [DataMember(Name = "isSuspended")]
  68:              public bool IsSuspended { get; set; }
  69:   
  70:              /// <summary/>
  71:              [DataMember(Name = "serviceLastUpdated")]
  72:              public DateTime ServiceLastUpdated { get; set; }
  73:   
  74:              /// <summary/>
  75:              [DataMember(Name = "message")]
  76:              public string Message { get; set; }
  77:          }
  78:   
  79:          ////////////////////////////////////////////////////////////////////////////
  80:   
  81:          /// <summary>
  82:          /// Activate a service number
  83:          /// </summary>
  84:          /// <param name="key">Private access key</param>
  85:          /// <param name="service">Service number to activate</param>
  86:          [HttpGet]
  87:          [Route("api/administration/service-suspension/activate/{key}/{service}")]
  88:          public ServiceSuspensionActivateSuspendResult Activate(string key, string service)
  89:          {
  90:              var staffContact = (from sc in Ia.Ngn.Cl.Model.Data.Administration.StaffContactList
  91:                                  where sc.Email == "samih@bishara.com"
  92:                                  select sc).SingleOrDefault();
  93:   
  94:              if (staffContact != null && !string.IsNullOrEmpty(key))
  95:              {
  96:                  // Ia.Ngn.Cl.Model.Business.ServiceRequestService.UpdateServiceSuspension(service, false, staffContact, out result);
  97:   
  98:                  var response = new Ia.Ngn.Ofn.Wa.Api.Model.Controller.ServiceRequestAdministrativeIssueController.ReadIssueResponse();
  99:   
 100:                  response.IsAuthorized = true;
 101:   
 102:                  var serviceRequestAdministrativeIssueType = Ia.Ngn.Cl.Model.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueTypeByDisconnectionType(Ia.Ngn.Cl.Model.Business.ServiceRequestAdministrativeIssue.DisconnectionType.None);
 103:   
 104:                  response.Issue = Ia.Ngn.Cl.Model.Data.ServiceRequestAdministrativeIssue.Update(service, serviceRequestAdministrativeIssueType, out Ia.Cl.Model.Result result);
 105:   
 106:                  response.Service = service;
 107:                  response.IsSuccessful = result.IsSuccessful;
 108:                  response.IsSuspended = response.Issue != null;
 109:                  response.Updated = response.Issue != null ? response.Issue.Updated : DateTime.MinValue;
 110:                  response.Message = result.Message;
 111:   
 112:                  return new ServiceSuspensionActivateSuspendResult()
 113:                  {
 114:                      Number = response.Service,
 115:                      IsSuccessful = response.IsSuccessful,
 116:                      Message = response.Message
 117:                  };
 118:              }
 119:              else
 120:              {
 121:                  return new ServiceSuspensionActivateSuspendResult()
 122:                  {
 123:                      Number = service,
 124:                      IsSuccessful = false,
 125:                      Message = string.Empty,
 126:                  };
 127:              }
 128:          }
 129:   
 130:   
 131:          ////////////////////////////////////////////////////////////////////////////
 132:   
 133:          /// <summary>
 134:          /// Suspend a service number
 135:          /// </summary>
 136:          /// <param name="key">Private access key</param>
 137:          /// <param name="service">Service number to suspend</param>
 138:          [HttpGet]
 139:          [Route("api/administration/service-suspension/suspend/{key}/{service}")]
 140:          public ServiceSuspensionActivateSuspendResult Suspend(string key, string service)
 141:          {
 142:              var staffContact = (from sc in Ia.Ngn.Cl.Model.Data.Administration.StaffContactList
 143:                                  where sc.Email == "samih@bishara.com"
 144:                                  select sc).SingleOrDefault();
 145:   
 146:              if (staffContact != null && !string.IsNullOrEmpty(key))
 147:              {
 148:                  // Ia.Ngn.Cl.Model.Business.ServiceRequestService.UpdateServiceSuspension(service, true, staffContact, out result);
 149:   
 150:                  var response = new Ia.Ngn.Ofn.Wa.Api.Model.Controller.ServiceRequestAdministrativeIssueController.ReadIssueResponse();
 151:   
 152:                  response.IsAuthorized = true;
 153:   
 154:                  var serviceRequestAdministrativeIssueType = Ia.Ngn.Cl.Model.Business.ServiceRequestAdministrativeIssue.ServiceRequestAdministrativeIssueTypeByDisconnectionType(Ia.Ngn.Cl.Model.Business.ServiceRequestAdministrativeIssue.DisconnectionType.ProgrammedAccounting);
 155:   
 156:                  response.Issue = Ia.Ngn.Cl.Model.Data.ServiceRequestAdministrativeIssue.Update(service, serviceRequestAdministrativeIssueType, out Ia.Cl.Model.Result result);
 157:   
 158:                  response.Service = service;
 159:                  response.IsSuccessful = result.IsSuccessful;
 160:                  response.IsSuspended = response.Issue != null;
 161:                  response.Updated = response.Issue != null ? response.Issue.Updated : DateTime.MinValue;
 162:                  response.Message = result.Message;
 163:   
 164:                  return new ServiceSuspensionActivateSuspendResult()
 165:                  {
 166:                      Number = response.Service,
 167:                      IsSuccessful = response.IsSuccessful,
 168:                      Message = response.Message
 169:                  };
 170:              }
 171:              else
 172:              {
 173:                  return new ServiceSuspensionActivateSuspendResult()
 174:                  {
 175:                      Number = service,
 176:                      IsSuccessful = false,
 177:                      Message = string.Empty,
 178:                  };
 179:              }
 180:          }
 181:   
 182:          ////////////////////////////////////////////////////////////////////////////
 183:   
 184:          /// <summary>
 185:          /// Read the status of a service number. The output will indicate the update date in which data was last read and updated from the system.
 186:          /// </summary>
 187:          /// <param name="key">Private access key</param>
 188:          /// <param name="service">Service number to suspend</param>
 189:          [HttpGet]
 190:          [Route("api/administration/service-suspension/read/{key}/{service}")]
 191:          public ServiceSuspensionReadResult Read(string key, string service)
 192:          {
 193:              var staffContact = (from sc in Ia.Ngn.Cl.Model.Data.Administration.StaffContactList
 194:                                  where sc.Email == "samih@bishara.com"
 195:                                  select sc).SingleOrDefault();
 196:   
 197:              if (staffContact != null && !string.IsNullOrEmpty(key))
 198:              {
 199:                  // Ia.Ngn.Cl.Model.Business.ServiceRequestService.ReadServiceSuspension(service, staffContact, key, out isSuspended, out serviceLastUpdated, out result);
 200:   
 201:                  var response = new Ia.Ngn.Ofn.Wa.Api.Model.Controller.ServiceRequestAdministrativeIssueController.ReadIssueResponse();
 202:   
 203:                  response.IsAuthorized = true;
 204:   
 205:                  response.Issue = Ia.Ngn.Cl.Model.Data.ServiceRequestAdministrativeIssue.Read(service, out Ia.Cl.Model.Result result);
 206:                  response.Service = service;
 207:                  response.IsSuccessful = result.IsSuccessful;
 208:                  response.IsSuspended = response.Issue != null;
 209:                  response.Updated = response.Issue != null ? response.Issue.Updated : DateTime.MinValue;
 210:                  response.Message = result.Message;
 211:   
 212:                  return new ServiceSuspensionReadResult()
 213:                  {
 214:                      Number = response.Service,
 215:                      IsSuccessful = response.IsSuccessful,
 216:                      IsSuspended = response.Issue != null,
 217:                      ServiceLastUpdated = response.Issue != null ? response.Issue.Updated : DateTime.MinValue,
 218:                      Message = response.Message
 219:                  };
 220:              }
 221:              else
 222:              {
 223:                  return new ServiceSuspensionReadResult()
 224:                  {
 225:                      Number = service,
 226:                      IsSuccessful = false,
 227:                      IsSuspended = false,
 228:                      ServiceLastUpdated = DateTime.MinValue,
 229:                      Message = string.Empty,
 230:                  };
 231:              }
 232:          }
 233:   
 234:          ////////////////////////////////////////////////////////////////////////////
 235:          ////////////////////////////////////////////////////////////////////////////
 236:      }
 237:  }