コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }