public IHttpActionResult GetCollaborationSigns(int?roleId) { _logger.WriteDebug(new LogMessage(string.Concat("GetCollaborationSigns -> roleId = ", roleId)), LogCategories); return(CommonHelpers.ActionHelper.TryCatchWithLoggerGeneric <IHttpActionResult>(() => { ICollection <CollaborationSignModel> signers = new List <CollaborationSignModel>(); if (!roleId.HasValue) { _logger.WriteError(new LogMessage("GetCollaborationSigns -> Errore validazione parametri in ingresso, roleId non valorizzato"), LogCategories); return BadRequest("GetCollaborationSigns -> Errore validazione parametri in ingresso, roleId non valorizzato"); } Role role = _unitOfWork.Repository <Role>().Find(roleId.Value); WorkflowRoleMapping workflowRoleMapping = new WorkflowRoleMapping() { AuthorizationType = WorkflowAuthorizationType.AllSigner, Role = role }; ICollection <WorkflowAuthorization> workflowAuthorizations = _workflowAuthorizationService.GetAuthorizationsByMappings(new List <WorkflowRoleMapping>() { workflowRoleMapping }); short incremental = 1; foreach (WorkflowAuthorization workflowAuthorization in workflowAuthorizations) { DomainUserModel user = _security.GetUser(workflowAuthorization.Account); CollaborationSignModel collaborationSign = _domainSignMapper.Map(user, new CollaborationSignModel()); collaborationSign.SignUser = workflowAuthorization.Account; collaborationSign.Incremental = incremental++; signers.Add(collaborationSign); } return Ok(signers); }, _logger, LogCategories)); }
public IHttpActionResult GetCollaborationSigns(string domain, string account) { _logger.WriteDebug(new LogMessage(string.Concat("GetCollaborationSigns -> domain = ", domain, ", account = ", account)), LogCategories); return(CommonHelpers.ActionHelper.TryCatchWithLoggerGeneric <IHttpActionResult>(() => { ICollection <CollaborationSignModel> signers = new List <CollaborationSignModel>(); if (string.IsNullOrEmpty(account)) { _logger.WriteError(new LogMessage("GetCollaborationSigns -> Errore validazione parametri in ingresso, account non valorizzato"), LogCategories); return BadRequest("GetCollaborationSigns -> Errore validazione parametri in ingresso, account non valorizzato"); } DomainUserModel user = _security.GetUser(account); CollaborationSignModel collaborationSign = _domainSignMapper.Map(user, new CollaborationSignModel()); collaborationSign.SignUser = string.Concat(domain, "\\", account); collaborationSign.Incremental = 1; signers.Add(collaborationSign); return Ok(signers); }, _logger, LogCategories)); }
public IHttpActionResult GetCollaborationSigns(string mappingName, Guid workflowInstanceId, string internalActivityId) { _logger.WriteDebug(new LogMessage(string.Concat("GetCollaborationSigns -> mappingName = ", mappingName, ", workflowInstanceId = ", workflowInstanceId, ", internalActivityId = ", internalActivityId)), LogCategories); return(CommonHelpers.ActionHelper.TryCatchWithLoggerGeneric <IHttpActionResult>(() => { ICollection <CollaborationSignModel> signers = new List <CollaborationSignModel>(); if (string.IsNullOrEmpty(mappingName)) { _logger.WriteError(new LogMessage("GetCollaborationSigns -> Errore validazione parametri in ingresso, mappingName non valorizzato"), LogCategories); return BadRequest("GetCollaborationSigns -> Errore validazione parametri in ingresso, mappingName non valorizzato"); } WorkflowRepository repository = _unitOfWork.Repository <WorkflowRepository>().GetByInstanceId(workflowInstanceId); if (repository == null) { _logger.WriteError(new LogMessage("Nessun repository trovato"), LogCategories); return BadRequest("Nessun repository trovato"); } IEnumerable <WorkflowRoleMapping> workflowRoleMappings; if (string.IsNullOrEmpty(internalActivityId)) { workflowRoleMappings = _unitOfWork.Repository <WorkflowRoleMapping>().GetByMappingTag(mappingName, repository.UniqueId); } else { workflowRoleMappings = _unitOfWork.Repository <WorkflowRoleMapping>().GetByMappingTag(mappingName, repository.UniqueId, internalActivityId); } ICollection <WorkflowAuthorization> workflowAuthorizations = _workflowAuthorizationService.GetAuthorizationsByMappings(workflowRoleMappings); short incremental = 1; foreach (WorkflowAuthorization workflowAuthorization in workflowAuthorizations) { DomainUserModel user = _security.GetUser(workflowAuthorization.Account); CollaborationSignModel collaborationSign = _domainSignMapper.Map(user, new CollaborationSignModel()); collaborationSign.SignUser = workflowAuthorization.Account; collaborationSign.Incremental = incremental++; signers.Add(collaborationSign); } return Ok(signers); }, _logger, LogCategories)); }