Ejemplo n.º 1
0
        public ActivityFormView GetActivityForm(Guid flowId)
        {
            ActivityFormView activityForm = null;

            using (var scope = new UnitOfWorkScope())
            {
                try
                {
                    var   flowRepository = ServiceLocator.Current.GetInstance <IRepository <Flow> >();
                    Flow  flow           = flowRepository.With(w => w.Node).Get(flowId);
                    State state          = flow.Node as State;

                    var fieldRepository = ServiceLocator.Current.GetInstance <IRepository <Field> >();
                    var fields          = fieldRepository.With(w => w.Attribute).Query(new Specification <Field>(q => q.State.Id == state.Id));
                    var attributeValues = new Dictionary <string, object>();

                    var attributeInstanceRepository = ServiceLocator.Current.GetInstance <IRepository <AttributeInstance> >();
                    foreach (var field in fields)
                    {
                        var    attribute     = field.Attribute;
                        string attributeName = attribute.Name;
                        if ((field.Access.IsReadable() || field.Access.IsWritable()))
                        {
                            AttributeInstance attributeInstance = attributeInstanceRepository.SingleOrDefault(s => s.Scope.Id == flowId && s.AttributeName == attributeName);
                            if (attributeInstance != null)
                            {
                                attributeValues.Add(attributeName, attributeInstance.GetValue());
                            }
                        }
                    }

                    activityForm                 = new ActivityFormView();
                    activityForm.FlowId          = flowId;
                    activityForm.AttributeValues = attributeValues;
                    return(activityForm);
                }
                catch
                {
                    throw;
                }
            }
        }
Ejemplo n.º 2
0
        public ActivityFormView GetStartForm(Guid processDefinitionId)
        {
            ActivityFormView activityForm = null;

            using (var scope = new UnitOfWorkScope())
            {
                try
                {
                    var processDefinitionRepository     = ServiceLocator.Current.GetInstance <IRepository <ProcessDefinition> >();
                    ProcessDefinition processDefinition = processDefinitionRepository.With(w => w.Nodes).With(w => w.Attributes).Get(processDefinitionId);

                    var fieldRepository = ServiceLocator.Current.GetInstance <IRepository <Field> >();
                    var fields          = fieldRepository.With(w => w.Attribute).Query(new Specification <Field>(q => q.State.Id == processDefinition.StartStateId));
                    var attributeValues = new Dictionary <string, object>();

                    foreach (var field in fields)
                    {
                        var    attribute     = field.Attribute;
                        string attributeName = attribute.Name;
                        string initialValue  = attribute.InitialValue;
                        if (!string.IsNullOrEmpty(initialValue) && (field.Access.IsReadable() || field.Access.IsWritable()))
                        {
                            AttributeInstance attributeInstance = new AttributeInstance(attribute, null);
                            attributeInstance.ValueText = initialValue;
                            attributeValues.Add(attributeName, attributeInstance.GetValue());
                        }
                    }

                    activityForm = new ActivityFormView();
                    activityForm.ProcessDefinitionId = processDefinition.Id;
                    activityForm.AttributeValues     = attributeValues;

                    return(activityForm);
                }
                catch
                {
                    throw;
                }
            }
        }