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

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

General base class for life entities. Make it link through delegates to create and update database objects.

    1: using System;
    2: using System.Collections.Generic;
    3: using System.Globalization;
    4: using System.Xml.Linq;
    5:  
    6: namespace Ia.Cl.Models.Life
    7: {
    8:     ////////////////////////////////////////////////////////////////////////////
    9:  
   10:     /// <summary publish="true">
   11:     /// General base class for life entities. Make it link through delegates to create and update database objects.
   12:     /// </summary>
   13:     /// <remarks> 
   14:     /// Copyright © 2001-2015 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   15:     ///
   16:     /// 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
   17:     /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
   18:     ///
   19:     /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
   20:     /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
   21:     /// 
   22:     /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
   23:     /// 
   24:     /// Copyright notice: This notice may not be removed or altered from any source distribution.
   25:     /// </remarks> 
   26:     public class Main
   27:     {
   28:         ////////////////////////////////////////////////////////////////////////////
   29:  
   30:         /// <summary>
   31:         ///
   32:         /// </summary>
   33:         public Main() { }
   34:  
   35:         ////////////////////////////////////////////////////////////////////////////
   36:         ////////////////////////////////////////////////////////////////////////////
   37:     }
   38:  
   39:     ////////////////////////////////////////////////////////////////////////////
   40:  
   41:     /// <summary>
   42:     ///
   43:     /// </summary>
   44:     public sealed class Area
   45:     {
   46:         private static TextInfo textInfo;
   47:         private static XDocument countryArea;
   48:  
   49:         /// <summary/>
   50:         public Area() { }
   51:  
   52:         /// <summary/>
   53:         public static List<Area> Initialize(City city)
   54:         {
   55:             countryArea = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\country_area.xml");
   56:             Area area;
   57:             List<Area> areas;
   58:  
   59:             areas = new List<Area>();
   60:  
   61:             textInfo = new CultureInfo("en-US", false).TextInfo;
   62:             // create a TextInfo based on the "en-US" culture.
   63:  
   64:             foreach (XElement xe in countryArea.Descendants("city").Descendants("area"))
   65:             {
   66:                 if (city.XmlId == int.Parse(xe.Parent.Attribute("id").Value))
   67:                 {
   68:                     area = new Area();
   69:  
   70:                     area.City = city;
   71:  
   72:                     area.XmlId = int.Parse(xe.Attribute("id").Value);
   73:  
   74:                     // convert that name to a nice title case format
   75:                     area.Name = xe.Attribute("name").Value;
   76:                     area.Name = textInfo.ToTitleCase(area.Name.ToLower());
   77:  
   78:                     //area.NameInArabic = xe.Attribute("name_ar").Value;
   79:  
   80:                     areas.Add(area);
   81:                 }
   82:             }
   83:  
   84:             return areas;
   85:         }
   86:  
   87:         /// <summary/>
   88:         public int Id { get; set; }
   89:  
   90:         /// <summary/>
   91:         public int XmlId { get; set; }
   92:  
   93:         /// <summary/>
   94:         public string Name { get; set; }
   95:  
   96:         /// <summary/>
   97:         public City City { get; set; }
   98:     }
   99:  
  100:     ////////////////////////////////////////////////////////////////////////////
  101:  
  102:     /// <summary>
  103:     ///
  104:     /// </summary>
  105:     public sealed class City
  106:     {
  107:         private static TextInfo textInfo;
  108:         private static XDocument countryArea;
  109:  
  110:         /// <summary/>
  111:         public City() { }
  112:  
  113:         /// <summary/>
  114:         public static List<City> Initialize(Province province)
  115:         {
  116:             countryArea = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\country_area.xml");
  117:             City city;
  118:             List<City> cities;
  119:  
  120:             cities = new List<City>();
  121:  
  122:             textInfo = new CultureInfo("en-US", false).TextInfo;
  123:             // create a TextInfo based on the "en-US" culture.
  124:  
  125:             foreach (XElement xe in countryArea.Descendants("city"))
  126:             {
  127:                 if (province.XmlId == int.Parse(xe.Parent.Attribute("id").Value))
  128:                 {
  129:                     city = new City();
  130:  
  131:                     city.Province = province;
  132:  
  133:                     city.XmlId = int.Parse(xe.Attribute("id").Value);
  134:  
  135:                     // convert that name to a nice title case format
  136:                     city.Name = xe.Attribute("name").Value;
  137:                     city.Name = textInfo.ToTitleCase(city.Name.ToLower());
  138:  
  139:                     //city.NameInArabic = xe.Attribute("name_ar").Value;
  140:  
  141:                     cities.Add(city);
  142:                 }
  143:             }
  144:  
  145:             return cities;
  146:         }
  147:  
  148:         /// <summary/>
  149:         public int Id { get; set; }
  150:  
  151:         /// <summary/>
  152:         public int XmlId { get; set; }
  153:  
  154:         /// <summary/>
  155:         public string Name { get; set; }
  156:  
  157:         /// <summary/>
  158:         public Province Province { get; set; }
  159:     }
  160:  
  161:     ////////////////////////////////////////////////////////////////////////////
  162:  
  163:     /// <summary>
  164:     ///
  165:     /// </summary>
  166:     public sealed class Province
  167:     {
  168:         private static TextInfo textInfo;
  169:         private static XDocument countryArea;
  170:  
  171:         /// <summary/>
  172:         public Province() { }
  173:  
  174:         /// <summary/>
  175:         public static List<Province> Initialize(Country country)
  176:         {
  177:             countryArea = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\country_area.xml");
  178:             Province province;
  179:             List<Province> provinces;
  180:  
  181:             provinces = new List<Province>();
  182:  
  183:             textInfo = new CultureInfo("en-US", false).TextInfo;
  184:             // create a TextInfo based on the "en-US" culture.
  185:  
  186:             foreach (XElement xe in countryArea.Descendants("province"))
  187:             {
  188:                 if (country.XmlId == int.Parse(xe.Parent.Attribute("id").Value))
  189:                 {
  190:                     province = new Province();
  191:  
  192:                     province.Country = country;
  193:  
  194:                     province.XmlId = int.Parse(xe.Attribute("id").Value);
  195:  
  196:                     // convert that name to a nice title case format
  197:                     province.Name = xe.Attribute("name").Value;
  198:                     province.Name = textInfo.ToTitleCase(province.Name.ToLower());
  199:  
  200:                     //province.NameInArabic = xe.Attribute("name_ar").Value;
  201:  
  202:                     provinces.Add(province);
  203:                 }
  204:             }
  205:  
  206:             return provinces;
  207:         }
  208:  
  209:         /// <summary/>
  210:         public int Id { get; set; }
  211:  
  212:         /// <summary/>
  213:         public int XmlId { get; set; }
  214:  
  215:         /// <summary/>
  216:         public string Name { get; set; }
  217:  
  218:         /// <summary/>
  219:         public Country Country { get; set; }
  220:     }
  221:  
  222:     ////////////////////////////////////////////////////////////////////////////
  223:  
  224:     /// <summary>
  225:     ///
  226:     /// </summary>
  227:     public sealed class Country
  228:     {
  229:         private static TextInfo textInfo;
  230:         private static XDocument countryArea;
  231:  
  232:         /// <summary/>
  233:         public Country() { }
  234:  
  235:         /// <summary/>
  236:         public static List<Country> Initialize()
  237:         {
  238:             countryArea = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\country_area.xml");
  239:             Country country;
  240:             List<Country> countries;
  241:  
  242:             countries = new List<Country>();
  243:  
  244:             textInfo = new CultureInfo("en-US", false).TextInfo;
  245:             // create a TextInfo based on the "en-US" culture.
  246:  
  247:             foreach (XElement xe in countryArea.Descendants("country"))
  248:             {
  249:                 country = new Country();
  250:  
  251:                 country.XmlId = int.Parse(xe.Attribute("id").Value);
  252:  
  253:                 // convert that name to a nice title case format
  254:                 country.Name = xe.Attribute("name").Value;
  255:                 country.Name = textInfo.ToTitleCase(country.Name.ToLower());
  256:  
  257:                 country.NameInArabic = xe.Attribute("name_ar").Value;
  258:                 country.Iso2 = xe.Attribute("iso2").Value;
  259:                 country.Iso3 = xe.Attribute("iso3").Value;
  260:                 country.Iana = xe.Attribute("iana").Value;
  261:                 country.Un = xe.Attribute("un").Value;
  262:                 country.Ioc = xe.Attribute("ioc").Value;
  263:                 country.Itu = xe.Attribute("itu").Value;
  264:  
  265:                 countries.Add(country);
  266:             }
  267:  
  268:             return countries;
  269:         }
  270:  
  271:         /// <summary/>
  272:         //[System.Data.Linq.Mapping.Column(Name = "Id", IsPrimaryKey = true, IsDbGenerated = false))]
  273:         public int Id { get; set; }
  274:  
  275:         /// <summary/>
  276:         public int XmlId { get; set; }
  277:  
  278:         /// <summary/>
  279:         public string Name { get; set; }
  280:  
  281:         /// <summary/>
  282:         public string NameInArabic { get; set; }
  283:  
  284:         /// <summary/>
  285:         public string Iso2 { get; set; }
  286:  
  287:         /// <summary/>
  288:         public string Iso3 { get; set; }
  289:  
  290:         /// <summary/>
  291:         public string Iana { get; set; }
  292:  
  293:         /// <summary/>
  294:         public string Un { get; set; }
  295:  
  296:         /// <summary/>
  297:         public string Ioc { get; set; }
  298:  
  299:         /// <summary/>
  300:         public string Itu { get; set; }
  301:     }
  302:  
  303:     ////////////////////////////////////////////////////////////////////////////
  304:  
  305:     /// <summary>
  306:     /// Address
  307:     /// </summary>
  308:     public class Address
  309:     {
  310:         // address format varies depending of country
  311:  
  312:         /// <summary/>
  313:         public Address() { }
  314:  
  315:         /// <summary/>
  316:         public int Id { get; set; }
  317:  
  318:         /// <summary/>
  319:         public Country Country { get; set; }
  320:  
  321:         /// <summary/>
  322:         public Province Province { get; set; }
  323:  
  324:         /// <summary/>
  325:         public City City { get; set; }
  326:  
  327:         /// <summary/>
  328:         public Area Area { get; set; }
  329:  
  330:         /// <summary/>
  331:         public string PostalCode { get; set; }
  332:  
  333:         /// <summary/>
  334:         public string Line { get; set; }
  335:     }
  336:  
  337:     ////////////////////////////////////////////////////////////////////////////
  338:  
  339:     /// <summary>
  340:     ///
  341:     /// </summary>
  342:     public class ContactType
  343:     {
  344:         private static XDocument xd;
  345:  
  346:         /// <summary/>
  347:         public ContactType() { }
  348:  
  349:         /// <summary/>
  350:         public static List<ContactType> Initialize()
  351:         {
  352:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  353:             ContactType contactType;
  354:             List<ContactType> contactTypes;
  355:  
  356:             contactTypes = new List<ContactType>();
  357:  
  358:             foreach (XElement xe in xd.Descendants("contact").Descendants("type"))
  359:             {
  360:                 contactType = new ContactType();
  361:  
  362:                 contactType.XmlId = int.Parse(xe.Attribute("id").Value);
  363:  
  364:                 // convert that name to a nice title case format
  365:                 contactType.Name = xe.Attribute("name").Value;
  366:                 contactType.NameInArabic = xe.Attribute("name_ar").Value;
  367:  
  368:                 contactTypes.Add(contactType);
  369:             }
  370:  
  371:             return contactTypes;
  372:         }
  373:  
  374:         /// <summary/>
  375:         public int Id { get; set; }
  376:  
  377:         /// <summary/>
  378:         public int XmlId { get; set; }
  379:  
  380:         /// <summary/>
  381:         public string Name { get; set; }
  382:  
  383:         /// <summary/>
  384:         public string NameInArabic { get; set; }
  385:     }
  386:  
  387:     ////////////////////////////////////////////////////////////////////////////
  388:  
  389:     /// <summary>
  390:     ///
  391:     /// </summary>
  392:     public class CorrespondenceType
  393:     {
  394:         private static XDocument xd;
  395:  
  396:         /// <summary/>
  397:         public CorrespondenceType() { }
  398:  
  399:         /// <summary/>
  400:         public static List<CorrespondenceType> Initialize()
  401:         {
  402:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  403:             CorrespondenceType correspondenceType;
  404:             List<CorrespondenceType> correspondenceTypes;
  405:  
  406:             correspondenceTypes = new List<CorrespondenceType>();
  407:  
  408:             foreach (XElement xe in xd.Descendants("correspondence").Descendants("type"))
  409:             {
  410:                 correspondenceType = new CorrespondenceType();
  411:  
  412:                 correspondenceType.XmlId = int.Parse(xe.Attribute("id").Value);
  413:  
  414:                 // convert that name to a nice title case format
  415:                 correspondenceType.Name = xe.Attribute("name").Value;
  416:                 correspondenceType.NameInArabic = xe.Attribute("name_ar").Value;
  417:  
  418:                 correspondenceTypes.Add(correspondenceType);
  419:             }
  420:  
  421:             return correspondenceTypes;
  422:         }
  423:  
  424:         /// <summary/>
  425:         public int Id { get; set; }
  426:  
  427:         /// <summary/>
  428:         public int XmlId { get; set; }
  429:  
  430:         /// <summary/>
  431:         public string Name { get; set; }
  432:  
  433:         /// <summary/>
  434:         public string NameInArabic { get; set; }
  435:     }
  436:  
  437:     ////////////////////////////////////////////////////////////////////////////
  438:  
  439:     /// <summary>
  440:     ///
  441:     /// </summary>
  442:     public class CorrespondenceState
  443:     {
  444:         private static XDocument xd;
  445:  
  446:         /// <summary/>
  447:         public CorrespondenceState() { }
  448:  
  449:         /// <summary/>
  450:         public static List<CorrespondenceState> Initialize()
  451:         {
  452:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  453:             CorrespondenceState correspondenceState;
  454:             List<CorrespondenceState> correspondenceStates;
  455:  
  456:             correspondenceStates = new List<CorrespondenceState>();
  457:  
  458:             foreach (XElement xe in xd.Descendants("correspondence").Descendants("state"))
  459:             {
  460:                 correspondenceState = new CorrespondenceState();
  461:  
  462:                 correspondenceState.XmlId = int.Parse(xe.Attribute("id").Value);
  463:  
  464:                 // convert that name to a nice title case format
  465:                 correspondenceState.Name = xe.Attribute("name").Value;
  466:                 correspondenceState.NameInArabic = xe.Attribute("name_ar").Value;
  467:  
  468:                 correspondenceStates.Add(correspondenceState);
  469:             }
  470:  
  471:             return correspondenceStates;
  472:         }
  473:  
  474:         /// <summary/>
  475:         public int Id { get; set; }
  476:  
  477:         /// <summary/>
  478:         public int XmlId { get; set; }
  479:  
  480:         /// <summary/>
  481:         public string Name { get; set; }
  482:  
  483:         /// <summary/>
  484:         public string NameInArabic { get; set; }
  485:     }
  486:  
  487:     ////////////////////////////////////////////////////////////////////////////
  488:  
  489:     /// <summary>
  490:     ///
  491:     /// </summary>
  492:     public class CorrespondenceDirection
  493:     {
  494:         private static XDocument xd;
  495:  
  496:         /// <summary/>
  497:         public CorrespondenceDirection() { }
  498:  
  499:         /// <summary/>
  500:         public static List<CorrespondenceDirection> Initialize()
  501:         {
  502:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  503:             CorrespondenceDirection correspondenceDirection;
  504:             List<CorrespondenceDirection> correspondenceDirections;
  505:  
  506:             correspondenceDirections = new List<CorrespondenceDirection>();
  507:  
  508:             foreach (XElement xe in xd.Descendants("correspondence").Descendants("direction"))
  509:             {
  510:                 correspondenceDirection = new CorrespondenceDirection();
  511:  
  512:                 correspondenceDirection.XmlId = int.Parse(xe.Attribute("id").Value);
  513:  
  514:                 // convert that name to a nice title case format
  515:                 correspondenceDirection.Name = xe.Attribute("name").Value;
  516:                 correspondenceDirection.NameInArabic = xe.Attribute("name_ar").Value;
  517:  
  518:                 correspondenceDirections.Add(correspondenceDirection);
  519:             }
  520:  
  521:             return correspondenceDirections;
  522:         }
  523:  
  524:         /// <summary/>
  525:         public int Id { get; set; }
  526:  
  527:         /// <summary/>
  528:         public int XmlId { get; set; }
  529:  
  530:         /// <summary/>
  531:         public string Name { get; set; }
  532:  
  533:         /// <summary/>
  534:         public string NameInArabic { get; set; }
  535:     }
  536:  
  537:     ////////////////////////////////////////////////////////////////////////////
  538:  
  539:     /// <summary>
  540:     ///
  541:     /// </summary>
  542:     public class Correspondence
  543:     {
  544:         /// <summary/>
  545:         public Correspondence() { }
  546:  
  547:         /// <summary/>
  548:         public int Id { get; set; }
  549:  
  550:         /// <summary/>
  551:         public CorrespondenceType Type { get; set; }
  552:  
  553:         /// <summary/>
  554:         public CorrespondenceState State { get; set; }
  555:  
  556:         /// <summary/>
  557:         public CorrespondenceDirection Direction { get; set; }
  558:  
  559:         /// <summary/>
  560:         public Correspondence CorrespondenceId { get; set; }
  561:  
  562:         //public Contact ContactId { get; set; }
  563:  
  564:         /// <summary/>
  565:         public Advertisement AdvertisementId { get; set; }
  566:  
  567:         /// <summary/>
  568:         public Request RequestId { get; set; }
  569:  
  570:         /// <summary/>
  571:         public string Subject { get; set; }
  572:  
  573:         /// <summary/>
  574:         public string Content { get; set; }
  575:  
  576:         /// <summary/>
  577:         public string Note { get; set; }
  578:  
  579:         /// <summary/>
  580:         public DateTime Created { get; set; }
  581:  
  582:         /// <summary/>
  583:         public DateTime Updated { get; set; }
  584:  
  585:     }
  586:  
  587:     ////////////////////////////////////////////////////////////////////////////
  588:  
  589:     /// <summary>
  590:     ///
  591:     /// </summary>
  592:     public class PropertyType
  593:     {
  594:         private static XDocument xd;
  595:  
  596:         /// <summary/>
  597:         public PropertyType() { }
  598:  
  599:         /// <summary/>
  600:         public static List<PropertyType> Initialize()
  601:         {
  602:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  603:             PropertyType propertyType;
  604:             List<PropertyType> propertyTypes;
  605:  
  606:             propertyTypes = new List<PropertyType>();
  607:  
  608:             foreach (XElement xe in xd.Descendants("property").Descendants("type"))
  609:             {
  610:                 propertyType = new PropertyType();
  611:  
  612:                 propertyType.XmlId = int.Parse(xe.Attribute("id").Value);
  613:  
  614:                 // convert that name to a nice title case format
  615:                 propertyType.Name = xe.Attribute("name").Value;
  616:                 propertyType.NameInArabic = xe.Attribute("name_ar").Value;
  617:  
  618:                 propertyTypes.Add(propertyType);
  619:             }
  620:  
  621:             return propertyTypes;
  622:         }
  623:  
  624:         /// <summary/>
  625:         public int Id { get; set; }
  626:  
  627:         /// <summary/>
  628:         public int XmlId { get; set; }
  629:  
  630:         /// <summary/>
  631:         public string Name { get; set; }
  632:  
  633:         /// <summary/>
  634:         public string NameInArabic { get; set; }
  635:     }
  636:  
  637:     ////////////////////////////////////////////////////////////////////////////
  638:  
  639:     /// <summary>
  640:     ///
  641:     /// </summary>
  642:     public class PropertyState
  643:     {
  644:         private static XDocument xd;
  645:  
  646:         /// <summary/>
  647:         public PropertyState() { }
  648:  
  649:         /// <summary/>
  650:         public static List<PropertyState> Initialize()
  651:         {
  652:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  653:             PropertyState propertyState;
  654:             List<PropertyState> propertyStates;
  655:  
  656:             propertyStates = new List<PropertyState>();
  657:  
  658:             foreach (XElement xe in xd.Descendants("property").Descendants("state"))
  659:             {
  660:                 propertyState = new PropertyState();
  661:  
  662:                 propertyState.XmlId = int.Parse(xe.Attribute("id").Value);
  663:  
  664:                 // convert that name to a nice title case format
  665:                 propertyState.Name = xe.Attribute("name").Value;
  666:                 propertyState.NameInArabic = xe.Attribute("name_ar").Value;
  667:  
  668:                 propertyStates.Add(propertyState);
  669:             }
  670:  
  671:             return propertyStates;
  672:         }
  673:  
  674:         /// <summary/>
  675:         public int Id { get; set; }
  676:  
  677:         /// <summary/>
  678:         public int XmlId { get; set; }
  679:  
  680:         /// <summary/>
  681:         public string Name { get; set; }
  682:  
  683:         /// <summary/>
  684:         public string NameInArabic { get; set; }
  685:     }
  686:  
  687:     ////////////////////////////////////////////////////////////////////////////
  688:  
  689:     /// <summary>
  690:     /// Property
  691:     /// </summary>
  692:     public class Property
  693:     {
  694:         /// <summary/>
  695:         public Property() { }
  696:  
  697:         /// <summary/>
  698:         public int Id { get; set; }
  699:  
  700:         /// <summary/>
  701:         public PropertyType Type { get; set; }
  702:  
  703:         /// <summary/>
  704:         public PropertyState State { get; set; }
  705:  
  706:         /// <summary/>
  707:         public string Name { get; set; }
  708:  
  709:         /// <summary/>
  710:         public Address Address { get; set; }
  711:  
  712:         /// <summary/>
  713:         public string Summary { get; set; }
  714:  
  715:         /// <summary/>
  716:         public string SummaryInArabic { get; set; }
  717:  
  718:         /// <summary/>
  719:         public string Detail { get; set; }
  720:  
  721:         /// <summary/>
  722:         public string DetailInArabic { get; set; }
  723:  
  724:         //public Contact Contact { get; set; }
  725:  
  726:         /// <summary/>
  727:         public bool Approved { get; set; }
  728:  
  729:         /// <summary/>
  730:         public string Note { get; set; }
  731:  
  732:         /// <summary/>
  733:         public DateTime Created { get; set; }
  734:  
  735:         /// <summary/>
  736:         public DateTime Updated { get; set; }
  737:     }
  738:  
  739:     ////////////////////////////////////////////////////////////////////////////
  740:  
  741:     /// <summary>
  742:     ///
  743:     /// </summary>
  744:     public class PriceType
  745:     {
  746:         private static XDocument xd;
  747:  
  748:         /// <summary/>
  749:         public PriceType() { }
  750:  
  751:         /// <summary/>
  752:         public static List<PriceType> Initialize()
  753:         {
  754:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  755:             PriceType priceType;
  756:             List<PriceType> priceTypes;
  757:  
  758:             priceTypes = new List<PriceType>();
  759:  
  760:             foreach (XElement xe in xd.Descendants("property").Descendants("advertisement").Descendants("price").Descendants("type"))
  761:             {
  762:                 priceType = new PriceType();
  763:  
  764:                 priceType.XmlId = int.Parse(xe.Attribute("id").Value);
  765:  
  766:                 // convert that name to a nice title case format
  767:                 priceType.Name = xe.Attribute("name").Value;
  768:                 priceType.NameInArabic = xe.Attribute("name_ar").Value;
  769:  
  770:                 priceTypes.Add(priceType);
  771:             }
  772:  
  773:             return priceTypes;
  774:         }
  775:  
  776:         /// <summary/>
  777:         public int Id { get; set; }
  778:  
  779:         /// <summary/>
  780:         public int XmlId { get; set; }
  781:  
  782:         /// <summary/>
  783:         public string Name { get; set; }
  784:  
  785:         /// <summary/>
  786:         public string NameInArabic { get; set; }
  787:     }
  788:  
  789:     ////////////////////////////////////////////////////////////////////////////
  790:  
  791:     /// <summary>
  792:     ///
  793:     /// </summary>
  794:     public class AdvertisementType
  795:     {
  796:         private static XDocument xd;
  797:  
  798:         /// <summary/>
  799:         public AdvertisementType() { }
  800:  
  801:         /// <summary/>
  802:         public static List<AdvertisementType> Initialize()
  803:         {
  804:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  805:             AdvertisementType advertisementType;
  806:             List<AdvertisementType> advertisementTypes;
  807:  
  808:             advertisementTypes = new List<AdvertisementType>();
  809:  
  810:             foreach (XElement xe in xd.Descendants("property").Descendants("advertisement").Descendants("type"))
  811:             {
  812:                 advertisementType = new AdvertisementType();
  813:  
  814:                 advertisementType.XmlId = int.Parse(xe.Attribute("id").Value);
  815:  
  816:                 // convert that name to a nice title case format
  817:                 advertisementType.Name = xe.Attribute("name").Value;
  818:                 advertisementType.NameInArabic = xe.Attribute("name_ar").Value;
  819:  
  820:                 advertisementTypes.Add(advertisementType);
  821:             }
  822:  
  823:             return advertisementTypes;
  824:         }
  825:  
  826:         /// <summary/>
  827:         public int Id { get; set; }
  828:  
  829:         /// <summary/>
  830:         public int XmlId { get; set; }
  831:  
  832:         /// <summary/>
  833:         public string Name { get; set; }
  834:  
  835:         /// <summary/>
  836:         public string NameInArabic { get; set; }
  837:     }
  838:  
  839:     ////////////////////////////////////////////////////////////////////////////
  840:  
  841:     /// <summary>
  842:     ///
  843:     /// </summary>
  844:     public class AdvertisementState
  845:     {
  846:         private static XDocument xd;
  847:  
  848:         /// <summary/>
  849:         public AdvertisementState() { }
  850:  
  851:         /// <summary/>
  852:         public static List<AdvertisementState> Initialize()
  853:         {
  854:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  855:             AdvertisementState advertisementState;
  856:             List<AdvertisementState> advertisementStates;
  857:  
  858:             advertisementStates = new List<AdvertisementState>();
  859:  
  860:             foreach (XElement xe in xd.Descendants("property").Descendants("advertisement").Descendants("state"))
  861:             {
  862:                 advertisementState = new AdvertisementState();
  863:  
  864:                 advertisementState.XmlId = int.Parse(xe.Attribute("id").Value);
  865:  
  866:                 // convert that name to a nice title case format
  867:                 advertisementState.Name = xe.Attribute("name").Value;
  868:                 advertisementState.NameInArabic = xe.Attribute("name_ar").Value;
  869:  
  870:                 advertisementStates.Add(advertisementState);
  871:             }
  872:  
  873:             return advertisementStates;
  874:         }
  875:  
  876:         /// <summary/>
  877:         public int Id { get; set; }
  878:  
  879:         /// <summary/>
  880:         public int XmlId { get; set; }
  881:  
  882:         /// <summary/>
  883:         public string Name { get; set; }
  884:  
  885:         /// <summary/>
  886:         public string NameInArabic { get; set; }
  887:     }
  888:  
  889:     ////////////////////////////////////////////////////////////////////////////
  890:  
  891:     /// <summary>
  892:     /// Advertisement
  893:     /// </summary>
  894:     public class Advertisement
  895:     {
  896:         /// <summary/>
  897:         public Advertisement() { }
  898:  
  899:         /// <summary/>
  900:         public int Id { get; set; }
  901:  
  902:         /// <summary/>
  903:         public AdvertisementType Type { get; set; }
  904:  
  905:         /// <summary/>
  906:         public AdvertisementState State { get; set; }
  907:  
  908:         /// <summary/>
  909:         public string Name { get; set; }
  910:  
  911:         /// <summary/>
  912:         public Property Property { get; set; }
  913:  
  914:         /// <summary/>
  915:         public Language Language { get; set; }
  916:  
  917:         /// <summary/>
  918:         public string Price { get; set; }
  919:  
  920:         /// <summary/>
  921:         public PriceType PriceType { get; set; }
  922:  
  923:         /// <summary/>
  924:         public string Summary { get; set; }
  925:  
  926:         /// <summary/>
  927:         public string Detail { get; set; }
  928:  
  929:         /// <summary/>
  930:         public bool Approved { get; set; }
  931:  
  932:         /// <summary/>
  933:         public bool Show { get; set; }
  934:  
  935:         /// <summary/>
  936:         public string Note { get; set; }
  937:  
  938:         /// <summary/>
  939:         public string User { get; set; }
  940:  
  941:         /// <summary/>
  942:         public DateTime Created { get; set; }
  943:  
  944:         /// <summary/>
  945:         public DateTime Updated { get; set; }
  946:     }
  947:  
  948:     ////////////////////////////////////////////////////////////////////////////
  949:  
  950:     /// <summary>
  951:     ///
  952:     /// </summary>
  953:     public class RequestType
  954:     {
  955:         private static XDocument xd;
  956:  
  957:         /// <summary/>
  958:         public RequestType() { }
  959:  
  960:         /// <summary/>
  961:         public static List<RequestType> Initialize()
  962:         {
  963:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
  964:             RequestType requestType;
  965:             List<RequestType> requestTypes;
  966:  
  967:             requestTypes = new List<RequestType>();
  968:  
  969:             foreach (XElement xe in xd.Descendants("property").Descendants("request").Descendants("type"))
  970:             {
  971:                 requestType = new RequestType();
  972:  
  973:                 requestType.XmlId = int.Parse(xe.Attribute("id").Value);
  974:  
  975:                 // convert that name to a nice title case format
  976:                 requestType.Name = xe.Attribute("name").Value;
  977:                 requestType.NameInArabic = xe.Attribute("name_ar").Value;
  978:  
  979:                 requestTypes.Add(requestType);
  980:             }
  981:  
  982:             return requestTypes;
  983:         }
  984:  
  985:         /// <summary/>
  986:         public int Id { get; set; }
  987:  
  988:         /// <summary/>
  989:         public int XmlId { get; set; }
  990:  
  991:         /// <summary/>
  992:         public string Name { get; set; }
  993:  
  994:         /// <summary/>
  995:         public string NameInArabic { get; set; }
  996:     }
  997:  
  998:     ////////////////////////////////////////////////////////////////////////////
  999:  
 1000:     /// <summary>
 1001:     ///
 1002:     /// </summary>
 1003:     public class RequestState
 1004:     {
 1005:         private static XDocument xd;
 1006:  
 1007:         /// <summary/>
 1008:         public RequestState() { }
 1009:  
 1010:         /// <summary/>
 1011:         public static List<RequestState> Initialize()
 1012:         {
 1013:             xd = XDocument.Load(Ia.Cl.Models.Default.AbsolutePath() + @"app_data\this.xml");
 1014:             RequestState requestState;
 1015:             List<RequestState> requestStates;
 1016:  
 1017:             requestStates = new List<RequestState>();
 1018:  
 1019:             foreach (XElement xe in xd.Descendants("property").Descendants("request").Descendants("state"))
 1020:             {
 1021:                 requestState = new RequestState();
 1022:  
 1023:                 requestState.XmlId = int.Parse(xe.Attribute("id").Value);
 1024:  
 1025:                 // convert that name to a nice title case format
 1026:                 requestState.Name = xe.Attribute("name").Value;
 1027:                 requestState.NameInArabic = xe.Attribute("name_ar").Value;
 1028:  
 1029:                 requestStates.Add(requestState);
 1030:             }
 1031:  
 1032:             return requestStates;
 1033:         }
 1034:  
 1035:         /// <summary/>
 1036:         public int Id { get; set; }
 1037:  
 1038:         /// <summary/>
 1039:         public int XmlId { get; set; }
 1040:  
 1041:         /// <summary/>
 1042:         public string Name { get; set; }
 1043:  
 1044:         /// <summary/>
 1045:         public string NameInArabic { get; set; }
 1046:     }
 1047:  
 1048:     ////////////////////////////////////////////////////////////////////////////
 1049:  
 1050:     /// <summary>
 1051:     /// Request
 1052:     /// </summary>
 1053:     public class Request
 1054:     {
 1055:         /// <summary/>
 1056:         public Request() { }
 1057:  
 1058:         /// <summary/>
 1059:         public int Id { get; set; }
 1060:  
 1061:         /// <summary/>
 1062:         public RequestType Type { get; set; }
 1063:  
 1064:         /// <summary/>
 1065:         public RequestState State { get; set; }
 1066:  
 1067:         /// <summary/>
 1068:         public string Name { get; set; }
 1069:  
 1070:         /// <summary/>
 1071:         public Address Address { get; set; }
 1072:  
 1073:         /// <summary/>
 1074:         public string Summary { get; set; }
 1075:  
 1076:         /// <summary/>
 1077:         public string Detail { get; set; }
 1078:  
 1079:         /// <summary/>
 1080:         public string Price { get; set; }
 1081:  
 1082:         //public Contact Contact { get; set; }
 1083:  
 1084:         /// <summary/>
 1085:         public bool Approved { get; set; }
 1086:  
 1087:         /// <summary/>
 1088:         public bool Show { get; set; }
 1089:  
 1090:         /// <summary/>
 1091:         public string Note { get; set; }
 1092:  
 1093:         /// <summary/>
 1094:         public string User { get; set; }
 1095:  
 1096:         /// <summary/>
 1097:         public DateTime Created { get; set; }
 1098:  
 1099:         /// <summary/>
 1100:         public DateTime Updated { get; set; }
 1101:     }
 1102:  
 1103:     ////////////////////////////////////////////////////////////////////////////
 1104:     ////////////////////////////////////////////////////////////////////////////
 1105:  
 1106:     #region enum
 1107:  
 1108:     ////////////////////////////////////////////////////////////////////////////
 1109:  
 1110:     /// <summary>
 1111:     /// O+     A+     B+    AB+     O-     A-     B-    AB-
 1112:     /// </summary>
 1113:     public enum Blood
 1114:     {
 1115:         /// <summary/>
 1116:         O_positive = 1,
 1117:  
 1118:         /// <summary/>
 1119:         A_positive = 2,
 1120:  
 1121:         /// <summary/>
 1122:         B_positive = 3,
 1123:  
 1124:         /// <summary/>
 1125:         AB_positive = 4,
 1126:  
 1127:         /// <summary/>
 1128:         O_negative = 5,
 1129:  
 1130:         /// <summary/>
 1131:         A_negative = 6,
 1132:  
 1133:         /// <summary/>
 1134:         B_negative = 7,
 1135:  
 1136:         /// <summary/>
 1137:         AB_negative = 8
 1138:     }
 1139:  
 1140:     ////////////////////////////////////////////////////////////////////////////
 1141:  
 1142:     /// <summary>
 1143:     ///
 1144:     /// </summary>
 1145:     public enum Social_State
 1146:     {
 1147:         /// <summary/>
 1148:         Single = 1,
 1149:  
 1150:         /// <summary/>
 1151:         Married = 2
 1152:     }
 1153:  
 1154:     ////////////////////////////////////////////////////////////////////////////
 1155:  
 1156:     /// <summary>
 1157:     ///
 1158:     /// </summary>
 1159:     public enum Educational_State
 1160:     {
 1161:         /// <summary/>
 1162:         High_School = 9,
 1163:  
 1164:         /// <summary/>
 1165:         University = 10
 1166:     }
 1167:  
 1168:     ////////////////////////////////////////////////////////////////////////////
 1169:  
 1170:     /// <summary>
 1171:     ///
 1172:     /// </summary>
 1173:     public enum Passport_Type
 1174:     {
 1175:         /// <summary/>
 1176:         Standard = 1,
 1177:  
 1178:         /// <summary/>
 1179:         Diplomatic = 2
 1180:     }
 1181:  
 1182:     #endregion
 1183:  
 1184:     ////////////////////////////////////////////////////////////////////////////
 1185:     ////////////////////////////////////////////////////////////////////////////
 1186: }