Esempio n. 1
0
        /// <summary>
        /// Génére tous les SelectorInstance depuis les criteria donnés.
        /// </summary>
        /// <param name="selectConf">SelectorConfig cible</param>
        /// <param name="wfInstance">WorkflowInstance nouvellement démarré</param>
        /// <param name="parent">Eventuel SelectorInstance pouvant être à l'origine de la création de nouvelles instances</param>
        /// <returns>Message de résultat</returns>
        public async Task <HttpResponseMessageResult> GenerateSelectorsInstances(SelectorConfig selectConf, WorkflowInstance wfInstance, SelectorInstance parent = null)
        {
            if (selectConf == null)
            {
                throw new SequenceException("Process.SelectorConfig.Init: SelectorConfig are null.");
            }

            if (selectConf.Criterias == null)
            {
                throw new DataLoadingException("SelectorConfig : Criterias not loaded!");
            }

            // WOR-174 - Créer en chaine les SelectorInstance selon la liste de Criterias...
            // On passe directement les criteria valorisés dans la requête de sélection...
            IEnumerable <IEnumerable <CriteriaValues> > lstCV = await CriteriaDomain.ExtractAllCriteriaValues(selectConf.Criterias, wfInstance);

            IEnumerable <IEnumerable <CriteriaValues> > lstCrit = await GetValueObjectsFromCriteria(lstCV, wfInstance.DataSetId);

            HttpResponseMessageResult res = new HttpResponseMessageResult()
            {
                IsSuccess = true
            };

            foreach (IEnumerable <CriteriaValues> cvs in lstCrit)
            {
                SelectorInstance si = await SelectorInstanceDomain.Create(selectConf, cvs, parent, wfInstance);

                UnitOfWork.SelectorInstanceRepository.PrepareUpdateForObject(si);
                res.Append(await NextStep(si, wfInstance));
            }

            return(res);
        }
        /// <summary>
        /// Ajoute un criteria dans un SelectorConfig.
        /// </summary>
        /// <param name="criteria">Criteria à ajouter</param>
        /// <returns>Message de retour.</returns>
        /// <remarks>L'objet Criteria doit contenir l'id du SelectorConfig dans lequel il faut l'ajouter. L'API retourne une erreur
        /// lorsque la dimension ou la valeur du Criteria n'est pas définie.
        /// Les valeurs possibles d'un Criteria sont '*', chaine-de-caractères, '{valeur1, valeur2, ..., valeurn}' </remarks>
        public async Task <DTO.Criteria> Add(DTO.Criteria criteria)
        {
            if (criteria == null)
            {
                throw new WrongParameterException("Criteria object is null!");
            }

            ENT.Criteria criterEntity  = Mapper.Map <DTO.Criteria, ENT.Criteria>(criteria);
            ENT.Criteria addedCriteria = await CriteriaDomain.Add(criterEntity);

            return(Mapper.Map <ENT.Criteria, DTO.Criteria>(addedCriteria));
        }
        /// <summary>
        /// Récupére l'entité désignée par l'id en paramétre.
        /// </summary>
        /// <param name="id">Id de l'entité</param>
        /// <returns>Message de retour avec l'entité</returns>
        public async Task <DTO.Criteria> GetById(long id)
        {
            ENT.Criteria criterias = await CriteriaDomain.Get(id);

            DTO.Criteria dtoCriteria = null;
            if (criterias != null)
            {
                dtoCriteria = Mapper.Map <ENT.Criteria, DTO.Criteria>(criterias);
            }

            return(dtoCriteria);
        }
        /// <summary>
        /// Récupére toutes les entités DTO existantes.
        /// </summary>
        /// <returns>Message de retour avec la liste en json</returns>
        public async Task <IEnumerable <DTO.Criteria> > GetAll()
        {
            IEnumerable <ENT.Criteria> criterias = await CriteriaDomain.Get();


            IEnumerable <DTO.Criteria> dtoCriterias = null;

            if (criterias != null)
            {
                dtoCriterias = Mapper.Map <IEnumerable <ENT.Criteria>, IEnumerable <DTO.Criteria> >(criterias);
            }
            else
            {
                dtoCriterias = new List <DTO.Criteria>();
            }

            return(dtoCriterias);
        }