/// <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.WorkflowInstance> GetById(long id) { ENT.WorkflowInstance workflowInstance = await WorkflowInstanceDomain.Get(id); DTO.WorkflowInstance dtoWorkflowInstance = null; if (workflowInstance != null) { dtoWorkflowInstance = Mapper.Map <ENT.WorkflowInstance, DTO.WorkflowInstance>(workflowInstance); } return(dtoWorkflowInstance); }
/// <summary> /// This function permits to update an instance /// </summary> /// <param name="workflowConfig"></param> /// <returns>WorkflowConfig</returns> public async Task <DTO.WorkflowInstance> Put(long id, DTO.WorkflowInstance dto) { DTO.WorkflowInstance element = Mapper.Map <ENT.WorkflowInstance, DTO.WorkflowInstance>(await WorkflowInstanceDomain.Get(id)); if (element.Id != 0) { dto.Id = element.Id; return(Mapper.Map <ENT.WorkflowInstance, DTO.WorkflowInstance>( await WorkflowInstanceDomain.Add(Mapper.Map <DTO.WorkflowInstance, ENT.WorkflowInstance>(dto)))); } else { return(new DTO.WorkflowInstance()); } }
/// <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.WorkflowInstance> > GetAll() { IEnumerable <ENT.WorkflowInstance> workflowInstance = await WorkflowInstanceDomain.Get(); IEnumerable <DTO.WorkflowInstance> dtoWorkflowInstance = null; if (workflowInstance != null) { dtoWorkflowInstance = Mapper.Map <IEnumerable <ENT.WorkflowInstance>, IEnumerable <DTO.WorkflowInstance> >(workflowInstance); } else { dtoWorkflowInstance = new List <DTO.WorkflowInstance>(); } return(dtoWorkflowInstance); }
/// <summary> /// This method permits to open and start the workflow /// </summary> /// <param name="workflowConfig">WorkflowConfig Id</param> /// <param name="dataSet">DataSet Id</param> public async Task <HttpResponseMessageResult> Open(long workflowConfigId, long dataSetId, long idUserSet) { // Création de la transaction using (IDbContextTransaction transaction = UnitOfWork.GetDbContext().Database.BeginTransaction()) { SessionStatsHelper.HttpHitSaveDBTransaction(transaction, _serviceProvider); // On récupére les entités WorkflowConfig wfConf = await UnitOfWork.GetDbContext().WorkflowConfig .Include(wf => wf.SelectorConfig) .ThenInclude(sc => sc.Criterias) .ThenInclude(c => c.Dimension) .Include(wf => wf.SelectorConfig) .ThenInclude(sc => sc.Modifiers) .ThenInclude(c => c.Dimension) .Include(wf => wf.SelectorConfig) .ThenInclude(sc => sc.Validators) .ThenInclude(c => c.Dimension) .Include(wf => wf.SelectorConfig) .ThenInclude(sc => sc.ModifyCriterias) .ThenInclude(c => c.Dimension) .Include(wf => wf.WorkflowDimension) .ThenInclude(wd => wd.Dimension) .Where(wf => wf.Id == workflowConfigId) .AsNoTracking() .ToAsyncEnumerable() .FirstOrDefault(); DataSet dtSet = await UnitOfWork.GetDbContext().DataSet .Include(d => d.DataSetDimensions) .Where(d => d.Id == dataSetId) .AsNoTracking() .ToAsyncEnumerable() .FirstOrDefault(); UserSet usrSet = await UnitOfWork.GetDbContext().UserSet .Where(u => u.Id == idUserSet) .AsNoTracking() .ToAsyncEnumerable() .FirstOrDefault(); if ((wfConf == null) || (dtSet == null) || (usrSet == null)) { return new HttpResponseMessageResult() { IsSuccess = false, Message = $"Can't get WorkflowConfig with id {workflowConfigId}, DataSet with id {dataSetId}, UserSet with id {idUserSet}" } } ; if (!CheckDimensions(wfConf, dtSet, usrSet)) { throw new SequenceException("Process.Open: WorkflowDimensions are not equals to DataSetDimensions."); } // Create the workflow instance WorkflowInstance workflowInstance = await WorkflowInstanceDomain.CreateInstance(wfConf, dtSet, usrSet); // Générer les SelectorInstance. HttpResponseMessageResult res = await WorkflowInstanceDomain.StartSelectorsIntances(workflowInstance); transaction.Commit(); return(res); } }
/// <summary> /// This function permits to put an instance /// </summary> /// <param name="parameters"></param> /// <returns></returns> public async Task <DTO.WorkflowInstance> Post(DTO.WorkflowInstance dto) { ENT.WorkflowInstance element = Mapper.Map <DTO.WorkflowInstance, ENT.WorkflowInstance>(dto); return(Mapper.Map <ENT.WorkflowInstance, DTO.WorkflowInstance>(await WorkflowInstanceDomain.Add(element))); }
/// <summary> /// This function permits to delete by id /// </summary> /// <param name="id"></param> /// <returns>Task</returns> public async Task Delete(long id) { await WorkflowInstanceDomain.Delete(id); }