public WfProcessQueryCondition ClientToServer(WfClientProcessQueryCondition client, ref WfProcessQueryCondition server)
        {
            client.NullCheck("client");

            if (server == null)
            {
                server = new WfProcessQueryCondition();
            }

            server.ApplicationName             = client.ApplicationName;
            server.ProgramName                 = client.ProgramName;
            server.ProcessName                 = client.ProcessName;
            server.AssigneeExceptionFilterType = client.AssigneeExceptionFilterType.ToAssigneeExceptionFilterType();
            server.AssigneesSelectType         = client.AssigneesSelectType.ToAssigneesFilterType();

            server.AssigneesUserName  = client.AssigneesUserName;
            server.BeginStartTime     = client.BeginStartTime;
            server.EndStartTime       = client.EndStartTime;
            server.ProcessStatus      = client.ProcessStatus;
            server.DepartmentName     = client.DepartmentName;
            server.ProcessCreatorID   = client.ProcessCreatorID;
            server.ProcessCreatorName = client.ProcessCreatorName;

            foreach (WfClientUser user in client.CurrentAssignees)
            {
                server.CurrentAssignees.Add((IUser)(user.ToOguObject()));
            }

            return(server);
        }
        public void ClearTenantProcessInstanceDataTest()
        {
            WfClientProcessQueryCondition condition = new WfClientProcessQueryCondition();

            condition.BeginStartTime   = DateTime.Now.AddHours(-1);
            condition.EndStartTime     = DateTime.Now.AddHours(1);
            condition.ProcessCreatorID = Consts.Users["Requestor"].ID;

            TenantContext.Current.DoActions("Test2", () =>
            {
                WfClientProcessInfo process = OperationHelper.PrepareSimpleProcessInstance();

                WfClientProcess processLoaded = WfClientProcessRuntimeServiceProxy.Instance.GetProcessByID(process.ID, Consts.Users["Requestor"]);

                Assert.IsNotNull(processLoaded);

                WfClientProcessRuntimeServiceProxy.Instance.ClearTenantProcessInstanceData("Test2");

                try
                {
                    processLoaded = WfClientProcessRuntimeServiceProxy.Instance.GetProcessByID(process.ID, Consts.Users["Requestor"]);

                    Assert.Fail("流程已经被删除,加载流程不能成功");
                }
                catch (System.Exception)
                {
                }
            });
        }
        public WfClientProcessCurrentInfoPageQueryResult QueryProcesses(WfClientProcessQueryCondition condition, int startRowIndex, int maximumRows, string orderBy, int totalCount)
        {
            condition.NullCheck("condition");

            OperationContext.Current.FillContextToOguServiceContext();

            WfProcessQueryCondition serverCondition = null;

            WfClientProcessQueryConditionConverter.Instance.ClientToServer(condition, ref serverCondition);

            if (orderBy.IsNullOrEmpty())
            {
                orderBy = "START_TIME DESC";
            }

            ConnectiveSqlClauseCollection connective = serverCondition.ToSqlBuilder();

            WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder();

            builder.AppendItem("COMMITTED", "1");
            builder.AppendTenantCode();

            connective.Add(builder);

            QueryCondition qc = new QueryCondition(startRowIndex, maximumRows,
                                                   ORMapping.GetSelectFieldsNameSql <WfProcessCurrentInfo>(),
                                                   ORMapping.GetMappingInfo(typeof(WfProcessCurrentInfo)).TableName,
                                                   orderBy);

            qc.WhereClause += connective.ToSqlString(TSqlBuilder.Instance);

            return(QueryProcessInfo(qc, totalCount));
        }
        public override IDictionary <string, object> Serialize(object obj, JavaScriptSerializer serializer)
        {
            Dictionary <string, object> dictionary = new Dictionary <string, object>();

            WfClientProcessQueryCondition condition = (WfClientProcessQueryCondition)obj;

            DictionaryHelper.AddNonDefaultValue(dictionary, "applicationName", condition.ApplicationName);
            DictionaryHelper.AddNonDefaultValue(dictionary, "programName", condition.ProgramName);

            DictionaryHelper.AddNonDefaultValue(dictionary, "beginStartTime", condition.BeginStartTime);
            DictionaryHelper.AddNonDefaultValue(dictionary, "endStartTime", condition.EndStartTime);

            DictionaryHelper.AddNonDefaultValue(dictionary, "departmentName", condition.DepartmentName);
            DictionaryHelper.AddNonDefaultValue(dictionary, "processName", condition.ProcessName);

            DictionaryHelper.AddNonDefaultValue(dictionary, "assigneesSelectType", condition.AssigneesSelectType);
            DictionaryHelper.AddNonDefaultValue(dictionary, "assigneesUserName", condition.AssigneesUserName);

            DictionaryHelper.AddNonDefaultValue(dictionary, "assigneeExceptionFilterType", condition.AssigneeExceptionFilterType);

            DictionaryHelper.AddNonDefaultValue(dictionary, "processStatus", condition.ProcessStatus);

            DictionaryHelper.AddNonDefaultValue(dictionary, "processCreatorID", condition.ProcessCreatorID);
            DictionaryHelper.AddNonDefaultValue(dictionary, "processCreatorName", condition.ProcessCreatorName);

            DictionaryHelper.AddNonDefaultValue(dictionary, "currentAssignees", condition.CurrentAssignees);

            return(dictionary);
        }
        public WfClientProcessQueryCondition ServerToClient(WfProcessQueryCondition server, ref WfClientProcessQueryCondition client)
        {
            server.NullCheck("server");

            if (client == null)
            {
                client = new WfClientProcessQueryCondition();
            }

            client.ApplicationName             = server.ApplicationName;
            client.ProgramName                 = server.ProgramName;
            client.ProcessName                 = server.ProcessName;
            client.AssigneeExceptionFilterType = server.AssigneeExceptionFilterType.ToClientAssigneeExceptionFilterType();
            client.AssigneesSelectType         = server.AssigneesSelectType.ToClientAssigneesFilterType();

            client.AssigneesUserName  = server.AssigneesUserName;
            client.BeginStartTime     = server.BeginStartTime;
            client.EndStartTime       = server.EndStartTime;
            client.ProcessStatus      = server.ProcessStatus;
            client.DepartmentName     = server.DepartmentName;
            client.ProcessCreatorID   = server.ProcessCreatorID;
            client.ProcessCreatorName = server.ProcessCreatorName;

            foreach (IUser user in server.CurrentAssignees)
            {
                client.CurrentAssignees.Add((WfClientUser)(user.ToClientOguObject()));
            }

            return(client);
        }
        public override object Deserialize(IDictionary <string, object> dictionary, Type type, JavaScriptSerializer serializer)
        {
            WfClientProcessQueryCondition condition = new WfClientProcessQueryCondition();

            condition.ApplicationName = DictionaryHelper.GetValue(dictionary, "applicationName", string.Empty);
            condition.ProgramName     = DictionaryHelper.GetValue(dictionary, "programName", string.Empty);

            condition.BeginStartTime = DictionaryHelper.GetValue(dictionary, "beginStartTime", DateTime.MinValue);
            condition.EndStartTime   = DictionaryHelper.GetValue(dictionary, "endStartTime", DateTime.MinValue);

            condition.DepartmentName = DictionaryHelper.GetValue(dictionary, "departmentName", string.Empty);
            condition.ProcessName    = DictionaryHelper.GetValue(dictionary, "processName", string.Empty);

            condition.AssigneesSelectType = DictionaryHelper.GetValue(dictionary, "assigneesSelectType", WfClientAssigneesFilterType.CurrentActivity);
            condition.AssigneesUserName   = DictionaryHelper.GetValue(dictionary, "assigneesUserName", string.Empty);

            condition.AssigneeExceptionFilterType = DictionaryHelper.GetValue(dictionary, "assigneeExceptionFilterType", WfClientAssigneeExceptionFilterType.All);

            condition.ProcessStatus = DictionaryHelper.GetValue(dictionary, "processStatus", string.Empty);

            condition.ProcessCreatorID   = DictionaryHelper.GetValue(dictionary, "processCreatorID", string.Empty);
            condition.ProcessCreatorName = DictionaryHelper.GetValue(dictionary, "processCreatorName", string.Empty);

            JSONSerializerExecute.FillDeserializedCollection(dictionary.GetValue("currentAssignees", (ArrayList)null), condition.CurrentAssignees);

            return(condition);
        }
Пример #7
0
        public void ClientProcessQueryConditionToServerTest()
        {
            WfClientProcessQueryCondition client = PrepareQueryCondition();

            WfProcessQueryCondition server = null;

            WfClientProcessQueryConditionConverter.Instance.ClientToServer(client, ref server);

            client.AreSame(server);
        }
Пример #8
0
        public void ClientProcessQueryConditionToSqlTest()
        {
            WfClientProcessQueryCondition client = PrepareQueryCondition();

            WfProcessQueryCondition server = null;

            WfClientProcessQueryConditionConverter.Instance.ClientToServer(client, ref server);

            Console.WriteLine(server.ToSqlBuilder().ToSqlString(TSqlBuilder.Instance));
        }
        public void QueryProcessesTest()
        {
            WfClientProcessQueryCondition condition = new WfClientProcessQueryCondition();

            condition.BeginStartTime   = DateTime.Now.AddHours(-1);
            condition.EndStartTime     = DateTime.Now.AddHours(1);
            condition.ProcessCreatorID = Consts.Users["Requestor"].ID;

            WfClientProcessInfo process = OperationHelper.PrepareSimpleProcessInstance();

            WfClientProcessCurrentInfoPageQueryResult result = WfClientProcessRuntimeServiceProxy.Instance.QueryProcesses(condition, 0, 1, string.Empty, -1);

            Assert.IsTrue(result.QueryResult.ContainsKey(process.ID));
        }
Пример #10
0
        public void ClientProcessQueryConditionSerializationTest()
        {
            WfClientJsonConverterHelper.Instance.RegisterConverters();

            WfClientProcessQueryCondition condition = PrepareQueryCondition();

            string data = JSONSerializerExecute.Serialize(condition);

            Console.WriteLine(data);

            WfClientProcessQueryCondition deserialized = JSONSerializerExecute.Deserialize <WfClientProcessQueryCondition>(data);

            condition.AreSame(deserialized);
        }
Пример #11
0
        private static WfClientProcessQueryCondition PrepareQueryCondition()
        {
            WfClientProcessQueryCondition condition = new WfClientProcessQueryCondition();

            condition.ApplicationName             = "My Applicaiton";
            condition.ProcessName                 = "My Process";
            condition.AssigneesUserName           = "******";
            condition.AssigneesSelectType         = WfClientAssigneesFilterType.AllActivities;
            condition.AssigneeExceptionFilterType = WfClientAssigneeExceptionFilterType.CurrentActivityError;
            condition.BeginStartTime              = DateTime.Now;
            condition.EndStartTime                = DateTime.Now.AddDays(1);
            condition.DepartmentName              = "流程管理部";
            condition.ProcessStatus               = WfClientProcessStatus.Running.ToString();

            condition.CurrentAssignees.Add(Consts.Users["Approver1"]);

            return(condition);
        }
Пример #12
0
        public static void AreSame(this WfClientProcessQueryCondition expected, WfProcessQueryCondition actual)
        {
            AssertStringEqual(expected.ApplicationName, actual.ApplicationName);
            AssertStringEqual(expected.ProcessName, actual.ProcessName);
            AssertStringEqual(expected.AssigneesUserName, actual.AssigneesUserName);
            AssertStringEqual(expected.DepartmentName, actual.DepartmentName);
            AssertStringEqual(expected.ProcessStatus, actual.ProcessStatus);

            Assert.AreEqual(expected.BeginStartTime, actual.BeginStartTime);
            Assert.AreEqual(expected.EndStartTime, actual.EndStartTime);

            Assert.AreEqual(expected.AssigneesSelectType, actual.AssigneesSelectType.ToClientAssigneesFilterType());
            Assert.AreEqual(expected.AssigneeExceptionFilterType, actual.AssigneeExceptionFilterType.ToClientAssigneeExceptionFilterType());

            Assert.AreEqual(expected.CurrentAssignees.Count, actual.CurrentAssignees.Count);

            for (int i = 0; i < expected.CurrentAssignees.Count; i++)
            {
                expected.CurrentAssignees[i].AreSame(actual.CurrentAssignees[i]);
            }
        }
 public WfClientProcessCurrentInfoPageQueryResult QueryProcesses(WfClientProcessQueryCondition condition, int startRowIndex, int maximumRows, string orderBy, int totalCount)
 {
     return(this.SingleCall(action => action.QueryProcesses(condition, startRowIndex, maximumRows, orderBy, totalCount)));
 }