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

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

Provision support class of Fixed Telecommunications Network (FTN) business model.

    1: using System;
    2: using System.Collections.Generic;
    3: using System.Data;
    4: using System.Linq;
    5:  
    6: namespace Ia.Ftn.Cl.Models.Business
    7: {
    8:     ////////////////////////////////////////////////////////////////////////////
    9:  
   10:     /// <summary publish="true">
   11:     /// Provision support class of Fixed Telecommunications Network (FTN) business model.
   12:     /// </summary>
   13:     /// 
   14:     /// <remarks> 
   15:     /// Copyright © 2019-2020 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   16:     /// </remarks> 
   17:     /// <summary/>
   18:  
   19:     ////////////////////////////////////////////////////////////////////////////
   20:  
   21:     /// <summary>
   22:     ///
   23:     /// </summary>
   24:     public class Procedure
   25:     {
   26:         private int intParameter;
   27:         //private List<string> listStringParameter;
   28:         private List<Ia.Ftn.Cl.Models.Business.Procedure.Process> list;
   29:         private Func<List<Ia.Ftn.Cl.Models.Business.Procedure.Process>> noParametersFunction;
   30:         private Func<int, List<Ia.Ftn.Cl.Models.Business.Procedure.Process>> intParameterFunction;
   31:         private Func<int, List<string>, List<Ia.Ftn.Cl.Models.Business.Procedure.Process>> intAndListStringParameterFunction;
   32:  
   33:         private Queue<Ia.Ftn.Cl.Models.Business.Procedure.Process> queue = new Queue<Ia.Ftn.Cl.Models.Business.Procedure.Process>();
   34:  
   35:         /// <summary/>
   36:         public enum ProcessType { Create, CreateRead, Read, Update, UpdateRead, Delete, DeleteRead, None };
   37:  
   38:         /// <summary/>
   39:         public int Count { get; private set; }
   40:  
   41:         /// <summary/>
   42:         public int OriginalCount { get; private set; }
   43:  
   44:         /// <summary/>
   45:         public string ProgressCounterString { get; private set; }
   46:  
   47:         /// <summary/>
   48:         public class Process
   49:         {
   50:             /// <summary/>
   51:             public string ServiceId { get; set; }
   52:  
   53:             /// <summary/>
   54:             public string Service { get; set; }
   55:  
   56:             /// <summary/>
   57:             public int Port { get; set; }
   58:  
   59:             /// <summary/>
   60:             public string AccessName { get; set; }
   61:  
   62:             /// <summary/>
   63:             public Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont Ont { get; set; }
   64:  
   65:             /// <summary/>
   66:             public Ia.Ftn.Cl.Models.Business.Huawei.Ont.FamilyType EmsOntFamilyType;
   67:  
   68:             /// <summary/>
   69:             public Ia.Ftn.Cl.Models.Huawei.EmsVoipPstnUser EmsVoipPstnUser;
   70:  
   71:             /// <summary/>
   72:             public Ia.Ftn.Cl.Models.Business.Huawei.VoipPstnUser.DidFnSnPnDn EmsVoipPstnUserDidFnSnPnDn;
   73:  
   74:             /// <summary/>
   75:             public Ia.Ftn.Cl.Models.Business.Default.Protocol Protocol;
   76:  
   77:             /// <summary/>
   78:             public Procedure.ProcessType Type { get; set; }
   79:  
   80:             /// <summary/>
   81:             public DateTime DateTime { get; set; }
   82:  
   83:             /// <summary/>
   84:             public Process()
   85:             {
   86:  
   87:             }
   88:         }
   89:  
   90:         /// <summary/>
   91:         public Queue<Process> ProcessQueue { get { return queue; } }
   92:  
   93:         /// <summary/>
   94:         public List<Process> ProcessList { get; set; }
   95:  
   96:         ////////////////////////////////////////////////////////////////////////////
   97:  
   98:         /// <summary>
   99:         ///
  100:         /// </summary>
  101:         public Procedure(Func<List<Ia.Ftn.Cl.Models.Business.Procedure.Process>> function)
  102:         {
  103:             noParametersFunction = function;
  104:         }
  105:  
  106:         ////////////////////////////////////////////////////////////////////////////
  107:  
  108:         /// <summary>
  109:         ///
  110:         /// </summary>
  111:         public Procedure(int n, Func<int, List<Ia.Ftn.Cl.Models.Business.Procedure.Process>> function)
  112:         {
  113:             intParameter = n;
  114:  
  115:             intParameterFunction = function;
  116:         }
  117:  
  118:         ////////////////////////////////////////////////////////////////////////////
  119:  
  120:         /// <summary>
  121:         ///
  122:         /// </summary>
  123:         public Procedure(int n, Func<int, List<string>, List<Ia.Ftn.Cl.Models.Business.Procedure.Process>> function)
  124:         {
  125:             intParameter = n;
  126:  
  127:             //listStringParameter = list;
  128:  
  129:             intAndListStringParameterFunction = function;
  130:         }
  131:  
  132:         ////////////////////////////////////////////////////////////////////////////
  133:  
  134:         /// <summary>
  135:         ///
  136:         /// </summary>
  137:         public Process NextProcess()
  138:         {
  139:             Process process;
  140:  
  141:             if (queue.Count == 0)
  142:             {
  143:                 if (noParametersFunction != null) list = noParametersFunction();
  144:                 else if (intParameterFunction != null) list = intParameterFunction(intParameter);
  145:                 else throw new Exception("Undefined function");
  146:  
  147:                 queue = new Queue<Process>(list); // don't shuffle
  148:  
  149:                 OriginalCount = queue.Count;
  150:             }
  151:  
  152:             if (queue.Count > 0) process = queue.Dequeue();
  153:             else process = new Process { Type = Procedure.ProcessType.None };
  154:  
  155:             ProgressCounterString = "(" + queue.Count + "/" + OriginalCount + ")";
  156:  
  157:             Count = queue.Count;
  158:  
  159:             return process;
  160:         }
  161:  
  162:         ////////////////////////////////////////////////////////////////////////////
  163:  
  164:         /// <summary>
  165:         ///
  166:         /// </summary>
  167:         public Process NextProcess(List<string> priorityServiceList)
  168:         {
  169:             Process process;
  170:  
  171:             if (queue.Count == 0)
  172:             {
  173:                 if (noParametersFunction != null) list = noParametersFunction();
  174:                 else if (intParameterFunction != null) list = intParameterFunction(intParameter);
  175:                 else if (intAndListStringParameterFunction != null) list = intAndListStringParameterFunction(intParameter, priorityServiceList);
  176:                 else throw new Exception("Undefined function");
  177:  
  178:                 queue = new Queue<Process>(list); // don't shuffle
  179:  
  180:                 OriginalCount = queue.Count;
  181:             }
  182:  
  183:             if (queue.Count > 0) process = queue.Dequeue();
  184:             else process = new Process { Type = Procedure.ProcessType.None };
  185:  
  186:             ProgressCounterString = "(" + queue.Count + "/" + OriginalCount + ")";
  187:  
  188:             Count = queue.Count;
  189:  
  190:             return process;
  191:         }
  192:  
  193:         ////////////////////////////////////////////////////////////////////////////
  194:         ////////////////////////////////////////////////////////////////////////////
  195:     }
  196:  
  197:     ////////////////////////////////////////////////////////////////////////////
  198:     ////////////////////////////////////////////////////////////////////////////   
  199: }