)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Home » Code Library » AgcfGatewayRecord (Ia.Ftn.Cl.Models.Business.Nokia)

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

AGCF Gateway Records support class for Nokia's Fixed Telecommunications Network (FTN) business model.

    1: using System;
    2: using System.Collections.Generic;
    3: using System.Linq;
    4:  
    5: namespace Ia.Ftn.Cl.Models.Business.Nokia
    6: {
    7:     ////////////////////////////////////////////////////////////////////////////
    8:  
    9:     /// <summary publish="true">
   10:     /// AGCF Gateway Records support class for Nokia's Fixed Telecommunications Network (FTN) business model.
   11:     /// </summary>
   12:     /// 
   13:     /// <remarks> 
   14:     /// Copyright � 2014-2017 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   15:     /// </remarks> 
   16:     public class AgcfGatewayRecord
   17:     {
   18:         public AgcfGatewayRecord() { }
   19:  
   20:         ////////////////////////////////////////////////////////////////////////////
   21:  
   22:         /// <summary>
   23:         ///
   24:         /// </summary>
   25:         public static void CreateRandomGatewayIdForAccessName(Ia.Ftn.Cl.Models.Client.Nokia.Ims nokiaIms, string accessName, out Ia.Cl.Models.Result result)
   26:         {
   27:             result = new Ia.Cl.Models.Result();
   28:  
   29:             if (!string.IsNullOrEmpty(accessName))
   30:             {
   31:                 //var nddOnt = Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessNameToOntDictionary.ContainsKey(accessName) ? Ia.Ftn.Cl.Model.Data.NetworkDesignDocument.OntAccessNameToOntDictionary[accessName] : null;
   32:                 var nddOnt = Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntByAccessName(accessName);
   33:  
   34:                 if (nddOnt != null)
   35:                 {
   36:                     var gwId = Ia.Ftn.Cl.Models.Business.Nokia.AgcfGatewayRecord.RandomUnusedGwId();
   37:  
   38:                     Ia.Ftn.Cl.Models.Data.Nokia.Ims.CreateAgcfGatewayRecordForGwId(nokiaIms, gwId, nddOnt, out string createResult);
   39:  
   40:                     Ia.Ftn.Cl.Models.Data.Nokia.Ims.ReadUpdateAgcfGatewayRecordAndAgcfEndpointListAndSubPartyAndSubscriberAndServiceForGwId(nokiaIms, gwId, out string readResult);
   41:  
   42:                     result.AddSuccess("Access name: " + nddOnt.Access.Name + ", gwId: " + gwId + ", createResult: " + createResult + ", readResult: " + readResult);
   43:                 }
   44:                 else
   45:                 {
   46:                     result.AddError("NDD ONT is null, does not exist for access: " + accessName);
   47:                 }
   48:             }
   49:             else
   50:             {
   51:                 result.AddError("AccessName is null or empty");
   52:             }
   53:         }
   54:  
   55:         ////////////////////////////////////////////////////////////////////////////
   56:  
   57:         /// <summary>
   58:         ///
   59:         /// </summary>
   60:         public static void ReadGatewayId(Ia.Ftn.Cl.Models.Client.Nokia.Ims nokiaIms, string gatewayId, out string result)
   61:         {
   62:             int gwId;
   63:  
   64:             if (!string.IsNullOrEmpty(gatewayId))
   65:             {
   66:                 gatewayId = gatewayId.Trim();
   67:  
   68:                 if (int.TryParse(gatewayId, out int i))
   69:                 {
   70:                     gwId = i;
   71:  
   72:                     Ia.Ftn.Cl.Models.Data.Nokia.Ims.ReadUpdateAgcfGatewayRecordAndAgcfEndpointListAndSubPartyAndSubscriberAndServiceForGwId(nokiaIms/*, null*/, gwId, out result);
   73:                 }
   74:                 else
   75:                 {
   76:                     result = "error: input text is not in int format. ";
   77:                 }
   78:             }
   79:             else
   80:             {
   81:                 result = "error: input text is null or empty. ";
   82:             }
   83:         }
   84:  
   85:         ////////////////////////////////////////////////////////////////////////////
   86:  
   87:         /// <summary>
   88:         ///
   89:         /// </summary>
   90:         public static void DeleteGatewayId(Ia.Ftn.Cl.Models.Client.Nokia.Ims nokiaIms, string gatewayId, out string result)
   91:         {
   92:             int gwId;
   93:             Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord agcfGatewayRecord;
   94:  
   95:             if (!string.IsNullOrEmpty(gatewayId))
   96:             {
   97:                 gatewayId = gatewayId.Trim();
   98:  
   99:                 if (int.TryParse(gatewayId, out int i))
  100:                 {
  101:                     gwId = i;
  102:  
  103:                     agcfGatewayRecord = Ia.Ftn.Cl.Models.Data.Nokia.AgcfGatewayRecord.ReadByGwId(gwId);
  104:  
  105:                     if (agcfGatewayRecord != null)
  106:                     {
  107:                         Ia.Ftn.Cl.Models.Data.Nokia.Ims.DeleteAgcfGatewayRecordForGwId(nokiaIms, agcfGatewayRecord, out string deleteResult);
  108:  
  109:                         Ia.Ftn.Cl.Models.Data.Nokia.Ims.ReadUpdateAgcfGatewayRecordAndAgcfEndpointListAndSubPartyAndSubscriberAndServiceForGwId(nokiaIms/*, null*/, agcfGatewayRecord.GwId, out string readResult);
  110:  
  111:                         result = "gwId: " + agcfGatewayRecord.GwId + ", deleteResult: " + deleteResult + ", readResult: " + readResult;
  112:                     }
  113:                     else result = "gwId: " + gwId + ", agcfGatewayRecord is null. ";
  114:                 }
  115:                 else result = "error: input text is not in int format. ";
  116:             }
  117:             else result = "error: input text is null or empty. ";
  118:         }
  119:  
  120:         ////////////////////////////////////////////////////////////////////////////
  121:  
  122:         /// <summary>
  123:         ///
  124:         /// </summary>
  125:         public static int RandomUnusedGwId()
  126:         {
  127:             int randomGwId;
  128:             Random r;
  129:             List<int> unusedGwIdList;
  130:  
  131:             r = new Random();
  132:             unusedGwIdList = Ia.Ftn.Cl.Models.Data.Nokia.AgcfGatewayRecord.ReadUnusedGwIdList();
  133:  
  134:             randomGwId = unusedGwIdList[r.Next(unusedGwIdList.Count)];
  135:  
  136:             return randomGwId;
  137:         }
  138:  
  139:         ////////////////////////////////////////////////////////////////////////////
  140:  
  141:         /// <summary>
  142:         ///
  143:         /// </summary>
  144:         public static Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord ParseFromDictionary(Dictionary<string, string> parameterDictionary)
  145:         {
  146:             int i, gwId, tableId;
  147:             long l;
  148:             Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord agcfGatewayRecord;
  149:  
  150:             agcfGatewayRecord = new Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord();
  151:  
  152:             gwId = int.Parse(parameterDictionary["GwId"].ToString());
  153:             tableId = int.Parse(parameterDictionary["TableId"].ToString());
  154:  
  155:             agcfGatewayRecord.Id = Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord.AgcfGatewayRecordId(tableId, gwId);
  156:  
  157:             agcfGatewayRecord.NgcfAgcfGatewayRecordAid = parameterDictionary["NgcfAgcfGatewayRecordAid"].ToString();
  158:             agcfGatewayRecord.GwId = gwId;
  159:             agcfGatewayRecord.TableId = tableId;
  160:  
  161:             agcfGatewayRecord.AgcfSipIaPort = parameterDictionary["AgcfSipIaPort"].ToString();
  162:             agcfGatewayRecord.ConnectionType = (parameterDictionary["ConnectionType"].ToString() == "UDP/IP") ? true : false;
  163:             agcfGatewayRecord.ContextAudits = (parameterDictionary["ContextAudits"].ToString() == "None") ? true : false;
  164:             agcfGatewayRecord.GwDigitMapId = int.TryParse(parameterDictionary["GwDigitMapId"].ToString(), out i) ? i : 0;
  165:             agcfGatewayRecord.EnableChannelStatusAudits = Convert.ToBoolean(parameterDictionary["EnableChannelStatusAudits"].ToString());
  166:             agcfGatewayRecord.GwUserId = parameterDictionary["GwUserId"].ToString();
  167:             agcfGatewayRecord.GwDomain = parameterDictionary["GwDomain"].ToString();
  168:             agcfGatewayRecord.GwName = parameterDictionary["GwName"].ToString();
  169:             agcfGatewayRecord.GwPrivId = parameterDictionary["GwPrivId"].ToString();
  170:             agcfGatewayRecord.IP1 = parameterDictionary["IP1"].ToString();
  171:             agcfGatewayRecord.IP2 = parameterDictionary["IP2"].ToString();
  172:             agcfGatewayRecord.LocalTermTypePrefix = parameterDictionary["LocalTermTypePrefix"].ToString();
  173:             agcfGatewayRecord.LocalTermTypeAnalogPrefix = parameterDictionary["LocalTermTypeAnalogPrefix"].ToString();
  174:             agcfGatewayRecord.IsLocalTermTypeTDMAnalog = Convert.ToBoolean(parameterDictionary["IsLocalTermTypeTDMAnalog"].ToString());
  175:             agcfGatewayRecord.NetTermTypePrefix = parameterDictionary["NetTermTypePrefix"].ToString();
  176:             agcfGatewayRecord.IsNetTermTypeRTPUDP = Convert.ToBoolean(parameterDictionary["IsNetTermTypeRTPUDP"].ToString());
  177:             agcfGatewayRecord.PhysicalTermIdScheme = parameterDictionary["PhysicalTermIdScheme"].ToString();
  178:             agcfGatewayRecord.SendCompactMessages = Convert.ToBoolean(parameterDictionary["SendCompactMessages"].ToString());
  179:             agcfGatewayRecord.SendEphemeralPrefix = Convert.ToBoolean(parameterDictionary["SendEphemeralPrefix"].ToString());
  180:             agcfGatewayRecord.UdpPort = int.TryParse(parameterDictionary["UdpPort"].ToString(), out i) ? i : 0;
  181:             agcfGatewayRecord.GwVariantId = int.TryParse(parameterDictionary["GwVariantId"].ToString(), out i) ? i : 0;
  182:             agcfGatewayRecord.AreaId = int.TryParse(parameterDictionary["AreaId"].ToString(), out i) ? i : 0;
  183:             agcfGatewayRecord.ComfortNoise = Convert.ToBoolean(parameterDictionary["ComfortNoise"].ToString());
  184:             agcfGatewayRecord.Dtmf = Convert.ToBoolean(parameterDictionary["Dtmf"].ToString());
  185:             agcfGatewayRecord.FaxEvents = Convert.ToBoolean(parameterDictionary["FaxEvents"].ToString());
  186:             agcfGatewayRecord.ModemEvents = Convert.ToBoolean(parameterDictionary["ModemEvents"].ToString());
  187:             agcfGatewayRecord.TextTelephonyEvents = Convert.ToBoolean(parameterDictionary["TextTelephonyEvents"].ToString());
  188:             agcfGatewayRecord.AllCodecDataStr = parameterDictionary["AllCodecDataStr"].ToString();
  189:             agcfGatewayRecord.AgwIuaIpAddress = parameterDictionary["AgwIuaIpAddress"].ToString();
  190:             agcfGatewayRecord.AgwIuaSctpPort = int.TryParse(parameterDictionary["AgwIuaSctpPort"].ToString(), out i) ? i : 0;
  191:             agcfGatewayRecord.AgcfLocalSctpPort = int.TryParse(parameterDictionary["AgcfLocalSctpPort"].ToString(), out i) ? i : 0;
  192:             agcfGatewayRecord.SctpProfile = int.TryParse(parameterDictionary["SctpProfile"].ToString(), out i) ? i : 0;
  193:             agcfGatewayRecord.IuaIIDMapScheme = parameterDictionary["IuaIIDMapScheme"].ToString();
  194:             agcfGatewayRecord.LocalTermTypeIsdnPrefix = parameterDictionary["LocalTermTypeIsdnPrefix"].ToString();
  195:             agcfGatewayRecord.AuditAllActiveIsdnCalls = Convert.ToBoolean(parameterDictionary["AuditAllActiveIsdnCalls"].ToString());
  196:             agcfGatewayRecord.MateSite = int.TryParse(parameterDictionary["MateSite"].ToString(), out i) ? i : 0;
  197:  
  198:             agcfGatewayRecord.IsPrimary = Convert.ToBoolean(parameterDictionary["IsPrimary"].ToString());
  199:             agcfGatewayRecord.MateExternalIPAddr = parameterDictionary["MateExternalIPAddr"].ToString();
  200:  
  201:             agcfGatewayRecord.MateExternalIPAddr = Ia.Ftn.Cl.Models.Business.Nokia.Ims.AssigneCorrectMateExternalIPAddrForIsPrimary(agcfGatewayRecord.IsPrimary, agcfGatewayRecord.MateExternalIPAddr);
  202:  
  203:  
  204:             agcfGatewayRecord.AddtionalDigitMapList = parameterDictionary["AddtionalDigitMapList"].ToString();
  205:             agcfGatewayRecord.AuthTimer = int.TryParse(parameterDictionary["AuthTimer"].ToString(), out i) ? i : 0;
  206:             agcfGatewayRecord.SharedBasNumber = long.TryParse(parameterDictionary["SharedBasNumber"].ToString(), out l) ? l : 0;
  207:             agcfGatewayRecord.SharedPriNumber = int.TryParse(parameterDictionary["SharedPriNumber"].ToString(), out i) ? i : 0;
  208:             agcfGatewayRecord.MgID = parameterDictionary["MgID"].ToString();
  209:             agcfGatewayRecord.EnnableMD5DigAuteh = Convert.ToBoolean(parameterDictionary["EnnableMD5DigAuteh"].ToString());
  210:             agcfGatewayRecord.ChannelAudits = int.TryParse(parameterDictionary["ChannelAudits"].ToString(), out i) ? i : 0;
  211:             agcfGatewayRecord.GroupId = int.TryParse(parameterDictionary["GroupId"].ToString(), out i) ? i : 0;
  212:             agcfGatewayRecord.AgcfGateWayType = int.TryParse(parameterDictionary["AgcfGateWayType"].ToString(), out i) ? i : 0;
  213:  
  214:             agcfGatewayRecord.Created = DateTime.UtcNow.AddHours(3);
  215:             agcfGatewayRecord.Updated = DateTime.UtcNow.AddHours(3);
  216:  
  217:             return agcfGatewayRecord;
  218:         }
  219:  
  220:         ////////////////////////////////////////////////////////////////////////////
  221:         ////////////////////////////////////////////////////////////////////////////
  222:     }
  223:  
  224:     ////////////////////////////////////////////////////////////////////////////
  225:     ////////////////////////////////////////////////////////////////////////////
  226: }