示例#1
0
        public static List <PrestSante> NormalizeGroupGarantyLabelsInPrestaTable(List <PrestSante> myPrestData)
        {
            try
            {
                List <PrestSante> prestaNormalized = new List <PrestSante>();

                //Pre-load Groups and Garanties for all Assureurs that are found in the Presta Table
                List <string> assList = myPrestData.OrderBy(p => p.AssureurName).Select(p => p.AssureurName).Distinct().ToList();

                List <GroupGarantySante> groupSanteListForAssureur = new List <GroupGarantySante>();
                List <GroupGarantySante> groupSanteListAll         = GroupGarantySante.GetGroupsAndGarantiesForAssureur(C.cDEFAULTASSUREUR);

                foreach (string assurName in assList)
                {
                    //int assurId = Assureur.GetAssIdForAssName(assurName);
                    if (assurName != C.cDEFAULTASSUREUR)
                    {
                        groupSanteListForAssureur = GroupGarantySante.GetGroupsAndGarantiesForAssureur(assurName);
                        groupSanteListAll.AddRange(groupSanteListForAssureur);
                    }
                }

                List <Assureur> myAssurList = Assureur.GetAllAssureurs();

                foreach (PrestSante prest in myPrestData)
                {
                    //get Garanty Label
                    //int assureurId = Assureur.GetAssIdForAssName(prest.AssureurName);
                    //int assureurId = myAssurList.Where(a => a.Name == prest.AssureurName).Select(a => a.Id).First();
                    string codeActe  = prest.CodeActe;
                    string assurName = prest.AssureurName;

                    //if (assureurId == C.cINVALIDID)
                    //    throw new Exception("CollectPrestaData:: No AssureurId was found for the AssureurName: " + prest.AssureurName);
                    if (String.IsNullOrEmpty(assurName))
                    {
                        throw new Exception("NormalizeGroupGarantyLabelsInPrestaTable:: No Assureur Name was provided!");
                    }
                    if (String.IsNullOrEmpty(codeActe))
                    {
                        throw new Exception("NormalizeGroupGarantyLabelsInPrestaTable:: No CodeActe was provided!");
                    }

                    GenericClasses ggPair = BLGroupsAndGaranties.GetNormalizedGroupGarantyPair(assurName, codeActe, groupSanteListAll);

                    prest.GroupName   = ggPair.GroupName;
                    prest.GarantyName = ggPair.GarantyName;

                    prestaNormalized.Add(prest);
                    //Console.WriteLine(prestaNormalized.Count);
                }

                return(prestaNormalized);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
                throw ex;
            }
        }
        public static GenericClasses GetNormalizedGroupGarantyPair(string assureurName, string codeActe, List <GroupGarantySante> groupSanteListAll)
        {
            try
            {
                GenericClasses myGGPair = new GenericClasses();
                myGGPair.AssureurName = assureurName;
                myGGPair.CodeActe     = codeActe;

                string myGroupName         = "";
                string myGarName           = "";
                string errMessAssId        = "No labels for 'GroupSante' and 'GarantySante' were found for the following CodeActe: " + codeActe.ToString() + " and for the following Assureur Name: " + assureurName;
                string errMessAssDefaultId = "No labels for 'GroupSante' and 'GarantySante' were found for the following CodeActe: " + codeActe.ToString() + " and for the default Assureur";


                //var element = groupSanteListAll.Where(g => g.GarantySantes.Any(gar => gar.AssurId == assureurId && gar.CodeActe == codeActe));
                var element = groupSanteListAll.Where(g => g.AssureurName == assureurName && g.CodeActe == codeActe);

                if (element.Any())
                {
                    myGroupName = element.First().GroupName;
                    myGarName   = element.First().GarantyName;
                }
                else
                {
                    //we didn't fint any Groups - Garanties for a specific AssureurId => maybe no unique Group-Garanty values
                    //have been assigned for this Assureur => check the default Group-Garanty values for Assureur == -1
                    element = groupSanteListAll.Where(g => g.AssureurName == C.cDEFAULTASSUREUR && g.CodeActe == codeActe);
                    if (element.Any())
                    {
                        myGroupName = element.First().GroupName;
                        myGarName   = element.First().GarantyName;
                    }
                    else
                    {
                        //no group and garanty were found for the specified codeActe
                        throw new Exception(errMessAssDefaultId);
                    }
                }

                myGGPair.GroupName   = myGroupName;
                myGGPair.GarantyName = myGarName;

                return(myGGPair);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
                throw ex;
            }
        }
示例#3
0
        public Class MakeGenericClass(Class[] args)
        {
            foreach (var ce in GenericClasses)
            {
                for (var i = 0; i < args.Length; i++)
                {
                    var arg  = args[i];
                    var arg2 = ce.GenericArguments[i];
                    if (arg != arg2)
                    {
                        break;
                    }
                }
                return(ce);
            }
            var ce2 = new Class {
                Name = Name
            };

            ce2.GenericArguments.AddRange(args);
            GenericClasses.Add(ce2);

            return(ce2);
        }