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