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