82. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 12/28/2017 10:56:42 AM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

82.1 Files compared

# Location File Last Modified
1 VIRP_CiF.zip\Registries VIRP Web Site\BaseCode ServiceInterfaceManager.cs Thu Dec 7 15:50:06 2017 UTC
2 VIRP_CiF.zip\Registries VIRP Web Site\BaseCode ServiceInterfaceManager.cs Tue Dec 19 20:53:51 2017 UTC

82.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 6654
Changed 1 2
Inserted 0 0
Removed 0 0

82.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

82.4 Active regular expressions

No regular expressions were active.

82.5 Comparison detail

  1   using Syst em;
  2   using Syst em.Collect ions.Gener ic;
  3   using Syst em.Linq;
  4   using Syst em.Web;
  5   using VIRP _WEB.SoaSe rvices;
  6  
  7   namespace  VIRP_WEB.B aseCode
  8   {
  9       public  partial c lass Servi ceInterfac eManager
  10       {
  11             // DN S      BLANCT: Re moving unu sed and co nsolidatin g from the  cg.cs fil e in prep  for Fortif y
  12  
  13           pr ivate stat ic CrsServ ices servi ces = new  CrsService s() { Cred entials =  System.Net .Credentia lCache.Def aultCreden tials };
  14           pr ivate int  _REFERRAL_ GET_COMMON _BY_REGIST RY_COUNT;
  15  
  16           #r egion APPL ICATION_ST ATUS
  17           #e ndregion
  18  
  19           #r egion BCCC R_BCR_ALL
  20  
  21           pu blic stati c List<BCC CR_BCR_ALL > BCCCR_BC R_ALL_GET_ ALL_BY_SEA RCH(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  short STA3 N, string  PATIENT_SE ARCH)
  22           {
  23                BCCCR_BC R_ALL[] te mp = servi ces.BCCCR_ BCR_ALL_GE T_ALL_BY_S EARCH(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  STA3N, PA TIENT_SEAR CH);
  24                if (temp  != null)
  25                    retu rn temp.To List<BCCCR _BCR_ALL>( );
  26                return n ull;
  27           }
  28  
  29           pu blic stati c List<BCC CR_BCR_ALL > BCCCR_BC R_ALL_GET_ ALL_BY_SEA RCH(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  short STA3 N, string  PATIENT_SE ARCH, stri ng SORT_EX PRESSION)
  30           {
  31                List<BCC CR_BCR_ALL > objRetur n = BCCCR_ BCR_ALL_GE T_ALL_BY_S EARCH(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  STA3N, PA TIENT_SEAR CH);
  32                if (objR eturn != n ull)
  33                {
  34                    if ( objReturn  != null &&  objReturn .Count !=  0)
  35                    {
  36                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  37                         {
  38                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  39                             {
  40                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  41  
  42                                 if  (SORT_EXP RESSION.Co ntains("." ))
  43                                 {
  44                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  45                                      if (prop s != null  && props.C ount() ==  2)
  46                                      {
  47                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<BCCCR_B CR_ALL>();
  48                                      }
  49                                      else if  (props !=  null && pr ops.Count( ) == 3)
  50                                      {
  51                                      }
  52                                 }
  53                                 el se
  54                                 {
  55                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<BC CCR_BCR_AL L>();
  56                                 }
  57                             }
  58                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  59                             {
  60                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  61                                 if  (SORT_EXP RESSION.Co ntains("." ))
  62                                 {
  63                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  64                                      if (prop s != null  && props.C ount() ==  2)
  65                                      {
  66                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<BCCCR_B CR_ALL>();
  67                                      }
  68                                      else if  (props !=  null && pr ops.Count( ) == 3)
  69                                      {
  70                                      }
  71                                 }
  72                                 el se
  73                                 {
  74                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<BC CCR_BCR_AL L>();
  75                                 }
  76                             }
  77                             else
  78                             {
  79                                 if  (SORT_EXP RESSION.Co ntains("." ))
  80                                 {
  81                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  82                                      if (prop s != null  && props.C ount() ==  2)
  83                                      {
  84                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<BCCCR_B CR_ALL>();
  85                                      }
  86                                      else if  (props !=  null && pr ops.Count( ) == 3)
  87                                      {
  88                                      }
  89                                 }
  90                                 el se
  91                                 {
  92                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<BC CCR_BCR_AL L>();
  93                                 }
  94                             }
  95                         }
  96                    }
  97                }
  98  
  99                return o bjReturn;
  100           }
  101  
  102           #e ndregion
  103  
  104           #r egion DATA _DICTIONAR Y
  105  
  106           pu blic stati c List<DAT A_DICTIONA RY> DATA_D ICTIONARY_ GET_ALL(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID)
  107           {
  108                DATA_DIC TIONARY[]  temp = ser vices.DATA _DICTIONAR Y_GET_ALL( CURRENT_US ER, CURREN T_REGISTRY _ID);
  109                if (temp  != null)
  110                    retu rn temp.To List<DATA_ DICTIONARY >();
  111                return n ull;
  112           }
  113  
  114           pu blic stati c List<DAT A_DICTIONA RY> DATA_D ICTIONARY_ GET_ALL(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, string  SEARCH_CO LUMN, stri ng SEARCH_ TEXT, stri ng SORT_EX PRESSION)
  115           {
  116                List<DAT A_DICTIONA RY> objRet urn = DATA _DICTIONAR Y_GET_ALL( CURRENT_US ER, CURREN T_REGISTRY _ID);
  117                if (objR eturn != n ull)
  118                {
  119                    if ( objReturn  != null &&  objReturn .Count !=  0)
  120                    {
  121                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  122                         {
  123                             if (SE ARCH_COLUM N.Contains ("."))
  124                             {
  125                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  126                                 if  (props !=  null && p rops.Count () == 2)
  127                                 {
  128                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< DATA_DICTI ONARY>();
  129                                 }
  130                             }
  131                             else
  132                             {
  133                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<DA TA_DICTION ARY>();
  134                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<DATA_DI CTIONARY>( );
  135                             }
  136                         }
  137                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  138                         {
  139                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  140                             {
  141                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  142  
  143                                 if  (SORT_EXP RESSION.Co ntains("." ))
  144                                 {
  145                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  146                                      if (prop s != null  && props.C ount() ==  2)
  147                                      {
  148                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<DATA_DI CTIONARY>( );
  149                                      }
  150                                      else if  (props !=  null && pr ops.Count( ) == 3)
  151                                      {
  152                                      }
  153                                 }
  154                                 el se
  155                                 {
  156                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<DA TA_DICTION ARY>();
  157                                 }
  158                             }
  159                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  160                             {
  161                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  162                                 if  (SORT_EXP RESSION.Co ntains("." ))
  163                                 {
  164                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  165                                      if (prop s != null  && props.C ount() ==  2)
  166                                      {
  167                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<DATA_DI CTIONARY>( );
  168                                      }
  169                                      else if  (props !=  null && pr ops.Count( ) == 3)
  170                                      {
  171                                      }
  172                                 }
  173                                 el se
  174                                 {
  175                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<DA TA_DICTION ARY>();
  176                                 }
  177                             }
  178                             else
  179                             {
  180                                 if  (SORT_EXP RESSION.Co ntains("." ))
  181                                 {
  182                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  183                                      if (prop s != null  && props.C ount() ==  2)
  184                                      {
  185                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<DATA_DI CTIONARY>( );
  186                                      }
  187                                      else if  (props !=  null && pr ops.Count( ) == 3)
  188                                      {
  189                                      }
  190                                 }
  191                                 el se
  192                                 {
  193                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<DA TA_DICTION ARY>();
  194                                 }
  195                             }
  196                         }
  197                    }
  198                }
  199  
  200                return o bjReturn;
  201           }
  202  
  203           #e ndregion
  204  
  205           #r egion DB_L OG
  206  
  207           pu blic stati c int DB_L OG_SAVE(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, DB_LOG  objSave)
  208           {
  209                return s ervices.DB _LOG_SAVE( CURRENT_US ER, CURREN T_REGISTRY _ID, objSa ve);
  210           }
  211  
  212           #e ndregion
  213  
  214           #r egion DIM_ TIME
  215           #e ndregion
  216  
  217           #r egion ETL_ ExtractBat ch_Log
  218  
  219           pu blic stati c List<ETL _ExtractBa tch_Log> E TL_Extract Batch_Log_ GET_ALL_BY _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID)
  220           {
  221                ETL_Extr actBatch_L og[] temp  = services .ETL_Extra ctBatch_Lo g_GET_ALL_ BY_REGISTR Y(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  222                if (temp  != null)
  223                    retu rn temp.To List<ETL_E xtractBatc h_Log>();
  224                return n ull;
  225           }
  226  
  227           pu blic stati c List<ETL _ExtractBa tch_Log> E TL_Extract Batch_Log_ GET_ALL_BY _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, stri ng SEARCH_ COLUMN, st ring SEARC H_TEXT, st ring SORT_ EXPRESSION )
  228           {
  229                List<ETL _ExtractBa tch_Log> o bjReturn =  ETL_Extra ctBatch_Lo g_GET_ALL_ BY_REGISTR Y(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  230                if (objR eturn != n ull)
  231                {
  232                    if ( objReturn  != null &&  objReturn .Count !=  0)
  233                    {
  234                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  235                         {
  236                             if (SE ARCH_COLUM N.Contains ("."))
  237                             {
  238                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  239                                 if  (props !=  null && p rops.Count () == 2)
  240                                 {
  241                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< ETL_Extrac tBatch_Log >();
  242                                 }
  243                             }
  244                             else
  245                             {
  246                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ET L_ExtractB atch_Log>( );
  247                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<ETL_Ext ractBatch_ Log>();
  248                             }
  249                         }
  250                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  251                         {
  252                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  253                             {
  254                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  255  
  256                                 if  (SORT_EXP RESSION.Co ntains("." ))
  257                                 {
  258                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  259                                      if (prop s != null  && props.C ount() ==  2)
  260                                      {
  261                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<ETL_Ext ractBatch_ Log>();
  262                                      }
  263                                      else if  (props !=  null && pr ops.Count( ) == 3)
  264                                      {
  265                                      }
  266                                 }
  267                                 el se
  268                                 {
  269                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ET L_ExtractB atch_Log>( );
  270                                 }
  271                             }
  272                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  273                             {
  274                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  275                                 if  (SORT_EXP RESSION.Co ntains("." ))
  276                                 {
  277                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  278                                      if (prop s != null  && props.C ount() ==  2)
  279                                      {
  280                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<ETL_Ext ractBatch_ Log>();
  281                                      }
  282                                      else if  (props !=  null && pr ops.Count( ) == 3)
  283                                      {
  284                                      }
  285                                 }
  286                                 el se
  287                                 {
  288                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ET L_ExtractB atch_Log>( );
  289                                 }
  290                             }
  291                             else
  292                             {
  293                                 if  (SORT_EXP RESSION.Co ntains("." ))
  294                                 {
  295                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  296                                      if (prop s != null  && props.C ount() ==  2)
  297                                      {
  298                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<ETL_Ext ractBatch_ Log>();
  299                                      }
  300                                      else if  (props !=  null && pr ops.Count( ) == 3)
  301                                      {
  302                                      }
  303                                 }
  304                                 el se
  305                                 {
  306                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ET L_ExtractB atch_Log>( );
  307                                 }
  308                             }
  309                         }
  310                    }
  311                }
  312  
  313                return o bjReturn;
  314           }
  315  
  316           #e ndregion
  317  
  318           #r egion INDI VIDUAL
  319           #e ndregion
  320  
  321           #r egion INDI VIDUAL_ADD RESS
  322           #e ndregion
  323  
  324           #r egion MESS AGE_LOG
  325           #e ndregion
  326  
  327           #r egion PATI ENT
  328  
  329           pu blic stati c PATIENT  PATIENT_GE T(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t id)
  330           {
  331                return s ervices.PA TIENT_GET( CURRENT_US ER, CURREN T_REGISTRY _ID, id);
  332           }
  333  
  334           pu blic stati c PATIENT  PATIENT_GE T_COMPLETE (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, int  PATIENT_I D)
  335           {
  336                return s ervices.PA TIENT_GET_ COMPLETE(C URRENT_USE R, CURRENT _REGISTRY_ ID, PATIEN T_ID);
  337           }
  338  
  339           pu blic stati c List<PAT IENT> PATI ENT_GET_AL L_BY_REGIS TRY(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID)
  340           {
  341                PATIENT[ ] temp = s ervices.PA TIENT_GET_ ALL_BY_REG ISTRY(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  342                if (temp  != null)
  343                    retu rn temp.To List<PATIE NT>();
  344                return n ull;
  345           }
  346  
  347           pu blic stati c List<PAT IENT> PATI ENT_GET_AL L_BY_NAME( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, stri ng LAST_NA ME, string  FIRST_NAM E)
  348           {
  349                PATIENT[ ] temp = s ervices.PA TIENT_GET_ ALL_BY_NAM E(CURRENT_ USER, CURR ENT_REGIST RY_ID, LAS T_NAME, FI RST_NAME);
  350                if (temp  != null)
  351                    retu rn temp.To List<PATIE NT>();
  352                return n ull;
  353           }
  354  
  355           #e ndregion
  356  
  357           #r egion PATI ENT_IDS
  358           #e ndregion
  359  
  360           #r egion PATI ENT_UDFs
  361  
  362           pu blic stati c int PATI ENT_UDFs_S AVE(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  PATIENT_UD Fs objSave )
  363           {
  364                return s ervices.PA TIENT_UDFs _SAVE(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  objSave);
  365           }
  366  
  367           pu blic stati c PATIENT_ UDFs PATIE NT_UDFs_GE T_BY_PATIE NT_UDF(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, int PAT IENT_ID, i nt STD_REG _UDFs_ID)
  368           {
  369                return s ervices.PA TIENT_UDFs _GET_BY_PA TIENT_UDF( CURRENT_US ER, CURREN T_REGISTRY _ID, PATIE NT_ID, STD _REG_UDFs_ ID);
  370           }
  371  
  372           #e ndregion
  373  
  374           #r egion REFE RRAL
  375  
  376           pu blic stati c REFERRAL  REFERRAL_ GET(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int id)
  377           {
  378                return s ervices.RE FERRAL_GET (CURRENT_U SER, CURRE NT_REGISTR Y_ID, id);
  379           }
  380  
  381           pu blic stati c int REFE RRAL_SAVE( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, REFE RRAL objSa ve)
  382           {
  383                return s ervices.RE FERRAL_SAV E(CURRENT_ USER, CURR ENT_REGIST RY_ID, obj Save);
  384           }
  385  
  386           pu blic stati c Boolean  REFERRAL_D ELETE(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int id)
  387           {
  388                return s ervices.RE FERRAL_DEL ETE(CURREN T_USER, CU RRENT_REGI STRY_ID, i d);
  389           }
  390  
  391           pu blic stati c REFERRAL  REFERRAL_ GET_COMPLE TE(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID, i nt REFERRA L_ID)
  392           {
  393                return s ervices.RE FERRAL_GET _COMPLETE( CURRENT_US ER, CURREN T_REGISTRY _ID, REFER RAL_ID);
  394           }
  395  
  396           pu blic stati c List<REF ERRAL> REF ERRAL_GET_ ALL_BY_REG ISTRY_STAT US(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID, i nt STD_REF ERRALSTS_I D)
  397           {
  398                REFERRAL [] temp =  services.R EFERRAL_GE T_ALL_BY_R EGISTRY_ST ATUS(CURRE NT_USER, C URRENT_REG ISTRY_ID,  STD_REFERR ALSTS_ID);
  399                if (temp  != null)
  400                    retu rn temp.To List<REFER RAL>();
  401                return n ull;
  402           }
  403  
  404           pu blic stati c List<REF ERRALcommo n> REFERRA L_GET_COMM ON_BY_REGI STRY(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID)
  405           {
  406                REFERRAL common[] t emp = serv ices.REFER RAL_GET_CO MMON_BY_RE GISTRY(CUR RENT_USER,  CURRENT_R EGISTRY_ID );
  407                if (temp  != null)
  408                    retu rn temp.To List<REFER RALcommon> ();
  409                return n ull;
  410           }
  411  
  412           pu blic int R EFERRAL_GE T_COMMON_B Y_REGISTRY _COUNT(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, int PAT IENT_ID, s tring SEAR CH_COLUMN,  string SE ARCH_TEXT,  bool IsPa tientList)
  413           {
  414                return _ REFERRAL_G ET_COMMON_ BY_REGISTR Y_COUNT;
  415           }
  416  
  417           pu blic List< REFERRALco mmon> REFE RRAL_GET_C OMMON_BY_R EGISTRY(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int PA TIENT_ID,  string SEA RCH_COLUMN , string S EARCH_TEXT , string S ORT_EXPRES SION, int  START_ROW,  int MAX_R OWS, bool  IsPatientL ist)
  418           {
  419                REFERRAL commonGrou p col = se rvices.REF ERRAL_GET_ COMMON_BY_ REGISTRY_F ILTER(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  PATIENT_I D, SEARCH_ COLUMN, SE ARCH_TEXT,  SORT_EXPR ESSION, ST ART_ROW, M AX_ROWS, I sPatientLi st);
  420                if (col  != null)
  421                {
  422                    REFE RRALcommon [] temp =  col.Referr alCommon;
  423                    if ( temp != nu ll)
  424                    {
  425                         _REFERRAL_ GET_COMMON _BY_REGIST RY_COUNT =  col.compl eteCount;
  426                         var list =  temp.ToLi st<REFERRA Lcommon>() ;
  427                         return lis t;
  428                    }
  429                }
  430                return n ull;
  431           }
  432  
  433           pu blic stati c List<REF ERRALcommo n> REFERRA L_GET_COMM ON_BY_PATI ENT(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int PATIEN T_ID)
  434           {
  435                REFERRAL common[] t emp = serv ices.REFER RAL_GET_CO MMON_BY_PA TIENT(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  PATIENT_I D);
  436                if (temp  != null)
  437                    retu rn temp.To List<REFER RALcommon> ();
  438                return n ull;
  439           }
  440  
  441           pu blic stati c List<REF ERRALcommo n> REFERRA L_GET_COMM ON_BY_PATI ENT(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int PATIEN T_ID, stri ng SEARCH_ COLUMN, st ring SEARC H_TEXT, st ring SORT_ EXPRESSION )
  442           {
  443                List<REF ERRALcommo n> objRetu rn = REFER RAL_GET_CO MMON_BY_PA TIENT(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  PATIENT_I D);
  444                if (objR eturn != n ull)
  445                {
  446                    if ( objReturn  != null &&  objReturn .Count !=  0)
  447                    {
  448                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  449                         {
  450                             if (SE ARCH_COLUM N.Contains ("."))
  451                             {
  452                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  453                                 if  (props !=  null && p rops.Count () == 2)
  454                                 {
  455                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList( );
  456                                 }
  457                             }
  458                             else
  459                             {
  460                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList();
  461                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st();
  462                             }
  463                         }
  464                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  465                         {
  466                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  467                             {
  468                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  469  
  470                                 if  (SORT_EXP RESSION.Co ntains("." ))
  471                                 {
  472                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  473                                      if (prop s != null  && props.C ount() ==  2)
  474                                      {
  475                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st();
  476                                      }
  477                                 }
  478                                 el se
  479                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList();
  480                             }
  481                             else
  482                             {
  483                                 if  (SORT_EXP RESSION.Co ntains("." ))
  484                                 {
  485                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  486                                      if (prop s != null  && props.C ount() ==  2)
  487                                      {
  488                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st();
  489                                      }
  490                                 }
  491                                 el se
  492                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList();
  493                             }
  494                         }
  495                    }
  496                }
  497                return o bjReturn;
  498           }
  499  
  500           pu blic stati c List<REF ERRALcommo n> REFERRA L_GET_COMM ON_BY_PROV IDER(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  int PROVI DER_ID)
  501           {
  502                REFERRAL common[] t emp = serv ices.REFER RAL_GET_CO MMON_BY_PR OVIDER(CUR RENT_USER,  CURRENT_R EGISTRY_ID , PROVIDER _ID);
  503                if (temp  != null)
  504                    retu rn temp.To List<REFER RALcommon> ();
  505                return n ull;
  506           }
  507  
  508           pu blic stati c List<REF ERRALcommo n> REFERRA L_GET_COMM ON_BY_PROV IDER(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  int PROVI DER_ID, st ring SEARC H_COLUMN,  string SEA RCH_TEXT,  string SOR T_EXPRESSI ON)
  509           {
  510                List<REF ERRALcommo n> objRetu rn = REFER RAL_GET_CO MMON_BY_PR OVIDER(CUR RENT_USER,  CURRENT_R EGISTRY_ID , PROVIDER _ID);
  511                if (objR eturn != n ull)
  512                {
  513                    if ( objReturn  != null &&  objReturn .Count !=  0)
  514                    {
  515                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  516                         {
  517                             if (SE ARCH_COLUM N.Contains ("."))
  518                             {
  519                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  520                                 if  (props !=  null && p rops.Count () == 2)
  521                                 {
  522                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList( );
  523                                 }
  524                             }
  525                             else
  526                             {
  527                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList();
  528                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st();
  529                             }
  530                         }
  531                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  532                         {
  533                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  534                             {
  535                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  536  
  537                                 if  (SORT_EXP RESSION.Co ntains("." ))
  538                                 {
  539                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  540                                      if (prop s != null  && props.C ount() ==  2)
  541                                      {
  542                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st();
  543                                      }
  544                                 }
  545                                 el se
  546                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList();
  547                             }
  548                             else
  549                             {
  550                                 if  (SORT_EXP RESSION.Co ntains("." ))
  551                                 {
  552                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  553                                      if (prop s != null  && props.C ount() ==  2)
  554                                      {
  555                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st();
  556                                      }
  557                                 }
  558                                 el se
  559                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList();
  560                             }
  561                         }
  562                    }
  563                }
  564  
  565                return o bjReturn;
  566           }
  567  
  568           pu blic stati c bool REF ERRAL_PATI ENT_EXISTS (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, int  PATIENT_I D)
  569           {
  570                return s ervices.RE FERRAL_PAT IENT_EXIST S(CURRENT_ USER, CURR ENT_REGIST RY_ID, PAT IENT_ID);
  571           }
  572  
  573           pu blic stati c int REFE RRAL_SAVE_ MANUAL(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, int PAT IENT_ID, i nt PROVIDE R_ID)
  574           {
  575                return s ervices.RE FERRAL_SAV E_MANUAL(C URRENT_USE R, CURRENT _REGISTRY_ ID, PATIEN T_ID, PROV IDER_ID);
  576           }
  577  
  578           pu blic stati c List<Sea rchResult>  RESULTS_G ET_ALL_BY_ NAME(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  string LA ST_NAME, s tring FIRS T_NAME, st ring SEARC H_TYPE)
  579           {
  580                List<Sea rchResult>  objReturn  = null;
  581  
  582                if (SEAR CH_TYPE ==  "PATIENT" )
  583                {
  584                    PATI ENT[] temp  = service s.PATIENT_ GET_ALL_BY _NAME(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  LAST_NAME , FIRST_NA ME);
  585                    if ( temp != nu ll)
  586                         objReturn  = temp.Sel ect(r => n ew SearchR esult()
  587                         {
  588                             BirthD ate = r.BI RTH_DATE.G etValueOrD efault(),
  589                             City =  r.SPATIEN T.City,
  590                             FirstN ame = r.FI RST_NAME,
  591                             LastFo ur = r.SPA TIENT.Pati entLastFou r,
  592                             LastNa me = r.LAS T_NAME,
  593                             Gender  = r.SPATI ENT.Gender ,
  594                             Postal Code = r.S PATIENT.Po stalCode,
  595                             Result Id = r.PAT IENT_ID,
  596                             State  = r.SPATIE NT.State
  597                         }).ToList< SearchResu lt>();
  598                }
  599                else if  (SEARCH_TY PE == "PRO VIDER")
  600                {
  601                    SSta ff_SStaff[ ] temp = s ervices.SS taff_SStaf f_GET_ALL_ BY_NAME(CU RRENT_USER , CURRENT_ REGISTRY_I D, LAST_NA ME, FIRST_ NAME);
  602                    if ( temp != nu ll)
  603                         objReturn  = temp.Sel ect(r => n ew SearchR esult()
  604                         {
  605                             BirthD ate = null ,
  606                             City =  r.City,
  607                             FirstN ame = r.Fi rstName,
  608                             LastFo ur = strin g.Empty,
  609                             LastNa me = r.Las tName,
  610                             Gender  = r.Gende r,
  611                             Postal Code = r.Z ipCode,
  612                             Result Id = r.Pro vider_ID,
  613                             State  = r.StateN ame
  614                         }).ToList< SearchResu lt>();
  615                }
  616  
  617                return o bjReturn;
  618           }
  619  
  620           pu blic stati c List<Sea rchResult>  RESULTS_G ET_ALL_BY_ NAME(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  string LA ST_NAME, s tring FIRS T_NAME, st ring SEARC H_TYPE, st ring SORT_ EXPRESSION , string S EARCH_COLU MN, string  SEARCH_TE XT)
  621           {
  622                // List< SearchResu lt> objRet urn = null ;
  623                List<Sea rchResult>  objReturn  = null;
  624  
  625                if (SEAR CH_TYPE ==  "PATIENT" )
  626                {
  627                    PATI ENT[] temp  = service s.PATIENT_ GET_ALL_BY _NAME(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  LAST_NAME , FIRST_NA ME);
  628                    if ( temp != nu ll)
  629                         objReturn  = temp.Sel ect(r => n ew SearchR esult()
  630                         {
  631                             BirthD ate = r.BI RTH_DATE.G etValueOrD efault(),
  632                             City =  r.SPATIEN T.City,
  633                             FirstN ame = r.FI RST_NAME,
  634                             LastFo ur = r.SPA TIENT.Pati entLastFou r,
  635                             LastNa me = r.LAS T_NAME,
  636                             Gender  = r.SPATI ENT.Gender ,
  637                             Postal Code = r.S PATIENT.Po stalCode,
  638                             Result Id = r.PAT IENT_ID,
  639                             State  = r.SPATIE NT.State
  640                         }).ToList< SearchResu lt>();
  641                }
  642                else if  (SEARCH_TY PE == "PRO VIDER")
  643                {
  644                    SSta ff_SStaff[ ] temp = s ervices.SS taff_SStaf f_GET_ALL_ BY_NAME(CU RRENT_USER , CURRENT_ REGISTRY_I D, LAST_NA ME, FIRST_ NAME);
  645                    if ( temp != nu ll)
  646                         objReturn  = temp.Sel ect(r => n ew SearchR esult()
  647                         {
  648                             BirthD ate = null ,
  649                             City =  r.City,
  650                             FirstN ame = r.Fi rstName,
  651                             LastFo ur = strin g.Empty,
  652                             LastNa me = r.Las tName,
  653                             Gender  = r.Gende r,
  654                             Postal Code = r.Z ipCode,
  655                             Result Id = r.Pro vider_ID,
  656                             State  = r.StateN ame
  657                         }).ToList< SearchResu lt>();
  658                }
  659  
  660                if (objR eturn != n ull)
  661                {
  662                    if ( objReturn  != null &&  objReturn .Count !=  0)
  663                    {
  664                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  665                         {
  666                             if (SE ARCH_COLUM N.Contains ("."))
  667                             {
  668                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  669                                 if  (props !=  null && p rops.Count () == 2)
  670                                 {
  671                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< SearchResu lt>();
  672                                 }
  673                             }
  674                             else
  675                             {
  676                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<Se archResult >();
  677                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<SearchR esult>();
  678                             }
  679                         }
  680                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  681                         {
  682                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  683                             {
  684                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  685  
  686                                 if  (SORT_EXP RESSION.Co ntains("." ))
  687                                 {
  688                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  689                                      if (prop s != null  && props.C ount() ==  2)
  690                                      {
  691                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<SearchR esult>();
  692                                      }
  693                                 }
  694                                 el se
  695                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Se archResult >();
  696                             }
  697                             else
  698                             {
  699                                 if  (SORT_EXP RESSION.Co ntains("." ))
  700                                 {
  701                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  702                                      if (prop s != null  && props.C ount() ==  2)
  703                                      {
  704                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<SearchR esult>();
  705                                      }
  706                                 }
  707                                 el se
  708                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Se archResult >();
  709                             }
  710                         }
  711                    }
  712                }
  713                return o bjReturn;
  714           }
  715  
  716           pu blic stati c bool REF ERRAL_UPDA TE_STATUS( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, int  REFERRAL_I D, int STD _REFERRALS TS_ID)
  717           {
  718                return s ervices.RE FERRAL_UPD ATE_STATUS (CURRENT_U SER, CURRE NT_REGISTR Y_ID, REFE RRAL_ID, S TD_REFERRA LSTS_ID);
  719           }
  720  
  721           #e ndregion
  722  
  723           #r egion REFE RRAL_DETAI L
  724           #e ndregion
  725  
  726           #r egion REGI STRY_COHOR T_DATA
  727  
  728           pu blic stati c List<REG ISTRY_COHO RT_DATA> R EGISTRY_CO HORT_DATA_ GET_ALL_BY _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID)
  729           {
  730                REGISTRY _COHORT_DA TA[] temp  = services .REGISTRY_ COHORT_DAT A_GET_ALL_ BY_REGISTR Y(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  731                if (temp  != null)
  732                    retu rn temp.To List<REGIS TRY_COHORT _DATA>();
  733                return n ull;
  734           }
  735  
  736           pu blic stati c List<REG ISTRY_COHO RT_DATA> R EGISTRY_CO HORT_DATA_ GET_ALL_SE LECTED_BY_ REGISTRY(s tring CURR ENT_USER,  int CURREN T_REGISTRY _ID)
  737           {
  738                REGISTRY _COHORT_DA TA[] temp  = services .REGISTRY_ COHORT_DAT A_GET_ALL_ SELECTED_B Y_REGISTRY (CURRENT_U SER, CURRE NT_REGISTR Y_ID);
  739                if (temp  != null)
  740                    retu rn temp.To List<REGIS TRY_COHORT _DATA>();
  741                return n ull;
  742           }
  743  
  744           pu blic stati c int REGI STRY_COHOR T_DATA_GET _PREVIEW_C OUNT(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  List<REGI STRY_COHOR T_DATA> co horts)
  745           {
  746                REGISTRY _COHORT_DA TA[] temp  = (cohorts  != null ?  cohorts.T oArray() :  null);
  747                return s ervices.RE GISTRY_COH ORT_DATA_G ET_PREVIEW _COUNT(CUR RENT_USER,  CURRENT_R EGISTRY_ID , temp);
  748           }
  749  
  750           pu blic stati c bool REG ISTRY_COHO RT_DATA_SA VE_LIST(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, List<R EGISTRY_CO HORT_DATA>  cohorts)
  751           {
  752                REGISTRY _COHORT_DA TA[] temp  = (cohorts  != null ?  cohorts.T oArray() :  null);
  753                return s ervices.RE GISTRY_COH ORT_DATA_S AVE_LIST(C URRENT_USE R, CURRENT _REGISTRY_ ID, temp);
  754           }
  755  
  756           #e ndregion
  757  
  758           #r egion REGI STRY_CORE_ DATA
  759  
  760           pu blic stati c REGISTRY _CORE_DATA  REGISTRY_ CORE_DATA_ GET_BY_REG ISTRY_CORE (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, int  CORE_TYPE _ID)
  761           {
  762                return s ervices.RE GISTRY_COR E_DATA_GET _BY_REGIST RY_CORE(CU RRENT_USER , CURRENT_ REGISTRY_I D, CORE_TY PE_ID);
  763           }
  764  
  765           pu blic stati c List<REG ISTRY_CORE _DATA> REG ISTRY_CORE _DATA_GET_ ALL_BY_REG ISTRY(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID )
  766           {
  767                REGISTRY _CORE_DATA [] temp =  services.R EGISTRY_CO RE_DATA_GE T_ALL_BY_R EGISTRY(CU RRENT_USER , CURRENT_ REGISTRY_I D);
  768                if (temp  != null)
  769                    retu rn temp.To List<REGIS TRY_CORE_D ATA>();
  770                return n ull;
  771           }
  772  
  773           pu blic stati c bool REG ISTRY_CORE _DATA_SAVE _LIST(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , List<REG ISTRY_CORE _DATA> cor es)
  774           {
  775                REGISTRY _CORE_DATA [] temp =  (cores !=  null ? cor es.ToArray () : null) ;
  776                return s ervices.RE GISTRY_COR E_DATA_SAV E_LIST(CUR RENT_USER,  CURRENT_R EGISTRY_ID , temp);
  777           }
  778  
  779           #e ndregion
  780  
  781           #r egion ROLE _PERMISSIO NS
  782           #e ndregion
  783  
  784           #r egion SETT INGS
  785  
  786           pu blic stati c int SETT INGS_SAVE( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, SETT INGS objSa ve)
  787           {
  788                return s ervices.SE TTINGS_SAV E(CURRENT_ USER, CURR ENT_REGIST RY_ID, obj Save);
  789           }
  790  
  791           pu blic stati c SETTINGS  SETTINGS_ GET_REGIST RYNAME(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, string  NAME)
  792           {
  793                return s ervices.SE TTINGS_GET _REGISTRYN AME(CURREN T_USER, CU RRENT_REGI STRY_ID, N AME);
  794           }
  795  
  796           pu blic stati c SETTINGS  GET_HOME_ PAGE_SETTI NG()
  797           {
  798                return s ervices.SE TTINGS_GET _HOME_PAGE ();
  799           }
  800  
  801           #e ndregion
  802  
  803           #r egion SPAT IENT
  804           #e ndregion
  805  
  806           #r egion SSta ff_SStaff
  807  
  808           pu blic stati c SStaff_S Staff SSta ff_SStaff_ GET(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int id)
  809           {
  810                return s ervices.SS taff_SStaf f_GET(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  id);
  811           }
  812  
  813           pu blic stati c int SSta ff_SStaff_ GET_ALL_BY _REGISTRY_ COUNT(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , string S EARCH_COLU MN, string  SEARCH_TE XT)
  814           {
  815                return s ervices.SS taff_SStaf f_GET_ALL_ BY_REGISTR Y_FILTER_C OUNT(CURRE NT_USER, C URRENT_REG ISTRY_ID,  SEARCH_COL UMN, SEARC H_TEXT, "" );
  816           }
  817  
  818           pu blic stati c List<SSt aff_SStaff > SStaff_S Staff_GET_ ALL_BY_REG ISTRY(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , string S EARCH_COLU MN, string  SEARCH_TE XT, string  SORT_EXPR ESSION, in t START_RO W, int MAX _ROWS)
  819           {
  820                SStaff_S Staff[] te mp = servi ces.SStaff _SStaff_GE T_ALL_BY_R EGISTRY_FI LTER(CURRE NT_USER, C URRENT_REG ISTRY_ID,  SEARCH_COL UMN, SEARC H_TEXT, SO RT_EXPRESS ION, START _ROW, MAX_ ROWS);
  821                if (temp  != null)
  822                    retu rn temp.To List<SStaf f_SStaff>( );
  823                return n ull;
  824           }
  825  
  826           pu blic stati c List<SSt aff_SStaff > SStaff_S Staff_GET_ ALL_BY_NAM E(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, st ring LAST_ NAME, stri ng FIRST_N AME)
  827           {
  828                SStaff_S Staff[] te mp = servi ces.SStaff _SStaff_GE T_ALL_BY_N AME(CURREN T_USER, CU RRENT_REGI STRY_ID, L AST_NAME,  FIRST_NAME );
  829                if (temp  != null)
  830                    retu rn temp.To List<SStaf f_SStaff>( );
  831                return n ull;
  832           }
  833  
  834           #e ndregion
  835  
  836           #r egion STD_ COUNTRY
  837           #e ndregion
  838  
  839           #r egion STD_ GUI_CONTRO LS
  840           #e ndregion
  841  
  842           #r egion STD_ INDIVIDUAL _GROUP
  843           #e ndregion
  844  
  845           #r egion STD_ INDIVIDUAL _TYPE
  846           #e ndregion
  847  
  848           #r egion STD_ INSTITUTIO N
  849  
  850           pu blic stati c STD_INST ITUTION ST D_INSTITUT ION_GET_CO MPLETE(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, int id)
  851           {
  852                return s ervices.ST D_INSTITUT ION_GET_CO MPLETE(CUR RENT_USER,  CURRENT_R EGISTRY_ID , id);
  853           }
  854  
  855           pu blic stati c List<STD _INSTITUTI ON> STD_IN STITUTION_ GET_FACS(s tring CURR ENT_USER,  int CURREN T_REGISTRY _ID)
  856           {
  857                STD_INST ITUTION[]  temp = ser vices.STD_ INSTITUTIO N_GET_FACS (CURRENT_U SER, CURRE NT_REGISTR Y_ID);
  858                if (temp  != null)
  859                    retu rn temp.To List<STD_I NSTITUTION >();
  860                return n ull;
  861           }
  862  
  863           #e ndregion
  864  
  865           #r egion STD_ MENU_ITEMS
  866  
  867           pu blic stati c STD_MENU _ITEMS STD _MENU_ITEM S_GET(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int id)
  868           {
  869                return s ervices.ST D_MENU_ITE MS_GET(CUR RENT_USER,  CURRENT_R EGISTRY_ID , id);
  870           }
  871  
  872           pu blic stati c int STD_ MENU_ITEMS _SAVE(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , STD_MENU _ITEMS obj Save)
  873           {
  874                return s ervices.ST D_MENU_ITE MS_SAVE(CU RRENT_USER , CURRENT_ REGISTRY_I D, objSave );
  875           }
  876  
  877           pu blic stati c Boolean  STD_MENU_I TEMS_DELET E(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t id)
  878           {
  879                return s ervices.ST D_MENU_ITE MS_DELETE( CURRENT_US ER, CURREN T_REGISTRY _ID, id);
  880           }
  881  
  882           pu blic stati c List<STD _MENU_ITEM S> STD_MEN U_ITEMS_GE T_ALL_BY_R EGISTRY(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID)
  883           {
  884                STD_MENU _ITEMS[] t emp = serv ices.STD_M ENU_ITEMS_ GET_ALL_BY _REGISTRY( CURRENT_US ER, CURREN T_REGISTRY _ID);
  885                if (temp  != null)
  886                    retu rn temp.To List<STD_M ENU_ITEMS> ();
  887                return n ull;
  888           }
  889  
  890           pu blic stati c List<STD _MENU_ITEM S> STD_MEN U_ITEMS_GE T_ALL_BY_R EGISTRY(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int ST D_ROLE_ID)
  891           {
  892                List<STD _MENU_ITEM S> temp =  STD_MENU_I TEMS_GET_A LL_BY_REGI STRY(CURRE NT_USER, C URRENT_REG ISTRY_ID);
  893                if (temp  != null & & STD_ROLE _ID > 0)
  894                {
  895                    temp  = temp.Wh ere(w => w .STD_ROLE_ ID == STD_ ROLE_ID).T oList();
  896                }
  897  
  898                return t emp;
  899           }
  900  
  901           pu blic stati c List<STD _MENU_ITEM S> STD_MEN U_ITEMS_GE T_ALL_BY_R EGISTRY(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int ST D_ROLE_ID,  string SO RT_EXPRESS ION, strin g SEARCH_C OLUMN, str ing SEARCH _TEXT)
  902           {
  903                List<STD _MENU_ITEM S> objRetu rn = STD_M ENU_ITEMS_ GET_ALL_BY _REGISTRY( CURRENT_US ER, CURREN T_REGISTRY _ID, STD_R OLE_ID);
  904  
  905                if (objR eturn != n ull)
  906                {
  907                    if ( objReturn  != null &&  objReturn .Count !=  0)
  908                    {
  909                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  910                         {
  911                             if (SE ARCH_COLUM N.Contains ("."))
  912                             {
  913                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  914                                 if  (props !=  null && p rops.Count () == 2)
  915                                 {
  916                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_MENU_I TEMS>();
  917                                 }
  918                             }
  919                             else
  920                             {
  921                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_MENU_ITE MS>();
  922                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_MEN U_ITEMS>() ;
  923                             }
  924                         }
  925                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  926                         {
  927                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  928                             {
  929                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  930  
  931                                 if  (SORT_EXP RESSION.Co ntains("." ))
  932                                 {
  933                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  934                                      if (prop s != null  && props.C ount() ==  2)
  935                                      {
  936                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_MEN U_ITEMS>() ;
  937                                      }
  938                                      else if  (props !=  null && pr ops.Count( ) == 3)
  939                                      {
  940                                      }
  941                                 }
  942                                 el se
  943                                 {
  944                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_MENU_ITE MS>();
  945                                 }
  946                             }
  947                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  948                             {
  949                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  950                                 if  (SORT_EXP RESSION.Co ntains("." ))
  951                                 {
  952                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  953                                      if (prop s != null  && props.C ount() ==  2)
  954                                      {
  955                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_MEN U_ITEMS>() ;
  956                                      }
  957                                      else if  (props !=  null && pr ops.Count( ) == 3)
  958                                      {
  959                                      }
  960                                 }
  961                                 el se
  962                                 {
  963                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_MENU_ITE MS>();
  964                                 }
  965                             }
  966                             else
  967                             {
  968                                 if  (SORT_EXP RESSION.Co ntains("." ))
  969                                 {
  970                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  971                                      if (prop s != null  && props.C ount() ==  2)
  972                                      {
  973                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_MEN U_ITEMS>() ;
  974                                      }
  975                                      else if  (props !=  null && pr ops.Count( ) == 3)
  976                                      {
  977                                      }
  978                                 }
  979                                 el se
  980                                 {
  981                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_MENU_ITE MS>();
  982                                 }
  983                             }
  984                         }
  985                    }
  986                }
  987  
  988                return o bjReturn;
  989           }
  990  
  991           pu blic stati c List<STD _WEB_PAGES > STD_WEB_ PAGES_GET_ ALL(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  string SOR T_EXPRESSI ON, string  SEARCH_CO LUMN, stri ng SEARCH_ TEXT)
  992           {
  993                List<STD _WEB_PAGES > objRetur n = STD_WE B_PAGES_GE T_ALL(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  994  
  995                if (objR eturn != n ull)
  996                {
  997                    if ( objReturn  != null &&  objReturn .Count !=  0)
  998                    {
  999                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1000                         {
  1001                             if (SE ARCH_COLUM N.Contains ("."))
  1002                             {
  1003                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1004                                 if  (props !=  null && p rops.Count () == 2)
  1005                                 {
  1006                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_WEB_PA GES>();
  1007                                 }
  1008                                 el se
  1009                                 {
  1010                                      objRetur n = objRet urn.Where( w => w.Get Type().Get Property(S EARCH_COLU MN).GetVal ue(w) != n ull).ToLis t<STD_WEB_ PAGES>();
  1011                                      objRetur n = objRet urn.Where( w => w.Get Type().Get Property(S EARCH_COLU MN).GetVal ue(w).ToSt ring().ToL ower().Con tains(SEAR CH_TEXT.To Lower())). ToList<STD _WEB_PAGES >();
  1012                                 }
  1013                             }
  1014                             else
  1015                             {
  1016                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_WEB_PAGE S>();
  1017                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_WEB _PAGES>();
  1018                             }
  1019                         }
  1020                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1021                         {
  1022                             if (SO RT_EXPRESS ION.Length  > 3)
  1023                             {
  1024                                 if  (SORT_EXP RESSION.Le ngth >= 4  && SORT_EX PRESSION.S ubstring(S ORT_EXPRES SION.Lengt h - 4, 4). ToUpper()  == "DESC")
  1025                                 {
  1026                                      SORT_EXP RESSION =  SORT_EXPRE SSION.Subs tring(0, S ORT_EXPRES SION.Lengt h - 5);
  1027  
  1028                                      if (SORT _EXPRESSIO N.Contains ("."))
  1029                                      {
  1030                                          stri ng[] props  = SORT_EX PRESSION.S plit('.');
  1031                                          if ( props != n ull && pro ps.Count()  == 2)
  1032                                          {
  1033                                               objReturn  = objRetur n.OrderByD escending( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s))). ToList<STD _WEB_PAGES >();
  1034                                          }
  1035                                      }
  1036                                      else
  1037                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(SORT_ EXPRESSION ).GetValue (s)).ToLis t<STD_WEB_ PAGES>();
  1038                                 }
  1039                                 el se
  1040                                 {
  1041                                      if (SORT _EXPRESSIO N.Contains ("."))
  1042                                      {
  1043                                          stri ng[] props  = SORT_EX PRESSION.S plit('.');
  1044                                          if ( props != n ull && pro ps.Count()  == 2)
  1045                                          {
  1046                                               objReturn  = objRetur n.OrderBy( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s))). ToList<STD _WEB_PAGES >();
  1047                                          }
  1048                                      }
  1049                                      else
  1050                                      {
  1051                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(SORT_ EXPRESSION ).GetValue (s)).ToLis t<STD_WEB_ PAGES>();
  1052                                      }
  1053                                 }
  1054                             }
  1055                             else
  1056                             {
  1057                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1058                                 {
  1059                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1060                                      if (prop s != null  && props.C ount() ==  2)
  1061                                      {
  1062                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_WEB _PAGES>();
  1063                                      }
  1064                                 }
  1065                                 el se
  1066                                 {
  1067                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_WEB_PAGE S>();
  1068                                 }
  1069                             }
  1070                         }
  1071                    }
  1072                }
  1073                return o bjReturn;
  1074           }
  1075  
  1076           pu blic stati c CrsMenu  STD_MENU_I TEMS_GET_M ENU(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  string PAT H)
  1077           {
  1078                CrsMenu  crsMenu =  null;
  1079  
  1080                STD_MENU _ITEMS[] t emp = serv ices.STD_M ENU_ITEMS_ GET_MENU(C URRENT_USE R, CURRENT _REGISTRY_ ID, PATH);
  1081                if (temp  != null)
  1082                {
  1083                    List <CrsMenuIt em> menuIt ems = new  List<CrsMe nuItem>();
  1084  
  1085                    fore ach (STD_M ENU_ITEMS  item in te mp)
  1086                    {
  1087                         if (item.M ENU_PAGE ! = null)
  1088                             menuIt ems.Add(ne w CrsMenuI tem(item.M ENU_PAGE.D ISPLAY_TEX T, item.ME NU_PAGE.UR L));
  1089                    }
  1090  
  1091                    crsM enu = new  CrsMenu(me nuItems);
  1092                }
  1093  
  1094                return c rsMenu;
  1095           }
  1096  
  1097           #e ndregion
  1098  
  1099           #r egion STD_ QUESTION
  1100  
  1101           pu blic stati c STD_QUES TION STD_Q UESTION_GE T(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t id)
  1102           {
  1103                return s ervices.ST D_QUESTION _GET(CURRE NT_USER, C URRENT_REG ISTRY_ID,  id);
  1104           }
  1105  
  1106           pu blic stati c int STD_ QUESTION_S AVE(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  STD_QUESTI ON objSave )
  1107           {
  1108                return s ervices.ST D_QUESTION _SAVE(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  objSave);
  1109           }
  1110  
  1111           pu blic stati c Boolean  STD_QUESTI ON_DELETE( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, int  id)
  1112           {
  1113                return s ervices.ST D_QUESTION _DELETE(CU RRENT_USER , CURRENT_ REGISTRY_I D, id);
  1114           }
  1115  
  1116           pu blic stati c List<STD _QUESTION>  STD_QUEST ION_GET_AL L_BY_SURVE Y(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t STD_SURV EY_TYPE_ID )
  1117           {
  1118                STD_QUES TION[] tem p = servic es.STD_QUE STION_GET_ ALL_BY_SUR VEY(CURREN T_USER, CU RRENT_REGI STRY_ID, S TD_SURVEY_ TYPE_ID);
  1119                if (temp  != null)
  1120                    retu rn temp.To List<STD_Q UESTION>() ;
  1121                return n ull;
  1122           }
  1123  
  1124           pu blic stati c List<STD _QUESTION>  STD_QUEST ION_GET_AL L_BY_SURVE Y(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t STD_SURV EY_TYPE_ID , string S EARCH_COLU MN, string  SEARCH_TE XT, string  SORT_EXPR ESSION)
  1125           {
  1126                List<STD _QUESTION>  objReturn  = STD_QUE STION_GET_ ALL_BY_SUR VEY(CURREN T_USER, CU RRENT_REGI STRY_ID, S TD_SURVEY_ TYPE_ID);
  1127                if (objR eturn != n ull)
  1128                {
  1129                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1130                    {
  1131                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1132                         {
  1133                             if (SE ARCH_COLUM N.Contains ("."))
  1134                             {
  1135                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1136                                 if  (props !=  null && p rops.Count () == 2)
  1137                                 {
  1138                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_QUESTI ON>();
  1139                                 }
  1140                             }
  1141                             else
  1142                             {
  1143                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_QUESTION >();
  1144                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_QUE STION>();
  1145                             }
  1146                         }
  1147                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1148                         {
  1149                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1150                             {
  1151                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1152  
  1153                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1154                                 {
  1155                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1156                                      if (prop s != null  && props.C ount() ==  2)
  1157                                      {
  1158                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_QUE STION>();
  1159                                      }
  1160                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1161                                      {
  1162                                      }
  1163                                 }
  1164                                 el se
  1165                                 {
  1166                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_QUESTION >();
  1167                                 }
  1168                             }
  1169                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  1170                             {
  1171                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  1172                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1173                                 {
  1174                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1175                                      if (prop s != null  && props.C ount() ==  2)
  1176                                      {
  1177                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_QUE STION>();
  1178                                      }
  1179                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1180                                      {
  1181                                      }
  1182                                 }
  1183                                 el se
  1184                                 {
  1185                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_QUESTION >();
  1186                                 }
  1187                             }
  1188                             else
  1189                             {
  1190                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1191                                 {
  1192                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1193                                      if (prop s != null  && props.C ount() ==  2)
  1194                                      {
  1195                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_QUE STION>();
  1196                                      }
  1197                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1198                                      {
  1199                                      }
  1200                                 }
  1201                                 el se
  1202                                 {
  1203                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_QUESTION >();
  1204                                 }
  1205                             }
  1206                         }
  1207                    }
  1208                }
  1209  
  1210                return o bjReturn;
  1211           }
  1212  
  1213           pu blic stati c bool STD _QUESTION_ COPY_CHOIC ES(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID, i nt OLD_QUE STION_ID,  int NEW_QU ESTION_ID)
  1214           {
  1215                return s ervices.ST D_QUESTION _COPY_CHOI CES(CURREN T_USER, CU RRENT_REGI STRY_ID, O LD_QUESTIO N_ID, NEW_ QUESTION_I D);
  1216           }
  1217  
  1218           #e ndregion
  1219  
  1220           #r egion STD_ QUESTION_C HOICE
  1221  
  1222           pu blic stati c STD_QUES TION_CHOIC E STD_QUES TION_CHOIC E_GET(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int id)
  1223           {
  1224                return s ervices.ST D_QUESTION _CHOICE_GE T(CURRENT_ USER, CURR ENT_REGIST RY_ID, id) ;
  1225           }
  1226  
  1227           pu blic stati c int STD_ QUESTION_C HOICE_SAVE (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, STD _QUESTION_ CHOICE obj Save)
  1228           {
  1229                return s ervices.ST D_QUESTION _CHOICE_SA VE(CURRENT _USER, CUR RENT_REGIS TRY_ID, ob jSave);
  1230           }
  1231  
  1232           pu blic stati c Boolean  STD_QUESTI ON_CHOICE_ DELETE(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, int id)
  1233           {
  1234                return s ervices.ST D_QUESTION _CHOICE_DE LETE(CURRE NT_USER, C URRENT_REG ISTRY_ID,  id);
  1235           }
  1236  
  1237           pu blic stati c List<STD _QUESTION_ CHOICE> ST D_QUESTION _CHOICE_GE T_ALL_BY_Q UESTION(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int ST D_QUESTION _ID)
  1238           {
  1239                STD_QUES TION_CHOIC E[] temp =  services. STD_QUESTI ON_CHOICE_ GET_ALL_BY _QUESTION( CURRENT_US ER, CURREN T_REGISTRY _ID, STD_Q UESTION_ID );
  1240                if (temp  != null)
  1241                    retu rn temp.To List<STD_Q UESTION_CH OICE>();
  1242                return n ull;
  1243           }
  1244  
  1245           pu blic stati c List<STD _QUESTION_ CHOICE> ST D_QUESTION _CHOICE_GE T_ALL_BY_Q UESTION(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int ST D_QUESTION _ID, strin g SORT_EXP RESSION, s tring SEAR CH_COLUMN,  string SE ARCH_TEXT)
  1246           {
  1247                List<STD _QUESTION_ CHOICE> ob jReturn =  STD_QUESTI ON_CHOICE_ GET_ALL_BY _QUESTION( CURRENT_US ER, CURREN T_REGISTRY _ID, STD_Q UESTION_ID );
  1248  
  1249                if (objR eturn != n ull)
  1250                {
  1251                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1252                    {
  1253                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1254                         {
  1255                             if (SE ARCH_COLUM N.Contains ("."))
  1256                             {
  1257                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1258                                 if  (props !=  null && p rops.Count () == 2)
  1259                                 {
  1260                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_QUESTI ON_CHOICE> ();
  1261                                 }
  1262                             }
  1263                             else
  1264                             {
  1265                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_QUESTION _CHOICE>() ;
  1266                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_QUE STION_CHOI CE>();
  1267                             }
  1268                         }
  1269                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1270                         {
  1271                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1272                             {
  1273                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1274  
  1275                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1276                                 {
  1277                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1278                                      if (prop s != null  && props.C ount() ==  2)
  1279                                      {
  1280                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_QUE STION_CHOI CE>();
  1281                                      }
  1282                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1283                                      {
  1284                                      }
  1285                                 }
  1286                                 el se
  1287                                 {
  1288                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_QUESTION _CHOICE>() ;
  1289                                 }
  1290                             }
  1291                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  1292                             {
  1293                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  1294                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1295                                 {
  1296                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1297                                      if (prop s != null  && props.C ount() ==  2)
  1298                                      {
  1299                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_QUE STION_CHOI CE>();
  1300                                      }
  1301                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1302                                      {
  1303                                      }
  1304                                 }
  1305                                 el se
  1306                                 {
  1307                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_QUESTION _CHOICE>() ;
  1308                                 }
  1309                             }
  1310                             else
  1311                             {
  1312                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1313                                 {
  1314                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1315                                      if (prop s != null  && props.C ount() ==  2)
  1316                                      {
  1317                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_QUE STION_CHOI CE>();
  1318                                      }
  1319                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1320                                      {
  1321                                      }
  1322                                 }
  1323                                 el se
  1324                                 {
  1325                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_QUESTION _CHOICE>() ;
  1326                                 }
  1327                             }
  1328                         }
  1329                    }
  1330                }
  1331  
  1332                return o bjReturn;
  1333           }
  1334  
  1335           #e ndregion
  1336  
  1337           #r egion STD_ REFERRALST S
  1338  
  1339           pu blic stati c STD_REFE RRALSTS ST D_REFERRAL STS_GET_BY _CODE(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , string C ODE)
  1340           {
  1341                return s ervices.ST D_REFERRAL STS_GET_BY _CODE(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  CODE);
  1342           }
  1343  
  1344           #e ndregion
  1345  
  1346           #r egion STD_ REG_UDFs
  1347  
  1348           pu blic stati c STD_REG_ UDFs STD_R EG_UDFs_GE T(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t id)
  1349           {
  1350                return s ervices.ST D_REG_UDFs _GET(CURRE NT_USER, C URRENT_REG ISTRY_ID,  id);
  1351           }
  1352  
  1353           pu blic stati c int STD_ REG_UDFs_S AVE(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  STD_REG_UD Fs objSave )
  1354           {
  1355                return s ervices.ST D_REG_UDFs _SAVE(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  objSave);
  1356           }
  1357  
  1358           pu blic stati c Boolean  STD_REG_UD Fs_DELETE( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, int  id)
  1359           {
  1360                return s ervices.ST D_REG_UDFs _DELETE(CU RRENT_USER , CURRENT_ REGISTRY_I D, id);
  1361           }
  1362  
  1363           pu blic stati c List<STD _REG_UDFs>  STD_REG_U DFs_GET_AL L_BY_REGIS TRY(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID)
  1364           {
  1365                STD_REG_ UDFs[] tem p = servic es.STD_REG _UDFs_GET_ ALL_BY_REG ISTRY(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  1366                if (temp  != null)
  1367                    retu rn temp.To List<STD_R EG_UDFs>() ;
  1368                return n ull;
  1369           }
  1370  
  1371           pu blic stati c List<STD _REG_UDFs>  STD_REG_U DFs_GET_AL L_BY_REGIS TRY(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  string SEA RCH_COLUMN , string S EARCH_TEXT , string S ORT_EXPRES SION)
  1372           {
  1373                List<STD _REG_UDFs>  objReturn  = STD_REG _UDFs_GET_ ALL_BY_REG ISTRY(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  1374                if (objR eturn != n ull)
  1375                {
  1376                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1377                    {
  1378                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1379                         {
  1380                             if (SE ARCH_COLUM N.Contains ("."))
  1381                             {
  1382                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1383                                 if  (props !=  null && p rops.Count () == 2)
  1384                                 {
  1385                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_REG_UD Fs>();
  1386                                 }
  1387                             }
  1388                             else
  1389                             {
  1390                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_REG_UDFs >();
  1391                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_REG _UDFs>();
  1392                             }
  1393                         }
  1394                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1395                         {
  1396                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1397                             {
  1398                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1399  
  1400                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1401                                 {
  1402                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1403                                      if (prop s != null  && props.C ount() ==  2)
  1404                                      {
  1405                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG _UDFs>();
  1406                                      }
  1407                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1408                                      {
  1409                                      }
  1410                                 }
  1411                                 el se
  1412                                 {
  1413                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REG_UDFs >();
  1414                                 }
  1415                             }
  1416                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  1417                             {
  1418                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  1419                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1420                                 {
  1421                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1422                                      if (prop s != null  && props.C ount() ==  2)
  1423                                      {
  1424                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG _UDFs>();
  1425                                      }
  1426                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1427                                      {
  1428                                      }
  1429                                 }
  1430                                 el se
  1431                                 {
  1432                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REG_UDFs >();
  1433                                 }
  1434                             }
  1435                             else
  1436                             {
  1437                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1438                                 {
  1439                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1440                                      if (prop s != null  && props.C ount() ==  2)
  1441                                      {
  1442                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG _UDFs>();
  1443                                      }
  1444                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1445                                      {
  1446                                      }
  1447                                 }
  1448                                 el se
  1449                                 {
  1450                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REG_UDFs >();
  1451                                 }
  1452                             }
  1453                         }
  1454                    }
  1455                }
  1456  
  1457                return o bjReturn;
  1458           }
  1459  
  1460           #e ndregion
  1461  
  1462           #r egion STD_ REGISTRY
  1463  
  1464           pu blic stati c STD_REGI STRY STD_R EGISTRY_GE T(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t id)
  1465           {
  1466                return s ervices.ST D_REGISTRY _GET(CURRE NT_USER, C URRENT_REG ISTRY_ID,  id);
  1467           }
  1468  
  1469           pu blic stati c int STD_ REGISTRY_S AVE(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  STD_REGIST RY objSave )
  1470           {
  1471                return s ervices.ST D_REGISTRY _SAVE(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  objSave);
  1472           }
  1473  
  1474           pu blic stati c Boolean  STD_REGIST RY_DELETE( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, int  id)
  1475           {
  1476                return s ervices.ST D_REGISTRY _DELETE(CU RRENT_USER , CURRENT_ REGISTRY_I D, id);
  1477           }
  1478  
  1479           pu blic stati c STD_REGI STRY STD_R EGISTRY_GE T_COMPLETE (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, int  ID)
  1480           {
  1481                return s ervices.ST D_REGISTRY _GET_COMPL ETE(CURREN T_USER, CU RRENT_REGI STRY_ID, I D);
  1482           }
  1483  
  1484           pu blic stati c STD_REGI STRY STD_R EGISTRY_GE T_SYSTEM()
  1485           {
  1486                return s ervices.ST D_REGISTRY _GET_SYSTE M();
  1487           }
  1488  
  1489           pu blic stati c List<STD _REGISTRY>  STD_REGIS TRY_GET_AL L_BY_USER( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID)
  1490           {
  1491                STD_REGI STRY[] tem p = servic es.STD_REG ISTRY_GET_ ALL_BY_USE R(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  1492                if (temp  != null)
  1493                    retu rn temp.To List<STD_R EGISTRY>() ;
  1494                return n ull;
  1495           }
  1496  
  1497           pu blic stati c List<STD _REGISTRY>  STD_REGIS TRY_GET_AL L_BY_USER( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, stri ng SEARCH_ COLUMN, st ring SEARC H_TEXT, st ring SORT_ EXPRESSION )
  1498           {
  1499                List<STD _REGISTRY>  objReturn  = STD_REG ISTRY_GET_ ALL_BY_USE R(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  1500                if (objR eturn != n ull)
  1501                {
  1502                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1503                    {
  1504                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1505                         {
  1506                             if (SE ARCH_COLUM N.Contains ("."))
  1507                             {
  1508                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1509                                 if  (props !=  null && p rops.Count () == 2)
  1510                                 {
  1511                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_REGIST RY>();
  1512                                 }
  1513                             }
  1514                             else
  1515                             {
  1516                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_REGISTRY >();
  1517                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_REG ISTRY>();
  1518                             }
  1519                         }
  1520                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1521                         {
  1522                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1523                             {
  1524                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1525  
  1526                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1527                                 {
  1528                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1529                                      if (prop s != null  && props.C ount() ==  2)
  1530                                      {
  1531                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG ISTRY>();
  1532                                      }
  1533                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1534                                      {
  1535                                      }
  1536                                 }
  1537                                 el se
  1538                                 {
  1539                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REGISTRY >();
  1540                                 }
  1541                             }
  1542                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  1543                             {
  1544                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  1545                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1546                                 {
  1547                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1548                                      if (prop s != null  && props.C ount() ==  2)
  1549                                      {
  1550                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG ISTRY>();
  1551                                      }
  1552                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1553                                      {
  1554                                      }
  1555                                 }
  1556                                 el se
  1557                                 {
  1558                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REGISTRY >();
  1559                                 }
  1560                             }
  1561                             else
  1562                             {
  1563                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1564                                 {
  1565                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1566                                      if (prop s != null  && props.C ount() ==  2)
  1567                                      {
  1568                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG ISTRY>();
  1569                                      }
  1570                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1571                                      {
  1572                                      }
  1573                                 }
  1574                                 el se
  1575                                 {
  1576                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REGISTRY >();
  1577                                 }
  1578                             }
  1579                         }
  1580                    }
  1581                }
  1582  
  1583                return o bjReturn;
  1584           }
  1585  
  1586           pu blic stati c List<STD _REGISTRY>  STD_REGIS TRY_GET_AL L_NON_SYST EM()
  1587           {
  1588                STD_REGI STRY[] tem p = servic es.STD_REG ISTRY_GET_ ALL_NON_SY STEM();
  1589                if (temp  != null)
  1590                    retu rn temp.To List<STD_R EGISTRY>() ;
  1591                return n ull;
  1592           }
  1593  
  1594           pu blic stati c List<STD _REGISTRY>  STD_REGIS TRY_GET_AL L_NON_SYST EM_BY_USER (string CU RRENT_USER , int CURR ENT_REGIST RY_ID)
  1595           {
  1596                STD_REGI STRY[] tem p = servic es.STD_REG ISTRY_GET_ ALL_NON_SY STEM_BY_US ER(CURRENT _USER, CUR RENT_REGIS TRY_ID);
  1597                if (temp  != null)
  1598                    retu rn temp.To List<STD_R EGISTRY>() ;
  1599                return n ull;
  1600           }
  1601  
  1602           pu blic stati c List<STD _REGISTRY>  STD_REGIS TRY_GET_AL L_NON_SYST EM_BY_USER (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, str ing SORT_E XPRESSION,  string SE ARCH_COLUM N, string  SEARCH_TEX T)
  1603           {
  1604                List<STD _REGISTRY>  objReturn  = STD_REG ISTRY_GET_ ALL_NON_SY STEM_BY_US ER(CURRENT _USER, CUR RENT_REGIS TRY_ID);
  1605                if (objR eturn != n ull)
  1606                {
  1607                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1608                    {
  1609                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1610                         {
  1611                             if (SE ARCH_COLUM N.Contains ("."))
  1612                             {
  1613                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1614                                 if  (props !=  null && p rops.Count () == 2)
  1615                                 {
  1616                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_REGIST RY>();
  1617                                 }
  1618                             }
  1619                             else
  1620                             {
  1621                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_REGISTRY >();
  1622                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_REG ISTRY>();
  1623                             }
  1624                         }
  1625                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1626                         {
  1627                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1628                             {
  1629                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1630  
  1631                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1632                                 {
  1633                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1634                                      if (prop s != null  && props.C ount() ==  2)
  1635                                      {
  1636                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG ISTRY>();
  1637                                      }
  1638                                 }
  1639                                 el se
  1640                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REGISTRY >();
  1641                             }
  1642                             else
  1643                             {
  1644                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1645                                 {
  1646                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1647                                      if (prop s != null  && props.C ount() ==  2)
  1648                                      {
  1649                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_REG ISTRY>();
  1650                                      }
  1651                                 }
  1652                                 el se
  1653                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_REGISTRY >();
  1654                             }
  1655                         }
  1656                    }
  1657                }
  1658                return o bjReturn;
  1659           }
  1660  
  1661           #e ndregion
  1662  
  1663           #r egion STD_ REGISTRY_C ODES
  1664           #e ndregion
  1665  
  1666           #r egion STD_ REGISTRY_C OHORT_TYPE S
  1667           #e ndregion
  1668  
  1669           #r egion STD_ REGISTRY_C ORE_TYPES
  1670           #e ndregion
  1671  
  1672           #r egion STD_ ROLE
  1673  
  1674           pu blic stati c STD_ROLE  STD_ROLE_ GET(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int id)
  1675           {
  1676                return s ervices.ST D_ROLE_GET (CURRENT_U SER, CURRE NT_REGISTR Y_ID, id);
  1677           }
  1678  
  1679           pu blic stati c List<STD _ROLE> STD _ROLE_GET_ ALL_SYSTEM _ROLES(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D)
  1680           {
  1681                STD_ROLE [] temp =  services.S TD_ROLE_GE T_ALL_SYST EM_ROLES(C URRENT_USE R, CURRENT _REGISTRY_ ID);
  1682                if (temp  != null)
  1683                    retu rn temp.To List<STD_R OLE>();
  1684                return n ull;
  1685           }
  1686  
  1687           pu blic stati c List<STD _ROLE> STD _ROLE_GET_ ALL_REGIST RY_ROLES(s tring CURR ENT_USER,  int CURREN T_REGISTRY _ID)
  1688           {
  1689                STD_ROLE [] temp =  services.S TD_ROLE_GE T_ALL_REGI STRY_ROLES (CURRENT_U SER, CURRE NT_REGISTR Y_ID);
  1690                if (temp  != null)
  1691                    retu rn temp.To List<STD_R OLE>();
  1692                return n ull;
  1693           }
  1694  
  1695           pu blic stati c List<STD _ROLE> STD _ROLE_GET_ ALL_REGIST RY_ROLES(s tring CURR ENT_USER,  int CURREN T_REGISTRY _ID, strin g SEARCH_C OLUMN, str ing SEARCH _TEXT, str ing SORT_E XPRESSION)
  1696           {
  1697                List<STD _ROLE> obj Return = S TD_ROLE_GE T_ALL_REGI STRY_ROLES (CURRENT_U SER, CURRE NT_REGISTR Y_ID);
  1698                if (objR eturn != n ull)
  1699                {
  1700                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1701                    {
  1702                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1703                         {
  1704                             if (SE ARCH_COLUM N.Contains ("."))
  1705                             {
  1706                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1707                                 if  (props !=  null && p rops.Count () == 2)
  1708                                 {
  1709                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_ROLE>( );
  1710                                 }
  1711                             }
  1712                             else
  1713                             {
  1714                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_ROLE>();
  1715                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_ROL E>();
  1716                             }
  1717                         }
  1718                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1719                         {
  1720                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1721                             {
  1722                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1723  
  1724                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1725                                 {
  1726                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1727                                      if (prop s != null  && props.C ount() ==  2)
  1728                                      {
  1729                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_ROL E>();
  1730                                      }
  1731                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1732                                      {
  1733                                      }
  1734                                 }
  1735                                 el se
  1736                                 {
  1737                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_ROLE>();
  1738                                 }
  1739                             }
  1740                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  1741                             {
  1742                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  1743                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1744                                 {
  1745                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1746                                      if (prop s != null  && props.C ount() ==  2)
  1747                                      {
  1748                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_ROL E>();
  1749                                      }
  1750                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1751                                      {
  1752                                      }
  1753                                 }
  1754                                 el se
  1755                                 {
  1756                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_ROLE>();
  1757                                 }
  1758                             }
  1759                             else
  1760                             {
  1761                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1762                                 {
  1763                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1764                                      if (prop s != null  && props.C ount() ==  2)
  1765                                      {
  1766                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_ROL E>();
  1767                                      }
  1768                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1769                                      {
  1770                                      }
  1771                                 }
  1772                                 el se
  1773                                 {
  1774                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_ROLE>();
  1775                                 }
  1776                             }
  1777                         }
  1778                    }
  1779                }
  1780  
  1781                return o bjReturn;
  1782           }
  1783  
  1784           pu blic stati c List<STD _ROLE> STD _ROLE_GET_ ALL_BY_USE R_REGISTRY (string CU RRENT_USER , int CURR ENT_REGIST RY_ID)
  1785           {
  1786                STD_ROLE [] temp =  services.S TD_ROLE_GE T_ALL_BY_U SER_REGIST RY(CURRENT _USER, CUR RENT_REGIS TRY_ID);
  1787                if (temp  != null)
  1788                    retu rn temp.To List<STD_R OLE>();
  1789                return n ull;
  1790           }
  1791  
  1792           pu blic stati c List<STD _ROLE> STD _ROLE_GET_ ALL_BY_USE R_REGISTRY (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, str ing STD_RO LE_ID, str ing SORT_E XPRESSION,  string SE ARCH_COLUM N, string  SEARCH_TEX T)
  1793           {
  1794                List<STD _ROLE> obj Return = S TD_ROLE_GE T_ALL_BY_U SER_REGIST RY(CURRENT _USER, CUR RENT_REGIS TRY_ID);
  1795                if (objR eturn != n ull)
  1796                {
  1797                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1798                    {
  1799                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1800                         {
  1801                             if (SE ARCH_COLUM N.Contains ("."))
  1802                             {
  1803                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1804                                 if  (props !=  null && p rops.Count () == 2)
  1805                                 {
  1806                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_ROLE>( );
  1807                                 }
  1808                             }
  1809                             else
  1810                             {
  1811                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_ROLE>();
  1812                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_ROL E>();
  1813                             }
  1814                         }
  1815                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1816                         {
  1817                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1818                             {
  1819                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1820  
  1821                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1822                                 {
  1823                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1824                                      if (prop s != null  && props.C ount() ==  2)
  1825                                      {
  1826                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_ROL E>();
  1827                                      }
  1828                                 }
  1829                                 el se
  1830                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_ROLE>();
  1831                             }
  1832                             else
  1833                             {
  1834                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1835                                 {
  1836                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1837                                      if (prop s != null  && props.C ount() ==  2)
  1838                                      {
  1839                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_ROL E>();
  1840                                      }
  1841                                 }
  1842                                 el se
  1843                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_ROLE>();
  1844                             }
  1845                         }
  1846                    }
  1847                }
  1848                return o bjReturn;
  1849           }
  1850  
  1851           #e ndregion
  1852  
  1853           #r egion STD_ SERVICE_OC CUPATION
  1854           #e ndregion
  1855  
  1856           #r egion STD_ STATE
  1857           #e ndregion
  1858  
  1859           #r egion STD_ SURVEY_SEC TION
  1860           #e ndregion
  1861  
  1862           #r egion STD_ SURVEY_SUB _SECTION
  1863           #e ndregion
  1864  
  1865           #r egion STD_ SURVEY_TYP E
  1866  
  1867           pu blic stati c STD_SURV EY_TYPE ST D_SURVEY_T YPE_GET(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int id )
  1868           {
  1869                return s ervices.ST D_SURVEY_T YPE_GET(CU RRENT_USER , CURRENT_ REGISTRY_I D, id);
  1870           }
  1871  
  1872           pu blic stati c int STD_ SURVEY_TYP E_SAVE(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, STD_SUR VEY_TYPE o bjSave)
  1873           {
  1874                return s ervices.ST D_SURVEY_T YPE_SAVE(C URRENT_USE R, CURRENT _REGISTRY_ ID, objSav e);
  1875           }
  1876  
  1877           pu blic stati c Boolean  STD_SURVEY _TYPE_DELE TE(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID, i nt id)
  1878           {
  1879                return s ervices.ST D_SURVEY_T YPE_DELETE (CURRENT_U SER, CURRE NT_REGISTR Y_ID, id);
  1880           }
  1881  
  1882           pu blic stati c List<STD _SURVEY_TY PE> STD_SU RVEY_TYPE_ GET_ALL_BY _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID)
  1883           {
  1884                STD_SURV EY_TYPE[]  temp = ser vices.STD_ SURVEY_TYP E_GET_ALL_ BY_REGISTR Y(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  1885                if (temp  != null)
  1886                    retu rn temp.To List<STD_S URVEY_TYPE >();
  1887                return n ull;
  1888           }
  1889  
  1890           pu blic stati c List<STD _SURVEY_TY PE> STD_SU RVEY_TYPE_ GET_ALL_BY _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, stri ng SEARCH_ COLUMN, st ring SEARC H_TEXT, st ring SORT_ EXPRESSION )
  1891           {
  1892                List<STD _SURVEY_TY PE> objRet urn = STD_ SURVEY_TYP E_GET_ALL_ BY_REGISTR Y(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  1893                if (objR eturn != n ull)
  1894                {
  1895                    if ( objReturn  != null &&  objReturn .Count !=  0)
  1896                    {
  1897                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  1898                         {
  1899                             if (SE ARCH_COLUM N.Contains ("."))
  1900                             {
  1901                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  1902                                 if  (props !=  null && p rops.Count () == 2)
  1903                                 {
  1904                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_SURVEY _TYPE>();
  1905                                 }
  1906                             }
  1907                             else
  1908                             {
  1909                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_SURVEY_T YPE>();
  1910                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_SUR VEY_TYPE>( );
  1911                             }
  1912                         }
  1913                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  1914                         {
  1915                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  1916                             {
  1917                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  1918  
  1919                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1920                                 {
  1921                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1922                                      if (prop s != null  && props.C ount() ==  2)
  1923                                      {
  1924                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_SUR VEY_TYPE>( );
  1925                                      }
  1926                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1927                                      {
  1928                                      }
  1929                                 }
  1930                                 el se
  1931                                 {
  1932                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_SURVEY_T YPE>();
  1933                                 }
  1934                             }
  1935                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  1936                             {
  1937                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  1938                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1939                                 {
  1940                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1941                                      if (prop s != null  && props.C ount() ==  2)
  1942                                      {
  1943                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_SUR VEY_TYPE>( );
  1944                                      }
  1945                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1946                                      {
  1947                                      }
  1948                                 }
  1949                                 el se
  1950                                 {
  1951                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_SURVEY_T YPE>();
  1952                                 }
  1953                             }
  1954                             else
  1955                             {
  1956                                 if  (SORT_EXP RESSION.Co ntains("." ))
  1957                                 {
  1958                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  1959                                      if (prop s != null  && props.C ount() ==  2)
  1960                                      {
  1961                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_SUR VEY_TYPE>( );
  1962                                      }
  1963                                      else if  (props !=  null && pr ops.Count( ) == 3)
  1964                                      {
  1965                                      }
  1966                                 }
  1967                                 el se
  1968                                 {
  1969                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_SURVEY_T YPE>();
  1970                                 }
  1971                             }
  1972                         }
  1973                    }
  1974                }
  1975  
  1976                return o bjReturn;
  1977           }
  1978  
  1979           #e ndregion
  1980  
  1981           #r egion STD_ USER_ACTIV ITY_TYPE
  1982           #e ndregion
  1983  
  1984           #r egion STD_ WEB_PAGES
  1985  
  1986           pu blic stati c STD_WEB_ PAGES STD_ WEB_PAGES_ GET(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int id)
  1987           {
  1988                return s ervices.ST D_WEB_PAGE S_GET(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  id);
  1989           }
  1990  
  1991           pu blic stati c List<STD _WEB_PAGES > STD_WEB_ PAGES_GET_ ALL(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID)
  1992           {
  1993                STD_WEB_ PAGES[] te mp = servi ces.STD_WE B_PAGES_GE T_ALL(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  1994                if (temp  != null)
  1995                    retu rn temp.To List<STD_W EB_PAGES>( );
  1996                return n ull;
  1997           }
  1998  
  1999           pu blic stati c int STD_ WEB_PAGES_ SAVE(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  STD_WEB_P AGES objSa ve)
  2000           {
  2001                return s ervices.ST D_WEB_PAGE S_SAVE(CUR RENT_USER,  CURRENT_R EGISTRY_ID , objSave) ;
  2002           }
  2003  
  2004           pu blic stati c Boolean  STD_WEB_PA GES_DELETE (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, int  id)
  2005           {
  2006                return s ervices.ST D_WEB_PAGE S_DELETE(C URRENT_USE R, CURRENT _REGISTRY_ ID, id);
  2007           }
  2008  
  2009           #e ndregion
  2010  
  2011           #r egion STD_ WKFACTIVIT YSTS
  2012  
  2013           pu blic stati c STD_WKFA CTIVITYSTS  STD_WKFAC TIVITYSTS_ GET(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int id)
  2014           {
  2015                return s ervices.ST D_WKFACTIV ITYSTS_GET (CURRENT_U SER, CURRE NT_REGISTR Y_ID, id);
  2016           }
  2017  
  2018           pu blic stati c STD_WKFA CTIVITYSTS  STD_WKFAC TIVITYSTS_ GET_BY_COD E(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, st ring CODE)
  2019           {
  2020                return s ervices.ST D_WKFACTIV ITYSTS_GET _BY_CODE(C URRENT_USE R, CURRENT _REGISTRY_ ID, CODE);
  2021           }
  2022  
  2023           #e ndregion
  2024  
  2025           #r egion STD_ WKFACTIVIT YTYPE
  2026  
  2027           pu blic stati c STD_WKFA CTIVITYTYP E STD_WKFA CTIVITYTYP E_GET(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int id)
  2028           {
  2029                return s ervices.ST D_WKFACTIV ITYTYPE_GE T(CURRENT_ USER, CURR ENT_REGIST RY_ID, id) ;
  2030           }
  2031  
  2032           pu blic stati c int STD_ WKFACTIVIT YTYPE_SAVE (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, STD _WKFACTIVI TYTYPE obj Save)
  2033           {
  2034                return s ervices.ST D_WKFACTIV ITYTYPE_SA VE(CURRENT _USER, CUR RENT_REGIS TRY_ID, ob jSave);
  2035           }
  2036  
  2037           pu blic stati c Boolean  STD_WKFACT IVITYTYPE_ DELETE(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, int id)
  2038           {
  2039                return s ervices.ST D_WKFACTIV ITYTYPE_DE LETE(CURRE NT_USER, C URRENT_REG ISTRY_ID,  id);
  2040           }
  2041  
  2042           pu blic stati c List<STD _WKFACTIVI TYTYPE> ST D_WKFACTIV ITYTYPE_GE T_ALL_BY_R EGISTRY(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID)
  2043           {
  2044                STD_WKFA CTIVITYTYP E[] temp =  services. STD_WKFACT IVITYTYPE_ GET_ALL_BY _REGISTRY( CURRENT_US ER, CURREN T_REGISTRY _ID);
  2045                if (temp  != null)
  2046                    retu rn temp.To List<STD_W KFACTIVITY TYPE>();
  2047                return n ull;
  2048           }
  2049  
  2050           pu blic stati c List<STD _WKFACTIVI TYTYPE> ST D_WKFACTIV ITYTYPE_GE T_ALL_BY_R EGISTRY(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, string  SEARCH_CO LUMN, stri ng SEARCH_ TEXT, stri ng SORT_EX PRESSION)
  2051           {
  2052                List<STD _WKFACTIVI TYTYPE> ob jReturn =  STD_WKFACT IVITYTYPE_ GET_ALL_BY _REGISTRY( CURRENT_US ER, CURREN T_REGISTRY _ID);
  2053                if (objR eturn != n ull)
  2054                {
  2055                    if ( objReturn  != null &&  objReturn .Count !=  0)
  2056                    {
  2057                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  2058                         {
  2059                             if (SE ARCH_COLUM N.Contains ("."))
  2060                             {
  2061                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  2062                                 if  (props !=  null && p rops.Count () == 2)
  2063                                 {
  2064                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_WKFACT IVITYTYPE> ();
  2065                                 }
  2066                             }
  2067                             else
  2068                             {
  2069                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_WKFACTIV ITYTYPE>() ;
  2070                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_WKF ACTIVITYTY PE>();
  2071                             }
  2072                         }
  2073                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  2074                         {
  2075                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  2076                             {
  2077                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  2078  
  2079                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2080                                 {
  2081                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2082                                      if (prop s != null  && props.C ount() ==  2)
  2083                                      {
  2084                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_WKF ACTIVITYTY PE>();
  2085                                      }
  2086                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2087                                      {
  2088                                      }
  2089                                 }
  2090                                 el se
  2091                                 {
  2092                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_WKFACTIV ITYTYPE>() ;
  2093                                 }
  2094                             }
  2095                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  2096                             {
  2097                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  2098                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2099                                 {
  2100                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2101                                      if (prop s != null  && props.C ount() ==  2)
  2102                                      {
  2103                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_WKF ACTIVITYTY PE>();
  2104                                      }
  2105                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2106                                      {
  2107                                      }
  2108                                 }
  2109                                 el se
  2110                                 {
  2111                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_WKFACTIV ITYTYPE>() ;
  2112                                 }
  2113                             }
  2114                             else
  2115                             {
  2116                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2117                                 {
  2118                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2119                                      if (prop s != null  && props.C ount() ==  2)
  2120                                      {
  2121                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_WKF ACTIVITYTY PE>();
  2122                                      }
  2123                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2124                                      {
  2125                                      }
  2126                                 }
  2127                                 el se
  2128                                 {
  2129                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_WKFACTIV ITYTYPE>() ;
  2130                                 }
  2131                             }
  2132                         }
  2133                    }
  2134                }
  2135  
  2136                return o bjReturn;
  2137           }
  2138  
  2139           pu blic stati c List<STD _WKFACTIVI TYTYPE> ST D_WKFACTIV ITYTYPE_GE T_ALL_BY_W ORKSTREAM( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, int  STD_WKFCAS ETYPE_ID)
  2140           {
  2141                STD_WKFA CTIVITYTYP E[] temp =  services. STD_WKFACT IVITYTYPE_ GET_ALL_BY _WORKSTREA M(CURRENT_ USER, CURR ENT_REGIST RY_ID, STD _WKFCASETY PE_ID);
  2142                if (temp  != null)
  2143                    retu rn temp.To List<STD_W KFACTIVITY TYPE>();
  2144                return n ull;
  2145           }
  2146  
  2147           #e ndregion
  2148  
  2149           #r egion STD_ WKFCASESTS
  2150  
  2151           pu blic stati c STD_WKFC ASESTS STD _WKFCASEST S_GET(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int id)
  2152           {
  2153                return s ervices.ST D_WKFCASES TS_GET(CUR RENT_USER,  CURRENT_R EGISTRY_ID , id);
  2154           }
  2155  
  2156           pu blic stati c STD_WKFC ASESTS STD _WKFCASEST S_GET_BY_C ODE(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  string COD E)
  2157           {
  2158                return s ervices.ST D_WKFCASES TS_GET_BY_ CODE(CURRE NT_USER, C URRENT_REG ISTRY_ID,  CODE);
  2159           }
  2160  
  2161           #e ndregion
  2162  
  2163           #r egion STD_ WKFCASETYP E
  2164  
  2165           pu blic stati c STD_WKFC ASETYPE ST D_WKFCASET YPE_GET(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int id )
  2166           {
  2167                return s ervices.ST D_WKFCASET YPE_GET(CU RRENT_USER , CURRENT_ REGISTRY_I D, id);
  2168           }
  2169  
  2170           pu blic stati c int STD_ WKFCASETYP E_SAVE(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, STD_WKF CASETYPE o bjSave)
  2171           {
  2172                return s ervices.ST D_WKFCASET YPE_SAVE(C URRENT_USE R, CURRENT _REGISTRY_ ID, objSav e);
  2173           }
  2174  
  2175           pu blic stati c Boolean  STD_WKFCAS ETYPE_DELE TE(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID, i nt id)
  2176           {
  2177                return s ervices.ST D_WKFCASET YPE_DELETE (CURRENT_U SER, CURRE NT_REGISTR Y_ID, id);
  2178           }
  2179  
  2180           pu blic stati c List<STD _WKFCASETY PE> STD_WK FCASETYPE_ GET_ALL_BY _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID)
  2181           {
  2182                STD_WKFC ASETYPE[]  temp = ser vices.STD_ WKFCASETYP E_GET_ALL_ BY_REGISTR Y(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  2183                if (temp  != null)
  2184                    retu rn temp.To List<STD_W KFCASETYPE >();
  2185                return n ull;
  2186           }
  2187  
  2188           pu blic stati c List<STD _WKFCASETY PE> STD_WK FCASETYPE_ GET_ALL_BY _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, stri ng SEARCH_ COLUMN, st ring SEARC H_TEXT, st ring SORT_ EXPRESSION )
  2189           {
  2190                List<STD _WKFCASETY PE> objRet urn = STD_ WKFCASETYP E_GET_ALL_ BY_REGISTR Y(CURRENT_ USER, CURR ENT_REGIST RY_ID);
  2191                if (objR eturn != n ull)
  2192                {
  2193                    if ( objReturn  != null &&  objReturn .Count !=  0)
  2194                    {
  2195                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  2196                         {
  2197                             if (SE ARCH_COLUM N.Contains ("."))
  2198                             {
  2199                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  2200                                 if  (props !=  null && p rops.Count () == 2)
  2201                                 {
  2202                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< STD_WKFCAS ETYPE>();
  2203                                 }
  2204                             }
  2205                             else
  2206                             {
  2207                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<ST D_WKFCASET YPE>();
  2208                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<STD_WKF CASETYPE>( );
  2209                             }
  2210                         }
  2211                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  2212                         {
  2213                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  2214                             {
  2215                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  2216  
  2217                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2218                                 {
  2219                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2220                                      if (prop s != null  && props.C ount() ==  2)
  2221                                      {
  2222                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_WKF CASETYPE>( );
  2223                                      }
  2224                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2225                                      {
  2226                                      }
  2227                                 }
  2228                                 el se
  2229                                 {
  2230                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_WKFCASET YPE>();
  2231                                 }
  2232                             }
  2233                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  2234                             {
  2235                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  2236                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2237                                 {
  2238                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2239                                      if (prop s != null  && props.C ount() ==  2)
  2240                                      {
  2241                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_WKF CASETYPE>( );
  2242                                      }
  2243                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2244                                      {
  2245                                      }
  2246                                 }
  2247                                 el se
  2248                                 {
  2249                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_WKFCASET YPE>();
  2250                                 }
  2251                             }
  2252                             else
  2253                             {
  2254                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2255                                 {
  2256                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2257                                      if (prop s != null  && props.C ount() ==  2)
  2258                                      {
  2259                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<STD_WKF CASETYPE>( );
  2260                                      }
  2261                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2262                                      {
  2263                                      }
  2264                                 }
  2265                                 el se
  2266                                 {
  2267                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<ST D_WKFCASET YPE>();
  2268                                 }
  2269                             }
  2270                         }
  2271                    }
  2272                }
  2273  
  2274                return o bjReturn;
  2275           }
  2276  
  2277           #e ndregion
  2278  
  2279           #r egion SURV EY_NOTES
  2280           #e ndregion
  2281  
  2282           #r egion SURV EY_RESULTS
  2283  
  2284           pu blic stati c List<SUR VEY_RESULT S> SURVEY_ RESULTS_GE T_ALL_BY_S URVEY(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int SURV EY_ID)
  2285           {
  2286                SURVEY_R ESULTS[] t emp = serv ices.SURVE Y_RESULTS_ GET_ALL_BY _SURVEY(CU RRENT_USER , CURRENT_ REGISTRY_I D, SURVEY_ ID);
  2287                if (temp  != null)
  2288                    retu rn temp.To List<SURVE Y_RESULTS> ();
  2289                return n ull;
  2290           }
  2291  
  2292           pu blic stati c bool SUR VEY_RESULT S_SAVE_ALL (string CU RRENT_USER , int CURR ENT_REGIST RY_ID, Lis t<SURVEY_R ESULTS> RE SULTS)
  2293           {
  2294                SURVEY_R ESULTS[] t emp = RESU LTS.ToArra y();
  2295                return s ervices.SU RVEY_RESUL TS_SAVE_AL L(CURRENT_ USER, CURR ENT_REGIST RY_ID, tem p);
  2296           }
  2297  
  2298           #e ndregion
  2299  
  2300           #r egion SURV EYS
  2301  
  2302           pu blic stati c SURVEYS  SURVEYS_GE T(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t id)
  2303           {
  2304                return s ervices.SU RVEYS_GET( CURRENT_US ER, CURREN T_REGISTRY _ID, id);
  2305           }
  2306  
  2307           pu blic stati c int SURV EYS_SAVE(s tring CURR ENT_USER,  int CURREN T_REGISTRY _ID, SURVE YS objSave )
  2308           {
  2309                return s ervices.SU RVEYS_SAVE (CURRENT_U SER, CURRE NT_REGISTR Y_ID, objS ave);
  2310           }
  2311  
  2312           pu blic stati c Boolean  SURVEYS_DE LETE(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  int id)
  2313           {
  2314                return s ervices.SU RVEYS_DELE TE(CURRENT _USER, CUR RENT_REGIS TRY_ID, id );
  2315           }
  2316  
  2317           pu blic stati c SURVEYS  SURVEYS_GE T_FOR_SURV EY(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID, i nt SURVEYS _ID)
  2318           {
  2319                return s ervices.SU RVEYS_GET_ FOR_SURVEY (CURRENT_U SER, CURRE NT_REGISTR Y_ID, SURV EYS_ID);
  2320           }
  2321  
  2322           pu blic stati c List<SUR VEYS> SURV EYS_GET_AL L_BY_REGIS TRY(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID)
  2323           {
  2324                SURVEYS[ ] temp = s ervices.SU RVEYS_GET_ ALL_BY_REG ISTRY(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  2325                if (temp  != null)
  2326                    retu rn temp.To List<SURVE YS>();
  2327                return n ull;
  2328           }
  2329  
  2330           pu blic stati c List<SUR VEYS> SURV EYS_GET_AL L_BY_REGIS TRY(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int PATIEN T_ID, stri ng SEARCH_ COLUMN, st ring SEARC H_TEXT, st ring SORT_ EXPRESSION )
  2331           {
  2332                List<SUR VEYS> objR eturn = SU RVEYS_GET_ ALL_BY_REG ISTRY(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  2333                if (objR eturn != n ull)
  2334                {
  2335                    if ( PATIENT_ID  > 0)
  2336                    {
  2337                         objReturn  = objRetur n.Where(x  => x.PATIE NT_ID == P ATIENT_ID) .ToList();
  2338                    }
  2339                    if ( objReturn  != null &&  objReturn .Count !=  0)
  2340                    {
  2341                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  2342                         {
  2343                             if (SE ARCH_COLUM N.Contains ("."))
  2344                             {
  2345                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  2346                                 if  (props !=  null && p rops.Count () == 2)
  2347                                 {
  2348                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< SURVEYS>() ;
  2349                                 }
  2350                             }
  2351                             else
  2352                             {
  2353                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<SU RVEYS>();
  2354                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<SURVEYS >();
  2355                             }
  2356                         }
  2357                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  2358                         {
  2359                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  2360                             {
  2361                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  2362  
  2363                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2364                                 {
  2365                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2366                                      if (prop s != null  && props.C ount() ==  2)
  2367                                      {
  2368                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<SURVEYS >();
  2369                                      }
  2370                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2371                                      {
  2372                                      }
  2373                                 }
  2374                                 el se
  2375                                 {
  2376                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<SU RVEYS>();
  2377                                 }
  2378                             }
  2379                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  2380                             {
  2381                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  2382                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2383                                 {
  2384                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2385                                      if (prop s != null  && props.C ount() ==  2)
  2386                                      {
  2387                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<SURVEYS >();
  2388                                      }
  2389                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2390                                      {
  2391                                      }
  2392                                 }
  2393                                 el se
  2394                                 {
  2395                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<SU RVEYS>();
  2396                                 }
  2397                             }
  2398                             else
  2399                             {
  2400                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2401                                 {
  2402                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2403                                      if (prop s != null  && props.C ount() ==  2)
  2404                                      {
  2405                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<SURVEYS >();
  2406                                      }
  2407                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2408                                      {
  2409                                      }
  2410                                 }
  2411                                 el se
  2412                                 {
  2413                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<SU RVEYS>();
  2414                                 }
  2415                             }
  2416                         }
  2417                    }
  2418                }
  2419  
  2420                return o bjReturn;
  2421           }
  2422  
  2423           #e ndregion
  2424  
  2425           #r egion USER _ACTIVITY_ LOG
  2426           #e ndregion
  2427  
  2428           #r egion USER _ROLES
  2429  
  2430           pu blic stati c USER_ROL ES USER_RO LES_GET_BY _USERID_RO LEID(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  int USER_ ID, int ST D_ROLE_ID)
  2431           {
  2432                return s ervices.US ER_ROLES_G ET_BY_USER ID_ROLEID( CURRENT_US ER, CURREN T_REGISTRY _ID, USER_ ID, STD_RO LE_ID);
  2433           }
  2434  
  2435           pu blic stati c USER_ROL ES USER_RO LES_GET_BY _USER_ROLE (string Us ername, st ring RoleN ame)
  2436           {
  2437                return s ervices.US ER_ROLES_G ET_BY_USER _ROLE(User name, Role Name);
  2438           }
  2439  
  2440           pu blic stati c string[]  USER_ROLE S_GET_ROLE S(string U sername)
  2441           {
  2442                return s ervices.US ER_ROLES_G ET_ROLES(U sername);
  2443           }
  2444  
  2445           pu blic stati c List<USE R_ROLES> U SER_ROLES_ GET_ALL_BY _USER(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int USER _ID)
  2446           {
  2447                USER_ROL ES[] temp  = services .USER_ROLE S_GET_ALL_ BY_USER(CU RRENT_USER , CURRENT_ REGISTRY_I D, USER_ID );
  2448                if (temp  != null)
  2449                    retu rn temp.To List<USER_ ROLES>();
  2450                return n ull;
  2451           }
  2452  
  2453           pu blic stati c bool USE R_ROLES_DE LETE_BY_US ER_REGISTR Y(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t USER_ID,  int STD_R EGISTRY_ID )
  2454           {
  2455                return s ervices.US ER_ROLES_D ELETE_BY_U SER_REGIST RY(CURRENT _USER, CUR RENT_REGIS TRY_ID, US ER_ID, STD _REGISTRY_ ID);
  2456           }
  2457  
  2458           pu blic stati c bool USE R_ROLES_SA VE_ALL(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, List<US ER_ROLES>  USER_ROLES )
  2459           {
  2460                if (USER _ROLES ==  null)
  2461                    retu rn false;
  2462  
  2463                USER_ROL ES[] temp  = USER_ROL ES.ToArray ();
  2464                return s ervices.US ER_ROLES_S AVE_ALL(CU RRENT_USER , CURRENT_ REGISTRY_I D, temp);
  2465           }
  2466  
  2467           pu blic stati c bool USE R_ROLES_GE T_BY_REGIS TRYID_USER NAME_SET_R EADONLY(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID)
  2468           {
  2469                string[]  temp = se rvices.USE R_ROLES_GE T_BY_REGIS TRYID_USER NAME(CURRE NT_USER, C URRENT_REG ISTRY_ID);
  2470                if (temp  != null)
  2471                {
  2472                    List <string> r oleList =  temp.ToLis t();
  2473                    bool  isAdmin =  false;
  2474                    bool  canEdit =  false;
  2475                    bool  hasRead =  false;
  2476                    User Session us erSession  = (UserSes sion)HttpC ontext.Cur rent.Sessi on["UserSe ssion"];
  2477                    if ( userSessio n == null)  userSessi on = new U serSession ();
  2478  
  2479                    if ( roleList ! = null)
  2480                    {
  2481                         for (int i  = 0; i <  roleList.C ount; i++)
  2482                         {
  2483                             if (ro leList[i]. ToUpper()  == "CRSADM IN" || rol eList[i].T oUpper() = = "REGADMI N")
  2484                             {
  2485                                 if  (roleList [i].ToUppe r() == "CR SADMIN") {  userSessi on.IsSyste mAdministr ator = tru e; }
  2486                                 if  (roleList [i].ToUppe r() == "RE GADMIN") {  userSessi on.IsRegis tryAdminis trator = t rue; }
  2487                                 is Admin = tr ue;
  2488                                 br eak;
  2489                             }
  2490                         }
  2491                         //Admins s upercede t he followi ng roles -  why check  for them  if user is  admin
  2492                         if (isAdmi n == false )
  2493                         {
  2494                             for (i nt i = 0;  i < roleLi st.Count;  i++)
  2495                             {
  2496                                 if  (roleList [i].ToUppe r() == "CR SUPD" || r oleList[i] .ToUpper()  == "REGUP D")
  2497                                 {
  2498                                      canEdit  = true;
  2499                                      break;
  2500                                 }
  2501                                 if  (roleList [i].ToUppe r() == "CR SREAD" ||  roleList[i ].ToUpper( ) == "REGR EAD")
  2502                                 {
  2503                                      hasRead  = true;
  2504                                      break;
  2505                                 }
  2506                             }
  2507                         }
  2508                         /* JUST MA DE THE LOG IC SIMPLIE R - HEATH  - AND RETU RN BASED I N THE ORDE R OF THE R OLE VALUE  SIGNIFICAN CE */
  2509                         if (isAdmi n)
  2510                         {
  2511                             return  false;
  2512                         }
  2513                         if (canEdi t)
  2514                         {
  2515                             return  false;
  2516                         }
  2517                         if (hasRea d)
  2518                         {
  2519                             return  true;
  2520                         }
  2521                    }
  2522                    else
  2523                    {
  2524                         return tru e;
  2525                    }
  2526                }
  2527                return t rue;
  2528           }
  2529  
  2530           #e ndregion
  2531  
  2532           #r egion USER S
  2533  
  2534           pu blic stati c USERS US ERS_GET(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, int id )
  2535           {
  2536                return s ervices.US ERS_GET(CU RRENT_USER , CURRENT_ REGISTRY_I D, id);
  2537           }
  2538  
  2539           pu blic stati c List<USE RS> USERS_ GET_ALL(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID)
  2540           {
  2541                USERS[]  temp = ser vices.USER S_GET_ALL( CURRENT_US ER, CURREN T_REGISTRY _ID);
  2542                if (temp  != null)
  2543                    retu rn temp.To List<USERS >();
  2544                return n ull;
  2545           }
  2546  
  2547           pu blic stati c int USER S_SAVE(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D, USERS o bjSave)
  2548           {
  2549                return s ervices.US ERS_SAVE(C URRENT_USE R, CURRENT _REGISTRY_ ID, objSav e);
  2550           }
  2551  
  2552           pu blic stati c Boolean  USERS_DELE TE(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID, i nt id)
  2553           {
  2554                return s ervices.US ERS_DELETE (CURRENT_U SER, CURRE NT_REGISTR Y_ID, id);
  2555           }
  2556  
  2557           pu blic stati c DomainNa mes USERS_ LOAD_FROM_ AD()
  2558           {
  2559                return s ervices.US ERS_LOAD_F ROM_AD();
  2560           }
  2561  
  2562           pu blic stati c List<Dom ainUser> U SERS_GET_A LL_BY_AD(D omainNames  domainNam es, string  searchStr ing)
  2563           {
  2564                DomainUs er[] temp  = services .USERS_GET _ALL_BY_AD (domainNam es, search String);
  2565                if (temp  != null)
  2566                    retu rn temp.To List<Domai nUser>();
  2567                return n ull;
  2568           }
  2569  
  2570           pu blic stati c List<Dom ainUser> U SERS_GET_A LL_BY_AD(D omainNames  domainNam es, string  searchStr ing, strin g SEARCH_C OLUMN, str ing SEARCH _TEXT, str ing SORT_E XPRESSION)
  2571           {
  2572                List<Dom ainUser> o bjReturn =  USERS_GET _ALL_BY_AD (domainNam es, search String);
  2573                if (objR eturn != n ull)
  2574                {
  2575                    if ( objReturn  != null &&  objReturn .Count !=  0)
  2576                    {
  2577                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  2578                         {
  2579                             if (SE ARCH_COLUM N.Contains ("."))
  2580                             {
  2581                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  2582                                 if  (props !=  null && p rops.Count () == 2)
  2583                                 {
  2584                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< DomainUser >();
  2585                                 }
  2586                             }
  2587                             else
  2588                             {
  2589                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<Do mainUser>( );
  2590                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<DomainU ser>();
  2591                             }
  2592                         }
  2593                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  2594                         {
  2595                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  2596                             {
  2597                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  2598  
  2599                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2600                                 {
  2601                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2602                                      if (prop s != null  && props.C ount() ==  2)
  2603                                      {
  2604                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<DomainU ser>();
  2605                                      }
  2606                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2607                                      {
  2608                                      }
  2609                                 }
  2610                                 el se
  2611                                 {
  2612                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Do mainUser>( );
  2613                                 }
  2614                             }
  2615                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  2616                             {
  2617                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  2618                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2619                                 {
  2620                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2621                                      if (prop s != null  && props.C ount() ==  2)
  2622                                      {
  2623                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<DomainU ser>();
  2624                                      }
  2625                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2626                                      {
  2627                                      }
  2628                                 }
  2629                                 el se
  2630                                 {
  2631                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Do mainUser>( );
  2632                                 }
  2633                             }
  2634                             else
  2635                             {
  2636                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2637                                 {
  2638                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2639                                      if (prop s != null  && props.C ount() ==  2)
  2640                                      {
  2641                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<DomainU ser>();
  2642                                      }
  2643                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2644                                      {
  2645                                      }
  2646                                 }
  2647                                 el se
  2648                                 {
  2649                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Do mainUser>( );
  2650                                 }
  2651                             }
  2652                         }
  2653                    }
  2654                }
  2655  
  2656                return o bjReturn;
  2657           }
  2658  
  2659           pu blic stati c USERS US ERS_GET_BY _NAME(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , string u sername)
  2660           {
  2661                return s ervices.US ERS_GET_BY _NAME(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  username) ;
  2662           }
  2663  
  2664           pu blic stati c List<USE RS> USERS_ GET_ALL_BY _USER(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID )
  2665           {
  2666                USERS[]  temp = ser vices.USER S_GET_ALL_ BY_USER(CU RRENT_USER , CURRENT_ REGISTRY_I D);
  2667                if (temp  != null)
  2668                    retu rn temp.To List<USERS >();
  2669                return n ull;
  2670           }
  2671  
  2672           pu blic stati c List<USE RS> USERS_ GET_ALL_BY _USER(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , string S EARCH_COLU MN, string  SEARCH_TE XT, string  SORT_EXPR ESSION)
  2673           {
  2674                List<USE RS> objRet urn = USER S_GET_ALL_ BY_USER(CU RRENT_USER , CURRENT_ REGISTRY_I D);
  2675                if (objR eturn != n ull)
  2676                {
  2677                    if ( objReturn  != null &&  objReturn .Count !=  0)
  2678                    {
  2679                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  2680                         {
  2681                             if (SE ARCH_COLUM N.Contains ("."))
  2682                             {
  2683                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  2684                                 if  (props !=  null && p rops.Count () == 2)
  2685                                 {
  2686                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< USERS>();
  2687                                 }
  2688                             }
  2689                             else
  2690                             {
  2691                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<US ERS>();
  2692                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<USERS>( );
  2693                             }
  2694                         }
  2695                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  2696                         {
  2697                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  2698                             {
  2699                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  2700  
  2701                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2702                                 {
  2703                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2704                                      if (prop s != null  && props.C ount() ==  2)
  2705                                      {
  2706                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<USERS>( );
  2707                                      }
  2708                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2709                                      {
  2710                                      }
  2711                                 }
  2712                                 el se
  2713                                 {
  2714                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<US ERS>();
  2715                                 }
  2716                             }
  2717                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  2718                             {
  2719                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  2720                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2721                                 {
  2722                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2723                                      if (prop s != null  && props.C ount() ==  2)
  2724                                      {
  2725                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<USERS>( );
  2726                                      }
  2727                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2728                                      {
  2729                                      }
  2730                                 }
  2731                                 el se
  2732                                 {
  2733                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<US ERS>();
  2734                                 }
  2735                             }
  2736                             else
  2737                             {
  2738                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2739                                 {
  2740                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2741                                      if (prop s != null  && props.C ount() ==  2)
  2742                                      {
  2743                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<USERS>( );
  2744                                      }
  2745                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2746                                      {
  2747                                      }
  2748                                 }
  2749                                 el se
  2750                                 {
  2751                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<US ERS>();
  2752                                 }
  2753                             }
  2754                         }
  2755                    }
  2756                }
  2757  
  2758                return o bjReturn;
  2759           }
  2760  
  2761           pu blic stati c bool USE RS_DEFAULT _REGISTRY( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, bool  IS_DEFAUL T)
  2762           {
  2763                return s ervices.US ERS_DEFAUL T_REGISTRY (CURRENT_U SER, CURRE NT_REGISTR Y_ID, IS_D EFAULT);
  2764           }
  2765  
  2766           #e ndregion
  2767  
  2768           #r egion WKF_ CASE
  2769  
  2770           pu blic stati c WKF_CASE  WKF_CASE_ GET(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int id)
  2771           {
  2772                return s ervices.WK F_CASE_GET (CURRENT_U SER, CURRE NT_REGISTR Y_ID, id);
  2773           }
  2774  
  2775           pu blic stati c int WKF_ CASE_SAVE( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, WKF_ CASE objSa ve)
  2776           {
  2777                return s ervices.WK F_CASE_SAV E(CURRENT_ USER, CURR ENT_REGIST RY_ID, obj Save);
  2778           }
  2779  
  2780           pu blic stati c Boolean  WKF_CASE_D ELETE(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int id)
  2781           {
  2782                return s ervices.WK F_CASE_DEL ETE(CURREN T_USER, CU RRENT_REGI STRY_ID, i d);
  2783           }
  2784  
  2785           pu blic stati c List<WKF _CASE> WKF _CASE_GET_ ALL_BY_REG ISTRY(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID )
  2786           {
  2787                WKF_CASE [] temp =  services.W KF_CASE_GE T_ALL_BY_R EGISTRY(CU RRENT_USER , CURRENT_ REGISTRY_I D);
  2788                if (temp  != null)
  2789                    retu rn temp.To List<WKF_C ASE>();
  2790                return n ull;
  2791           }
  2792  
  2793           pu blic stati c List<WKF _CASE> WKF _CASE_GET_ ALL_BY_REG ISTRY(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int PATI ENT_ID, st ring SEARC H_COLUMN,  string SEA RCH_TEXT,  string SOR T_EXPRESSI ON)
  2794           {
  2795                List<WKF _CASE> obj Return = W KF_CASE_GE T_ALL_BY_R EGISTRY(CU RRENT_USER , CURRENT_ REGISTRY_I D);
  2796                if (objR eturn != n ull)
  2797                {
  2798                    if ( PATIENT_ID  > 0)
  2799                    {
  2800                         objReturn  = objRetur n.Where(x  => x.PATIE NT_ID == P ATIENT_ID) .ToList();
  2801                    }
  2802                    if ( objReturn  != null &&  objReturn .Count !=  0)
  2803                    {
  2804                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  2805                         {
  2806                             if (SE ARCH_COLUM N.Contains ("."))
  2807                             {
  2808                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  2809                                 if  (props !=  null && p rops.Count () == 2)
  2810                                 {
  2811                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< WKF_CASE>( );
  2812                                 }
  2813                             }
  2814                             else
  2815                             {
  2816                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<WK F_CASE>();
  2817                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<WKF_CAS E>();
  2818                             }
  2819                         }
  2820                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  2821                         {
  2822                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  2823                             {
  2824                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  2825  
  2826                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2827                                 {
  2828                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2829                                      if (prop s != null  && props.C ount() ==  2)
  2830                                      {
  2831                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<WKF_CAS E>();
  2832                                      }
  2833                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2834                                      {
  2835                                      }
  2836                                 }
  2837                                 el se
  2838                                 {
  2839                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<WK F_CASE>();
  2840                                 }
  2841                             }
  2842                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  2843                             {
  2844                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  2845                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2846                                 {
  2847                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2848                                      if (prop s != null  && props.C ount() ==  2)
  2849                                      {
  2850                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<WKF_CAS E>();
  2851                                      }
  2852                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2853                                      {
  2854                                      }
  2855                                 }
  2856                                 el se
  2857                                 {
  2858                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<WK F_CASE>();
  2859                                 }
  2860                             }
  2861                             else
  2862                             {
  2863                                 if  (SORT_EXP RESSION.Co ntains("." ))
  2864                                 {
  2865                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  2866                                      if (prop s != null  && props.C ount() ==  2)
  2867                                      {
  2868                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<WKF_CAS E>();
  2869                                      }
  2870                                      else if  (props !=  null && pr ops.Count( ) == 3)
  2871                                      {
  2872                                      }
  2873                                 }
  2874                                 el se
  2875                                 {
  2876                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<WK F_CASE>();
  2877                                 }
  2878                             }
  2879                         }
  2880                    }
  2881                }
  2882  
  2883                return o bjReturn;
  2884           }
  2885  
  2886           pu blic stati c bool WKF _CASE_UPDA TE_STATUS( string CUR RENT_USER,  int CURRE NT_REGISTR Y_ID, int  WKF_CASE_I D, int STD _WKFCASEST S_ID)
  2887           {
  2888                return s ervices.WK F_CASE_UPD ATE_STATUS (CURRENT_U SER, CURRE NT_REGISTR Y_ID, WKF_ CASE_ID, S TD_WKFCASE STS_ID);
  2889           }
  2890  
  2891           #e ndregion
  2892  
  2893           #r egion WKF_ CASE_ACTIV ITY
  2894  
  2895           pu blic stati c WKF_CASE _ACTIVITY  WKF_CASE_A CTIVITY_GE T(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, in t id)
  2896           {
  2897                return s ervices.WK F_CASE_ACT IVITY_GET( CURRENT_US ER, CURREN T_REGISTRY _ID, id);
  2898           }
  2899  
  2900           pu blic stati c int WKF_ CASE_ACTIV ITY_SAVE(s tring CURR ENT_USER,  int CURREN T_REGISTRY _ID, WKF_C ASE_ACTIVI TY objSave )
  2901           {
  2902                return s ervices.WK F_CASE_ACT IVITY_SAVE (CURRENT_U SER, CURRE NT_REGISTR Y_ID, objS ave);
  2903           }
  2904  
  2905           pu blic stati c Boolean  WKF_CASE_A CTIVITY_DE LETE(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  int id)
  2906           {
  2907                return s ervices.WK F_CASE_ACT IVITY_DELE TE(CURRENT _USER, CUR RENT_REGIS TRY_ID, id );
  2908           }
  2909  
  2910           pu blic stati c List<WKF _CASE_ACTI VITY> WKF_ CASE_ACTIV ITY_GET_AL L_BY_REGIS TRY(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID)
  2911           {
  2912                WKF_CASE _ACTIVITY[ ] temp = s ervices.WK F_CASE_ACT IVITY_GET_ ALL_BY_REG ISTRY(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  2913                if (temp  != null)
  2914                    retu rn temp.To List<WKF_C ASE_ACTIVI TY>();
  2915                return n ull;
  2916           }
  2917  
  2918           pu blic stati c List<WKF _CASE_ACTI VITY> WKF_ CASE_ACTIV ITY_GET_AL L_BY_REGIS TRY(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  string SEA RCH_COLUMN , string S EARCH_TEXT , string S ORT_EXPRES SION)
  2919           {
  2920                List<WKF _CASE_ACTI VITY> objR eturn = WK F_CASE_ACT IVITY_GET_ ALL_BY_REG ISTRY(CURR ENT_USER,  CURRENT_RE GISTRY_ID) ;
  2921                if (objR eturn != n ull && obj Return.Cou nt != 0)
  2922                {
  2923                    if ( !string.Is NullOrEmpt y(SEARCH_C OLUMN) &&  !string.Is NullOrEmpt y(SEARCH_T EXT))
  2924                    {
  2925                         if (SEARCH _COLUMN.Co ntains("." ))
  2926                         {
  2927                             string [] props =  SEARCH_CO LUMN.Split ('.');
  2928                             if (pr ops != nul l && props .Count() = = 2)
  2929                             {
  2930                                 ob jReturn =  objReturn. Where(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s)).ToStr ing().ToLo wer().Cont ains(SEARC H_TEXT.ToL ower())).T oList<WKF_ CASE_ACTIV ITY>();
  2931                             }
  2932                             else i f (props ! = null &&  props.Coun t() == 3)
  2933                             {
  2934                                 ob jReturn =  objReturn. Where(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s)).GetTy pe().GetPr operty(pro ps[2]).Get Value(s.Ge tType().Ge tProperty( props[0]). GetValue(s ).GetType( ).GetPrope rty(props[ 1]).GetVal ue(s.GetTy pe().GetPr operty(pro ps[0]).Get Value(s))) .ToString( ).ToLower( ).Contains (SEARCH_TE XT.ToLower ())).ToLis t<WKF_CASE _ACTIVITY> ();
  2935                             }
  2936                         }
  2937                         else
  2938                         {
  2939                             objRet urn = objR eturn.Wher e(w => w.G etType().G etProperty (SEARCH_CO LUMN).GetV alue(w) !=  null).ToL ist<WKF_CA SE_ACTIVIT Y>();
  2940                             objRet urn = objR eturn.Wher e(w => w.G etType().G etProperty (SEARCH_CO LUMN).GetV alue(w).To String().T oLower().C ontains(SE ARCH_TEXT. ToLower()) ).ToList<W KF_CASE_AC TIVITY>();
  2941                         }
  2942                    }
  2943                    if ( !string.Is NullOrEmpt y(SORT_EXP RESSION))
  2944                    {
  2945                         if (SORT_E XPRESSION. Length >=  4 && SORT_ EXPRESSION .Substring (SORT_EXPR ESSION.Len gth - 4, 4 ).ToUpper( ) == "DESC ")
  2946                         {
  2947                             SORT_E XPRESSION  = SORT_EXP RESSION.Su bstring(0,  SORT_EXPR ESSION.Len gth - 5);
  2948  
  2949                             if (SO RT_EXPRESS ION.Contai ns("."))
  2950                             {
  2951                                 st ring[] pro ps = SORT_ EXPRESSION .Split('.' );
  2952                                 if  (props !=  null && p rops.Count () == 2)
  2953                                 {
  2954                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) ).ToList<W KF_CASE_AC TIVITY>();
  2955                                 }
  2956                                 el se if (pro ps != null  && props. Count() ==  3)
  2957                                 {
  2958                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) .GetType() .GetProper ty(props[2 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s).Ge tType().Ge tProperty( props[1]). GetValue(s .GetType() .GetProper ty(props[0 ]).GetValu e(s)))).To List<WKF_C ASE_ACTIVI TY>();
  2959                                 }
  2960                             }
  2961                             else
  2962                             {
  2963                                 ob jReturn =  objReturn. OrderByDes cending(s  => s.GetTy pe().GetPr operty(SOR T_EXPRESSI ON).GetVal ue(s)).ToL ist<WKF_CA SE_ACTIVIT Y>();
  2964                             }
  2965                         }
  2966                         else if (S ORT_EXPRES SION.Lengt h >= 3 &&  SORT_EXPRE SSION.Subs tring(SORT _EXPRESSIO N.Length -  3, 3).ToU pper() ==  "ASC")
  2967                         {
  2968                             SORT_E XPRESSION  = SORT_EXP RESSION.Su bstring(0,  SORT_EXPR ESSION.Len gth - 4);
  2969                             if (SO RT_EXPRESS ION.Contai ns("."))
  2970                             {
  2971                                 st ring[] pro ps = SORT_ EXPRESSION .Split('.' );
  2972                                 if  (props !=  null && p rops.Count () == 2)
  2973                                 {
  2974                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) ).ToList<W KF_CASE_AC TIVITY>();
  2975                                 }
  2976                                 el se if (pro ps != null  && props. Count() ==  3)
  2977                                 {
  2978                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) .GetType() .GetProper ty(props[2 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s).Ge tType().Ge tProperty( props[1]). GetValue(s .GetType() .GetProper ty(props[0 ]).GetValu e(s)))).To List<WKF_C ASE_ACTIVI TY>();
  2979                                 }
  2980                             }
  2981                             else
  2982                             {
  2983                                 ob jReturn =  objReturn. OrderBy(s  => s.GetTy pe().GetPr operty(SOR T_EXPRESSI ON).GetVal ue(s)).ToL ist<WKF_CA SE_ACTIVIT Y>();
  2984                             }
  2985                         }
  2986                         else
  2987                         {
  2988                             if (SO RT_EXPRESS ION.Contai ns("."))
  2989                             {
  2990                                 st ring[] pro ps = SORT_ EXPRESSION .Split('.' );
  2991                                 if  (props !=  null && p rops.Count () == 2)
  2992                                 {
  2993                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) ).ToList<W KF_CASE_AC TIVITY>();
  2994                                 }
  2995                                 el se if (pro ps != null  && props. Count() ==  3)
  2996                                 {
  2997                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) .GetType() .GetProper ty(props[2 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s).Ge tType().Ge tProperty( props[1]). GetValue(s .GetType() .GetProper ty(props[0 ]).GetValu e(s)))).To List<WKF_C ASE_ACTIVI TY>();
  2998                                 }
  2999                             }
  3000                             else
  3001                             {
  3002                                 ob jReturn =  objReturn. OrderBy(s  => s.GetTy pe().GetPr operty(SOR T_EXPRESSI ON).GetVal ue(s)).ToL ist<WKF_CA SE_ACTIVIT Y>();
  3003                             }
  3004                         }
  3005                    }
  3006                }
  3007  
  3008                return o bjReturn;
  3009           }
  3010  
  3011           pu blic stati c List<WKF _CASE_ACTI VITY> WKF_ CASE_ACTIV ITY_GET_AL L_BY_WORKS TREAM(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int WKF_ CASE_ID)
  3012           {
  3013                WKF_CASE _ACTIVITY[ ] temp = s ervices.WK F_CASE_ACT IVITY_GET_ ALL_BY_WOR KSTREAM(CU RRENT_USER , CURRENT_ REGISTRY_I D, WKF_CAS E_ID);
  3014                if (temp  != null)
  3015                    retu rn temp.To List<WKF_C ASE_ACTIVI TY>();
  3016                return n ull;
  3017           }
  3018  
  3019           pu blic stati c List<WKF _CASE_ACTI VITY> WKF_ CASE_ACTIV ITY_GET_AL L_BY_WORKS TREAM(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int WKF_ CASE_ID, s tring SEAR CH_COLUMN,  string SE ARCH_TEXT,  string SO RT_EXPRESS ION)
  3020           {
  3021                List<WKF _CASE_ACTI VITY> objR eturn = WK F_CASE_ACT IVITY_GET_ ALL_BY_WOR KSTREAM(CU RRENT_USER , CURRENT_ REGISTRY_I D, WKF_CAS E_ID);
  3022                if (objR eturn != n ull && obj Return.Cou nt != 0)
  3023                {
  3024                    if ( !string.Is NullOrEmpt y(SEARCH_C OLUMN) &&  !string.Is NullOrEmpt y(SEARCH_T EXT))
  3025                    {
  3026                         if (SEARCH _COLUMN.Co ntains("." ))
  3027                         {
  3028                             string [] props =  SEARCH_CO LUMN.Split ('.');
  3029                             if (pr ops != nul l && props .Count() = = 2)
  3030                             {
  3031                                 ob jReturn =  objReturn. Where(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s)).ToStr ing().ToLo wer().Cont ains(SEARC H_TEXT.ToL ower())).T oList<WKF_ CASE_ACTIV ITY>();
  3032                             }
  3033                             else i f (props ! = null &&  props.Coun t() == 3)
  3034                             {
  3035                                 //  objReturn  = objRetu rn.Where(s  => s.GetT ype().GetP roperty(pr ops[1]).Ge tValue(s). GetType(). GetPropert y(props[2] ).GetValue (s.GetType ().GetProp erty(props [0]).GetVa lue(s)).To String().T oLower().C ontains(SE ARCH_TEXT. ToLower()) ).ToList<W KF_CASE_AC TIVITY>();
  3036                             }
  3037                         }
  3038                         else
  3039                         {
  3040                             objRet urn = objR eturn.Wher e(w => w.G etType().G etProperty (SEARCH_CO LUMN).GetV alue(w) !=  null).ToL ist<WKF_CA SE_ACTIVIT Y>();
  3041                             objRet urn = objR eturn.Wher e(w => w.G etType().G etProperty (SEARCH_CO LUMN).GetV alue(w).To String().T oLower().C ontains(SE ARCH_TEXT. ToLower()) ).ToList<W KF_CASE_AC TIVITY>();
  3042                         }
  3043                    }
  3044                    if ( !string.Is NullOrEmpt y(SORT_EXP RESSION))
  3045                    {
  3046                         if (SORT_E XPRESSION. Length >=  4 && SORT_ EXPRESSION .Substring (SORT_EXPR ESSION.Len gth - 4, 4 ).ToUpper( ) == "DESC ")
  3047                         {
  3048                             SORT_E XPRESSION  = SORT_EXP RESSION.Su bstring(0,  SORT_EXPR ESSION.Len gth - 5);
  3049  
  3050                             if (SO RT_EXPRESS ION.Contai ns("."))
  3051                             {
  3052                                 st ring[] pro ps = SORT_ EXPRESSION .Split('.' );
  3053                                 if  (props !=  null && p rops.Count () == 2)
  3054                                 {
  3055                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) ).ToList<W KF_CASE_AC TIVITY>();
  3056                                 }
  3057                                 el se if (pro ps != null  && props. Count() ==  3)
  3058                                 {
  3059                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[1]).G etValue(s) .GetType() .GetProper ty(props[2 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< WKF_CASE_A CTIVITY>() ;
  3060                                 }
  3061                             }
  3062                             else
  3063                             {
  3064                                 ob jReturn =  objReturn. OrderByDes cending(s  => s.GetTy pe().GetPr operty(SOR T_EXPRESSI ON).GetVal ue(s)).ToL ist<WKF_CA SE_ACTIVIT Y>();
  3065                             }
  3066                         }
  3067                         else if (S ORT_EXPRES SION.Lengt h >= 3 &&  SORT_EXPRE SSION.Subs tring(SORT _EXPRESSIO N.Length -  3, 3).ToU pper() ==  "ASC")
  3068                         {
  3069                             SORT_E XPRESSION  = SORT_EXP RESSION.Su bstring(0,  SORT_EXPR ESSION.Len gth - 4);
  3070                             if (SO RT_EXPRESS ION.Contai ns("."))
  3071                             {
  3072                                 st ring[] pro ps = SORT_ EXPRESSION .Split('.' );
  3073                                 if  (props !=  null && p rops.Count () == 2)
  3074                                 {
  3075                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) ).ToList<W KF_CASE_AC TIVITY>();
  3076                                 }
  3077                                 el se if (pro ps != null  && props. Count() ==  3)
  3078                                 {
  3079                                 }
  3080                             }
  3081                             else
  3082                             {
  3083                                 ob jReturn =  objReturn. OrderBy(s  => s.GetTy pe().GetPr operty(SOR T_EXPRESSI ON).GetVal ue(s)).ToL ist<WKF_CA SE_ACTIVIT Y>();
  3084                             }
  3085                         }
  3086                         else
  3087                         {
  3088                             if (SO RT_EXPRESS ION.Contai ns("."))
  3089                             {
  3090                                 st ring[] pro ps = SORT_ EXPRESSION .Split('.' );
  3091                                 if  (props !=  null && p rops.Count () == 2)
  3092                                 {
  3093                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (props[0]) .GetValue( s).GetType ().GetProp erty(props [1]).GetVa lue(s.GetT ype().GetP roperty(pr ops[0]).Ge tValue(s)) ).ToList<W KF_CASE_AC TIVITY>();
  3094                                 }
  3095                                 el se if (pro ps != null  && props. Count() ==  3)
  3096                                 {
  3097                                      // objRe turn = obj Return.Ord erBy(s =>  s.GetType( ).GetPrope rty(props[ 0]).GetVal ue(s).GetT ype().GetP roperty(pr ops[1]).Ge tType().Ge tProperty( props[2]). GetValue(s .GetType() .GetProper ty(props[2 ]).GetValu e(s))).ToL ist<WKF_CA SE_ACTIVIT Y>();
  3098                                      //   obj Return = o bjReturn.O rderBy(s = > s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s).Ge tType().Ge tProperty( props[1]). GetValue(s ).GetType( ).GetPrope rty(props[ 2]).GetVal ue(s.GetTy pe().GetPr operty(pro ps[1]).Get Value(s))) .ToList<WK F_CASE_ACT IVITY>();
  3099                                 }
  3100                             }
  3101                             else
  3102                             {
  3103                                 ob jReturn =  objReturn. OrderBy(s  => s.GetTy pe().GetPr operty(SOR T_EXPRESSI ON).GetVal ue(s)).ToL ist<WKF_CA SE_ACTIVIT Y>();
  3104                             }
  3105                         }
  3106                    }
  3107                }
  3108  
  3109                return o bjReturn;
  3110           }
  3111  
  3112           pu blic stati c bool WKF _CASE_ACTI VITY_UPDAT E_STATUS(s tring CURR ENT_USER,  int CURREN T_REGISTRY _ID, int W KF_CASE_AC TIVITY_ID,  int STD_W KFACTIVITY STS_ID)
  3113           {
  3114                return s ervices.WK F_CASE_ACT IVITY_UPDA TE_STATUS( CURRENT_US ER, CURREN T_REGISTRY _ID, WKF_C ASE_ACTIVI TY_ID, STD _WKFACTIVI TYSTS_ID);
  3115           }
  3116  
  3117           #e ndregion
  3118  
  3119           #r egion WKF_ CASE_ASSIG NMENT
  3120           #e ndregion
  3121  
  3122           #r egion WKF_ CASE_COMME NTS
  3123           #e ndregion
  3124  
  3125           #r egion LOGS
  3126  
  3127           pu blic stati c void Log Details(Lo gDetails l ogDetails)
  3128           {
  3129                services .LOG_DETAI LS(logDeta ils);
  3130           }
  3131  
  3132           pu blic stati c void Log Timing(Log Details lo gDetails)
  3133           {
  3134                services .LOG_TIMIN G(logDetai ls);
  3135           }
  3136  
  3137           pu blic stati c void Log Informatio n(string m essage, st ring proce ssName, st ring usern ame, int r egistryId)
  3138           {
  3139                services .LOG_INFOR MATION(mes sage, proc essName, u sername, r egistryId) ;
  3140           }
  3141  
  3142           pu blic stati c void Log Error(stri ng message , string p rocessName , string u sername, i nt registr yId)
  3143           {
  3144                services .LOG_ERROR (message,  processNam e, usernam e, registr yId);
  3145           }
  3146  
  3147           #e ndregion
  3148  
  3149           #r egion REPO RTS
  3150  
  3151           pu blic stati c List<Rep ortItem> R EPORTS_GET _ALL_BY_US ER_REGISTR Y(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID)
  3152           {
  3153                ReportIt em[] temp  = services .REPORTS_G ET_ALL_BY_ USER_REGIS TRY(CURREN T_USER, CU RRENT_REGI STRY_ID);
  3154                if (temp  != null)
  3155                    retu rn temp.To List<Repor tItem>();
  3156                return n ull;
  3157           }
  3158  
  3159           pu blic stati c List<Rep ortItem> R EPORTS_GET _ALL_BY_US ER_REGISTR Y(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID, st ring SEARC H_COLUMN,  string SEA RCH_TEXT,  string SOR T_EXPRESSI ON)
  3160           {
  3161                List<Rep ortItem> o bjReturn =  REPORTS_G ET_ALL_BY_ USER_REGIS TRY(CURREN T_USER, CU RRENT_REGI STRY_ID);
  3162                if (objR eturn != n ull)
  3163                {
  3164                    if ( objReturn  != null &&  objReturn .Count !=  0)
  3165                    {
  3166                         if (!strin g.IsNullOr Empty(SEAR CH_COLUMN)  && !strin g.IsNullOr Empty(SEAR CH_TEXT))
  3167                         {
  3168                             if (SE ARCH_COLUM N.Contains ("."))
  3169                             {
  3170                                 st ring[] pro ps = SEARC H_COLUMN.S plit('.');
  3171                                 if  (props !=  null && p rops.Count () == 2)
  3172                                 {
  3173                                      objRetur n = objRet urn.Where( s => s.Get Type().Get Property(p rops[0]).G etValue(s) .GetType() .GetProper ty(props[1 ]).GetValu e(s.GetTyp e().GetPro perty(prop s[0]).GetV alue(s)).T oString(). ToLower(). Contains(S EARCH_TEXT .ToLower() )).ToList< ReportItem >();
  3174                                 }
  3175                             }
  3176                             else
  3177                             {
  3178                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ) != null) .ToList<Re portItem>( );
  3179                                 ob jReturn =  objReturn. Where(w =>  w.GetType ().GetProp erty(SEARC H_COLUMN). GetValue(w ).ToString ().ToLower ().Contain s(SEARCH_T EXT.ToLowe r())).ToLi st<ReportI tem>();
  3180                             }
  3181                         }
  3182                         if (!strin g.IsNullOr Empty(SORT _EXPRESSIO N))
  3183                         {
  3184                             if (SO RT_EXPRESS ION.Length  >= 4 && S ORT_EXPRES SION.Subst ring(SORT_ EXPRESSION .Length -  4, 4).ToUp per() == " DESC")
  3185                             {
  3186                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  5);
  3187  
  3188                                 if  (SORT_EXP RESSION.Co ntains("." ))
  3189                                 {
  3190                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  3191                                      if (prop s != null  && props.C ount() ==  2)
  3192                                      {
  3193                                          objR eturn = ob jReturn.Or derByDesce nding(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<ReportI tem>();
  3194                                      }
  3195                                      else if  (props !=  null && pr ops.Count( ) == 3)
  3196                                      {
  3197                                      }
  3198                                 }
  3199                                 el se
  3200                                 {
  3201                                      objRetur n = objRet urn.OrderB yDescendin g(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Re portItem>( );
  3202                                 }
  3203                             }
  3204                             else i f (SORT_EX PRESSION.L ength >= 3  && SORT_E XPRESSION. Substring( SORT_EXPRE SSION.Leng th - 3, 3) .ToUpper()  == "ASC")
  3205                             {
  3206                                 SO RT_EXPRESS ION = SORT _EXPRESSIO N.Substrin g(0, SORT_ EXPRESSION .Length -  4);
  3207                                 if  (SORT_EXP RESSION.Co ntains("." ))
  3208                                 {
  3209                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  3210                                      if (prop s != null  && props.C ount() ==  2)
  3211                                      {
  3212                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<ReportI tem>();
  3213                                      }
  3214                                      else if  (props !=  null && pr ops.Count( ) == 3)
  3215                                      {
  3216                                      }
  3217                                 }
  3218                                 el se
  3219                                 {
  3220                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Re portItem>( );
  3221                                 }
  3222                             }
  3223                             else
  3224                             {
  3225                                 if  (SORT_EXP RESSION.Co ntains("." ))
  3226                                 {
  3227                                      string[]  props = S ORT_EXPRES SION.Split ('.');
  3228                                      if (prop s != null  && props.C ount() ==  2)
  3229                                      {
  3230                                          objR eturn = ob jReturn.Or derBy(s =>  s.GetType ().GetProp erty(props [0]).GetVa lue(s).Get Type().Get Property(p rops[1]).G etValue(s. GetType(). GetPropert y(props[0] ).GetValue (s))).ToLi st<ReportI tem>();
  3231                                      }
  3232                                      else if  (props !=  null && pr ops.Count( ) == 3)
  3233                                      {
  3234                                      }
  3235                                 }
  3236                                 el se
  3237                                 {
  3238                                      objRetur n = objRet urn.OrderB y(s => s.G etType().G etProperty (SORT_EXPR ESSION).Ge tValue(s)) .ToList<Re portItem>( );
  3239                                 }
  3240                             }
  3241                         }
  3242                    }
  3243                }
  3244  
  3245                return o bjReturn;
  3246           }
  3247  
  3248           pu blic stati c List<Rep ortItem> R EPORTS_GET _ALL_BY_RE GISTRY(str ing CURREN T_USER, in t CURRENT_ REGISTRY_I D)
  3249           {
  3250                ReportIt em[] temp  = services .REPORTS_G ET_ALL_BY_ REGISTRY(C URRENT_USE R, CURRENT _REGISTRY_ ID);
  3251                if (temp  != null)
  3252                    retu rn temp.To List<Repor tItem>();
  3253                return n ull;
  3254           }
  3255  
  3256           pu blic stati c List<Rep ortItem> R EPORTS_GET _ALL_SYSTE M(string C URRENT_USE R, int CUR RENT_REGIS TRY_ID)
  3257           {
  3258                ReportIt em[] temp  = services .REPORTS_G ET_ALL_SYS TEM(CURREN T_USER, CU RRENT_REGI STRY_ID);
  3259                if (temp  != null)
  3260                    retu rn temp.To List<Repor tItem>();
  3261                return n ull;
  3262           }
  3263  
  3264           pu blic stati c List<Rep ortItem> R EPORTS_GET _ALL_BY_US ER(string  CURRENT_US ER, int CU RRENT_REGI STRY_ID)
  3265           {
  3266                ReportIt em[] temp  = services .REPORTS_G ET_ALL_BY_ USER(CURRE NT_USER, C URRENT_REG ISTRY_ID);
  3267                if (temp  != null)
  3268                    retu rn temp.To List<Repor tItem>();
  3269                return n ull;
  3270           }
  3271  
  3272           pu blic stati c bool REP ORTS_UPDAT E_ITEM_PRO PERTIES(st ring CURRE NT_USER, i nt CURRENT _REGISTRY_ ID, string  ITEM_PATH , string D ESCRIPTION )
  3273           {
  3274                return s ervices.RE PORTS_UPDA TE_ITEM_PR OPERTIES(C URRENT_USE R, CURRENT _REGISTRY_ ID, ITEM_P ATH, DESCR IPTION);
  3275           }
  3276  
  3277           #e ndregion
  3278  
  3279           #r egion APPS ETTINGS
  3280  
  3281           pu blic stati c AppSetti ngs APPSET TINGS_GET( string ide ntity, int  registryI d)
  3282           {
  3283                return s ervices.AP PSETTINGS_ GET(identi ty, regist ryId);
  3284           }
  3285  
  3286           pu blic stati c bool APP SETTINGS_S AVE(string  identity,  int regis tryId, App Settings a ppSettings )
  3287           {
  3288                return s ervices.AP PSETTINGS_ SAVE(ident ity, regis tryId, app Settings);
  3289           }
  3290  
  3291           #e ndregion
  3292  
  3293           #r egion MVI
  3294  
  3295           pu blic stati c bool PRP A_IN201305 UV02(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  int CURRE NT_PATIENT _ID, int M VI_TYPE_ID )
  3296           {
  3297                return s ervices.PR PA_IN20130 5UV02(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  CURRENT_P ATIENT_ID,  MVI_TYPE_ ID);
  3298           }
  3299  
  3300           pu blic stati c bool PRP A_IN201309 UV02(strin g CURRENT_ USER, int  CURRENT_RE GISTRY_ID,  int CURRE NT_PATIENT _ID)
  3301           {
  3302                return s ervices.PR PA_IN20130 9UV02(CURR ENT_USER,  CURRENT_RE GISTRY_ID,  CURRENT_P ATIENT_ID) ;
  3303           }
  3304  
  3305           #e ndregion
  3306  
  3307           pu blic stati c ENC_ENCO UNTER ENC_ ENCOUNTER_ GET_BY_REF ERRAL(stri ng CURRENT _USER, int  CURRENT_R EGISTRY_ID , int CURR ENT_REFERR AL_ID)
  3308           {
  3309                ENC_ENCO UNTER[] te mp = servi ces.ENC_EN COUNTER_GE T_BY_REFER RAL(CURREN T_USER, CU RRENT_REGI STRY_ID, C URRENT_REF ERRAL_ID);
  3310                if (temp  != null)
  3311                    retu rn temp.To List<ENC_E NCOUNTER>( ).FirstOrD efault();
  3312                return n ull;
  3313           }
  3314  
  3315           pu blic stati c OUTPAT_V ISIT OUTPA T_VISIT_GE T_BY_REFER RAL(string  CURRENT_U SER, int C URRENT_REG ISTRY_ID,  int CURREN T_REFERRAL _ID)
  3316           {
  3317                OUTPAT_V ISIT[] tem p = servic es.OUTPAT_ VISIT_GET_ BY_REFERRA L(CURRENT_ USER, CURR ENT_REGIST RY_ID, CUR RENT_REFER RAL_ID);
  3318                if (temp  != null)
  3319                    retu rn temp.To List<OUTPA T_VISIT>() .FirstOrDe fault();
  3320                return n ull;
  3321           }
  3322  
  3323           pu blic stati c string G ET_VERSION ()
  3324           {
  3325                return s ervices.GE T_VERSION( );
  3326           }
  3327       }
  3328   }