/// <summary> /// trouver l'operation à partir du keyword pour les operations non localisables /// </summary> /// <param name="operationLabel"></param> /// <param name="idOperationMethod"></param> /// <param name="idMovement"></param> /// <returns></returns> public OperationDetail GetByKeywordOperation(int idUserGroup, string operationLabel, int idOperationMethod, EnumMovement enumMovement) { //retrouver l'operation par le keyword d'operation List <OperationDetail> operationDetails = _operationDetailRepository.GetAllByIdOperationMethod(idUserGroup, idOperationMethod); operationDetails = operationDetails.Where(x => operationLabel.Contains(x.KeywordOperation)).ToList(); var lenght = operationDetails.Max(x => x.KeywordOperation); operationDetails = operationDetails.Where(x => x.KeywordOperation == lenght).ToList(); switch (operationDetails.Count) { case 0: return(null); case 1: return(operationDetails[0]); default: throw new Exception("2 keywords identiques présents pour les operations non localisables"); } }
/// <summary> /// trouver l'operation à partir des keywords operation et place pour les operations localisables /// </summary> /// <param name="operationLabel"></param> /// <param name="idOperationMethod"></param> /// <param name="idMovement"></param> /// <returns></returns> public OperationDetail GetByKeywords(int idUserGroup, string operationLabel, int idOperationMethod, EnumMovement enumMovement) { //retrouver l'operation par le keyword d'operation List <OperationDetail> operationDetails = _operationDetailRepository.GetAllByIdOperationMethod(idUserGroup, idOperationMethod); operationDetails = operationDetails .Where(x => operationLabel.Contains(x.KeywordOperation)) .Where(x => x.KeywordPlace != null && (operationLabel.Contains(x.KeywordPlace) || x.KeywordPlace == "--INTERNET--" || x.KeywordPlace == "-TOREPLACE-")) .ToList(); switch (operationDetails.Count) { case 0: return(null); case 1: return(operationDetails[0]); default: return(DetachOperation(operationDetails)); //throw new Exception("2 paires de keywords identiques présents pour les operations localisables"); } }