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

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

AGCF Endpoint support class for Nokia data model.

    1: using Microsoft.EntityFrameworkCore;
    2: using System;
    3: using System.Collections.Generic;
    4: using System.Linq;
    5:  
    6: namespace Ia.Ftn.Cl.Models.Data.Nokia
    7: {
    8:     ////////////////////////////////////////////////////////////////////////////
    9:  
   10:     /// <summary publish="true">
   11:     /// AGCF Endpoint support class for Nokia data model.
   12:     /// </summary>
   13:     /// 
   14:     /// <remarks> 
   15:     /// Copyright � 2014-2017 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   16:     /// </remarks> 
   17:     public class AgcfEndpoint
   18:     {
   19:         public AgcfEndpoint() { }
   20:  
   21:         ////////////////////////////////////////////////////////////////////////////
   22:  
   23:         /// <summary>
   24:         ///
   25:         /// </summary>
   26:         public static bool Create(Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint agcfEndpoint, out string result)
   27:         {
   28:             bool b;
   29:  
   30:             b = false;
   31:             result = string.Empty;
   32:  
   33:             using (var db = new Ia.Ftn.Cl.Db())
   34:             {
   35:                 agcfEndpoint.Created = agcfEndpoint.Updated = DateTime.UtcNow.AddHours(3);
   36:  
   37:                 db.AgcfEndpoints.Add(agcfEndpoint);
   38:                 db.SaveChanges();
   39:  
   40:                 b = true;
   41:             }
   42:  
   43:             return b;
   44:         }
   45:  
   46:         ////////////////////////////////////////////////////////////////////////////
   47:  
   48:         /// <summary>
   49:         ///
   50:         /// </summary>
   51:         public static Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint Read(string id)
   52:         {
   53:             Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint agcfEndpoint;
   54:  
   55:             using (var db = new Ia.Ftn.Cl.Db())
   56:             {
   57:                 agcfEndpoint = (from ep in db.AgcfEndpoints where ep.Id == id select ep).SingleOrDefault();
   58:             }
   59:  
   60:             return agcfEndpoint;
   61:         }
   62:  
   63:         ////////////////////////////////////////////////////////////////////////////
   64:  
   65:         /// <summary>
   66:         ///
   67:         /// </summary>
   68:         public static Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint ReadbyGwId(int gwId)
   69:         {
   70:             Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint agcfEndpoint;
   71:  
   72:             using (var db = new Ia.Ftn.Cl.Db())
   73:             {
   74:                 agcfEndpoint = (from ep in db.AgcfEndpoints where ep.GwId == gwId select ep).SingleOrDefault();
   75:             }
   76:  
   77:             return agcfEndpoint;
   78:         }
   79:  
   80:         ////////////////////////////////////////////////////////////////////////////
   81:  
   82:         /// <summary>
   83:         ///
   84:         /// </summary>
   85:         public static Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint ReadWithAgcfGatewayRecord(string id)
   86:         {
   87:             Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint agcfEndpoint;
   88:  
   89:             using (var db = new Ia.Ftn.Cl.Db())
   90:             {
   91:                 agcfEndpoint = (from ep in db.AgcfEndpoints where ep.Id == id select ep).Include(u => u.AgcfGatewayRecord).SingleOrDefault();
   92:             }
   93:  
   94:             return agcfEndpoint;
   95:         }
   96:  
   97:         ////////////////////////////////////////////////////////////////////////////
   98:  
   99:         /// <summary>
  100:         ///
  101:         /// </summary>
  102:         public static List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> ReadList()
  103:         {
  104:             List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> agcfEndpointList;
  105:  
  106:             using (var db = new Ia.Ftn.Cl.Db())
  107:             {
  108:                 agcfEndpointList = (from ep in db.AgcfEndpoints select ep).ToList();
  109:             }
  110:  
  111:             return agcfEndpointList;
  112:         }
  113:  
  114:         ////////////////////////////////////////////////////////////////////////////
  115:  
  116:         /// <summary>
  117:         ///
  118:         /// </summary>
  119:         public static bool Update(Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint agcfEndpoint, out string result)
  120:         {
  121:             bool b;
  122:  
  123:             b = false;
  124:             result = string.Empty;
  125:  
  126:             using (var db = new Ia.Ftn.Cl.Db())
  127:             {
  128:                 agcfEndpoint = (from ep in db.AgcfEndpoints where ep.Id == agcfEndpoint.Id select ep).SingleOrDefault();
  129:  
  130:                 agcfEndpoint.Updated = DateTime.UtcNow.AddHours(3);
  131:  
  132:                 db.AgcfEndpoints.Attach(agcfEndpoint);
  133:  
  134:                 db.Entry(agcfEndpoint).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
  135:                 db.SaveChanges();
  136:  
  137:                 b = true;
  138:             }
  139:  
  140:             return b;
  141:         }
  142:  
  143:         ////////////////////////////////////////////////////////////////////////////
  144:  
  145:         /// <summary>
  146:         ///
  147:         /// </summary>
  148:         public static bool Delete(string id, out string result)
  149:         {
  150:             bool b;
  151:  
  152:             b = false;
  153:             result = string.Empty;
  154:  
  155:             using (var db = new Ia.Ftn.Cl.Db())
  156:             {
  157:                 var v = (from ep in db.AgcfEndpoints where ep.Id == id select ep).FirstOrDefault();
  158:  
  159:                 db.AgcfEndpoints.Remove(v);
  160:                 db.SaveChanges();
  161:  
  162:                 b = true;
  163:             }
  164:  
  165:             return b;
  166:         }
  167:  
  168:         ////////////////////////////////////////////////////////////////////////////
  169:  
  170:         /// <summary>
  171:         ///
  172:         /// </summary>
  173:         public static Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord AgcfGatewayRecordFromId(string agcfEndpointId)
  174:         {
  175:             Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord agcfGatewayRecord;
  176:  
  177:             using (var db = new Ia.Ftn.Cl.Db())
  178:             {
  179:                 agcfGatewayRecord = (from e in db.AgcfEndpoints join g in db.AgcfGatewayRecords on e.GwId equals g.GwId where e.Id == agcfEndpointId select g).SingleOrDefault();
  180:             }
  181:  
  182:             return agcfGatewayRecord;
  183:         }
  184:  
  185:         ////////////////////////////////////////////////////////////////////////////
  186:  
  187:         /// <summary>
  188:         ///
  189:         /// </summary>
  190:         public static List<string> ReadPrividUserList
  191:         {
  192:             get
  193:             {
  194:                 List<string> prividUserlist;
  195:  
  196:                 using (var db = new Ia.Ftn.Cl.Db())
  197:                 {
  198:                     prividUserlist = (from ep in db.AgcfEndpoints orderby ep.GwId ascending select ep.PrividUser).ToList();
  199:                 }
  200:  
  201:                 return prividUserlist;
  202:             }
  203:         }
  204:  
  205:         ////////////////////////////////////////////////////////////////////////////
  206:  
  207:         /// <summary>
  208:         ///
  209:         /// </summary>
  210:         public static List<int> UsedFlatTermIdListForGatewayId(int gwId)
  211:         {
  212:             List<int> list;
  213:  
  214:             using (var db = new Ia.Ftn.Cl.Db())
  215:             {
  216:                 list = (from e in db.AgcfEndpoints where e.GwId == gwId orderby e.FlatTermID ascending select e.FlatTermID).ToList<int>();
  217:             }
  218:  
  219:             return list;
  220:         }
  221:  
  222:         ////////////////////////////////////////////////////////////////////////////
  223:  
  224:         /// <summary>
  225:         ///
  226:         /// </summary>
  227:         public static List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> List()
  228:         {
  229:             List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> agcfEndpointList;
  230:  
  231:             using (var db = new Ia.Ftn.Cl.Db())
  232:             {
  233:                 agcfEndpointList = (from a in db.AgcfEndpoints select a).Include(a => a.AgcfGatewayRecord).ToList();
  234:             }
  235:  
  236:             return agcfEndpointList;
  237:         }
  238:  
  239:         ////////////////////////////////////////////////////////////////////////////
  240:  
  241:         /// <summary>
  242:         ///
  243:         /// </summary>
  244:         public static List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> List(int gwId)
  245:         {
  246:             List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> agcfEndpointList;
  247:  
  248:             using (var db = new Ia.Ftn.Cl.Db())
  249:             {
  250:                 agcfEndpointList = (from a in db.AgcfEndpoints 
  251:                                     where a.GwId == gwId 
  252:                                     select a).Include(a => a.AgcfGatewayRecord).AsNoTracking().ToList();
  253:             }
  254:  
  255:             return agcfEndpointList;
  256:         }
  257:  
  258:         ////////////////////////////////////////////////////////////////////////////
  259:  
  260:         /// <summary>
  261:         ///
  262:         /// </summary>
  263:         public static List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> List(Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Olt olt)
  264:         {
  265:             List<Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont> ontList;
  266:             List<Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord> agcfGatewayRecordList;
  267:             List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> agcfEndpointList;
  268:  
  269:             // below: FTN ONT list
  270:             ontList = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList 
  271:                           where o.Pon.PonGroup.Olt.Id == olt.Id 
  272:                           select o).ToList();
  273:  
  274:             using (var db = new Ia.Ftn.Cl.Db())
  275:             {
  276:                 agcfGatewayRecordList = (from a in db.AgcfGatewayRecords select a).AsNoTracking().ToList();
  277:  
  278:                 agcfEndpointList = (from a in db.AgcfEndpoints select a).AsNoTracking().ToList();
  279:             }
  280:  
  281:             agcfGatewayRecordList = (from gr in agcfGatewayRecordList 
  282:                                      join no in ontList on gr.IP1 equals no.Ip 
  283:                                      select gr).ToList();
  284:  
  285:             agcfEndpointList = (from e in agcfEndpointList
  286:                                 join gr in agcfGatewayRecordList on e.GwId equals gr.GwId
  287:                                 select e).ToList();
  288:  
  289:             return agcfEndpointList;
  290:         }
  291:  
  292:         ////////////////////////////////////////////////////////////////////////////
  293:  
  294:         /// <summary>
  295:         ///
  296:         /// </summary>
  297:         public static List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> List(List<Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Olt> oltList)
  298:         {
  299:             List<Ia.Ftn.Cl.Models.Business.NetworkDesignDocument.Ont> ontList;
  300:             List<Ia.Ftn.Cl.Models.Nokia.AgcfGatewayRecord> agcfGatewayRecordList;
  301:             List<Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint> agcfEndpointList;
  302:  
  303:             // below: FTN ONT list
  304:             ontList = (from o in Ia.Ftn.Cl.Models.Data.NetworkDesignDocument.OntList 
  305:                           where oltList.Any(u => u.Id == o.Pon.PonGroup.Olt.Id) 
  306:                           select o).ToList();
  307:  
  308:             using (var db = new Ia.Ftn.Cl.Db())
  309:             {
  310:                 agcfGatewayRecordList = (from a in db.AgcfGatewayRecords select a).AsNoTracking().ToList();
  311:  
  312:                 agcfEndpointList = (from a in db.AgcfEndpoints select a).AsNoTracking().ToList();
  313:             }
  314:  
  315:             agcfGatewayRecordList = (from gr in agcfGatewayRecordList
  316:                                      join no in ontList on gr.IP1 equals no.Ip
  317:                                      select gr).ToList();
  318:  
  319:             agcfEndpointList = (from e in agcfEndpointList
  320:                                 join gr in agcfGatewayRecordList on e.GwId equals gr.GwId
  321:                                 select e).ToList();
  322:  
  323:             return agcfEndpointList;
  324:         }
  325:  
  326:         ////////////////////////////////////////////////////////////////////////////
  327:  
  328:         /// <summary>
  329:         ///
  330:         /// </summary>
  331:         public static Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint ReadByPrividUser(string prividUser)
  332:         {
  333:             Ia.Ftn.Cl.Models.Nokia.AgcfEndpoint agcfEndpoint;
  334:  
  335:             using (var db = new Ia.Ftn.Cl.Db())
  336:             {
  337:                 agcfEndpoint = (from a in db.AgcfEndpoints where a.PrividUser == prividUser select a).Include(a => a.AgcfGatewayRecord).SingleOrDefault();
  338:             }
  339:  
  340:             return agcfEndpoint;
  341:         }
  342:  
  343:         ////////////////////////////////////////////////////////////////////////////
  344:         ////////////////////////////////////////////////////////////////////////////
  345:     }
  346:  
  347:     ////////////////////////////////////////////////////////////////////////////
  348:     ////////////////////////////////////////////////////////////////////////////
  349: }