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; } }
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); }