Esempio n. 1
0
        public void SaveAndLoadTenantProcessTest()
        {
            IWfProcessDescriptor processDesp = CreateTestProcessDescriptor();

            string tenantCode = UuidHelper.NewUuidString();

            PrepareTenantContext(tenantCode);

            WfProcessDescriptorManager.SaveDescriptor(processDesp);

            //加载同一个租户的流程定义,如果不存在,会抛出异常
            IWfProcessDescriptor loadedSameTenant = WfProcessDescriptorManager.LoadDescriptor(processDesp.Key);

            Assert.AreEqual(processDesp.Key, loadedSameTenant.Key);

            PrepareTenantContext(UuidHelper.NewUuidString());

            try
            {
                loadedSameTenant = WfProcessDescriptorManager.LoadDescriptor(processDesp.Key);

                throw new ApplicationException("不应该加载到别的租户的流程");
            }
            catch (SystemSupportException)
            {
            }
        }
Esempio n. 2
0
        private static WfProcessStartupParams PrepareStartWorkflowParams(IWfProcessDescriptor processDesp, WfSimulationContext simulationContext)
        {
            WfProcessStartupParams startupParams = new WfProcessStartupParams();

            startupParams.ProcessDescriptor = processDesp;
            startupParams.DefaultTaskTitle  = startupParams.ProcessDescriptor.DefaultTaskTitle;

            if (OguUser.IsNotNullOrEmpty(simulationContext.SimulationParameters.Creator))
            {
                startupParams.Creator = simulationContext.SimulationParameters.Creator;
            }
            else
            {
                if (DeluxePrincipal.IsAuthenticated)
                {
                    startupParams.Creator = DeluxeIdentity.CurrentUser;
                }
            }

            startupParams.Assignees.Add(startupParams.Creator);
            startupParams.ResourceID = UuidHelper.NewUuidString();

            MergeVariablesToApplicationRuntimeParameters(startupParams.ApplicationRuntimeParameters, simulationContext.SimulationParameters.Variables);

            return(startupParams);
        }
Esempio n. 3
0
        private SysTaskProcess PrepareSysTaskProcessData(Func <DO.SysTask> getTask, string name = "测试任务流程名称")
        {
            SysTaskProcess process = new SysTaskProcess();

            process.ID        = UuidHelper.NewUuidString();
            process.Name      = name;
            process.Status    = SysTaskProcessStatus.Running;
            process.StartTime = DateTime.Now;

            SysTaskActivity activity1 = new SysTaskActivity(getTask());

            activity1.ID   = UuidHelper.NewUuidString();
            activity1.Name = "活动1";

            process.Activities.Add(activity1);

            SysTaskActivity activity2 = new SysTaskActivity(getTask());

            activity2.ID   = UuidHelper.NewUuidString();
            activity2.Name = "活动2";

            process.Activities.Add(activity2);

            return(process);
        }
Esempio n. 4
0
        /// <summary>
        /// 根据已经完成系统任务创建新任务
        /// </summary>
        /// <param name="taskID">被移动的任务的ID</param>
        /// <param name="status">重置任务的状态</param>
        public void MoveToNoRunningTask(string taskID)
        {
            var completedTask = this.Load(taskID);

            (completedTask != null).FalseThrow <ArgumentException>("ID为 {0} 的任务不存在", taskID);

            PerformanceMonitorHelper.GetDefaultMonitor().WriteExecutionDuration(string.Format("MoveNoRunning({0})", this.GetType().FullName), () =>
            {
                Dictionary <string, object> context  = new Dictionary <string, object>();
                ORMappingItemCollection mappingsTask = ORMapping.GetMappingInfo <SysTask>();

                var task = completedTask.CreateNewSystask(UuidHelper.NewUuidString());;

                StringBuilder sql = new StringBuilder();

                sql.Append(ORMapping.GetInsertSql(task, mappingsTask, TSqlBuilder.Instance));
                sql.Append(TSqlBuilder.Instance.DBStatementSeperator);

                using (TransactionScope scope = TransactionScopeFactory.Create())
                {
                    DbHelper.RunSql(sql.ToString(), this.GetConnectionName());

                    scope.Complete();
                }
            });
        }
Esempio n. 5
0
        private void PrepareToBeAddedScopes(string[] items, PendingActionCollection pendingActions)
        {
            foreach (string scope in items)
            {
                foreach (AdminUnit au in allCurrentAUs)
                {
                    var existed = Adapters.AUSnapshotAdapter.Instance.LoadAUScope(au.ID, scope, false, false, DateTime.MinValue);
                    if (existed.Count == 0)
                    {
                        pendingActions.Add(new AddMemberAction(au, new AUAdminScope()
                        {
                            ID = UuidHelper.NewUuidString(), ScopeSchemaType = scope
                        }));
                    }
                    else
                    {
                        // 尽量恢复已经删除的Scope,而不是重新创建一个
                        if (existed.GetUniqueNormalObject <AUAdminScope>() == null)
                        {
                            AUAdminScope onlyScope = (AUAdminScope)existed.First();
                            onlyScope.Status = SchemaObjectStatus.Normal;
                            pendingActions.Add(new EnableMemberAction(au, onlyScope));
                        }

                        // 否则,这个Scope已经是正常状态了?
                    }
                }
            }
        }
        public MaterialModel FillMaterial(MaterialModel material)
        {
            material.NullCheck("material");

            material.ResourceID       = this.ResourceID;
            material.MaterialClass    = this.MaterialClass;
            material.RelativeFilePath = GetRelativeFilePath(material.ID, this.OriginalName);
            material.SortID           = this.SortID;

            if (this.Title.IsNullOrEmpty())
            {
                material.Title = this.OriginalName;
            }
            else
            {
                material.Title = this.Title;
            }

            material.OriginalName  = this.OriginalName;
            material.LastUploadTag = UuidHelper.NewUuidString();
            material.Status        = MaterualModelStatus.Inserted;

            if (DeluxePrincipal.IsAuthenticated)
            {
                material.Creator = DeluxeIdentity.CurrentUser;

                if (DeluxeIdentity.CurrentUser.Parent != null)
                {
                    material.Department = DeluxeIdentity.CurrentUser.Parent;
                }
            }
            return(material);
        }
        private void PrepareScopesForAdd()
        {
            var scopeNames = this.schema.Scopes.Split(AUCommon.Spliter, StringSplitOptions.RemoveEmptyEntries);

            foreach (string name in scopeNames)
            {
                AUAdminScope existingScope = AUCommon.FindMatchScope(this.existingUnitScopes, name);
                AUAdminScope inputScope    = this.InputAdminScopes != null?AUCommon.FindMatchScope(this.InputAdminScopes, name) : null;

                if (inputScope != null && existingScope != null && inputScope.ID != existingScope.ID)
                {
                    throw new AUObjectException(string.Format("导入的管理范围{0}与现有管理范围{1}的ID不一致,导致无法继续执行导入。", inputScope.ID, existingScope.ID));
                }

                if (existingScope == null)
                {
                    if (inputScope == null)
                    {
                        inputScope = new AUAdminScope()
                        {
                            ID = UuidHelper.NewUuidString(), ScopeSchemaType = name
                        }
                    }
                    ;

                    pendingActions.Add(new AddMemberAction((AdminUnit)this.Data, inputScope));
                }
                else if (existingScope.Status != SchemaObjectStatus.Normal)
                {
                    pendingActions.Add(new EnableMemberAction((AdminUnit)this.Data, existingScope));
                }
            }
        }
Esempio n. 8
0
 private static void EnsureID(ClientSchemaObjectBase clientObject)
 {
     if (clientObject.ID.IsNullOrEmpty())
     {
         clientObject.ID = UuidHelper.NewUuidString();
     }
 }
Esempio n. 9
0
        private static void ProcessLoginCookie()
        {
            string userName = string.Empty;

            HttpCookie lepusCookie = HttpContext.Current.Request.Cookies.Get("login_uid");

            if (lepusCookie != null)
            {
                userName = lepusCookie.Value;
            }

            if (HttpContext.Current.User == null || HttpContext.Current.User.Identity.Name.IsNullOrEmpty())
            {
                HttpCookie amsCookie = HttpContext.Current.Request.Cookies.Get("ams_login_uid");

                if (amsCookie != null)
                {
                    userName = amsCookie.Value;
                }
            }

            if (userName.IsNullOrEmpty())
            {
                userName = UuidHelper.NewUuidString();
            }

            CreatePrincipal(userName);

            HttpCookie amsResCookie = new HttpCookie("ams_login_uid", userName);

            amsResCookie.Expires = DateTime.MinValue;

            HttpContext.Current.Response.Cookies.Add(amsResCookie);
        }
Esempio n. 10
0
        public void ProcessSerializeTest()
        {
            IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor();

            WfProcessStartupParams startupParams = new WfProcessStartupParams();

            startupParams.ProcessDescriptor = processDesc;
            IWfProcess process = WfRuntime.StartWorkflow(startupParams);

            ((WfProcess)process).ResourceID = UuidHelper.NewUuidString();

            WfProcessContext context = process.Context;

            context.Add("UCC", "the same");

            XElementFormatter formatter = new XElementFormatter();

            //formatter.OutputShortType = false;

            XElement root = formatter.Serialize(process);

            Console.WriteLine(root.ToString());

            IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root);

            Assert.IsNotNull(clonedProcess.Context["UCC"]);
            Assert.AreEqual(process.Context.Count, clonedProcess.Context.Count);
            Assert.AreEqual(process.Context["UCC"], clonedProcess.Context["UCC"]);
        }
Esempio n. 11
0
        private static GenericOpinion PrepareOpinion(IWfActivity activity, WfClientOpinion opinion, IUser user)
        {
            GenericOpinion serverOpinion = null;

            if (opinion != null)
            {
                serverOpinion = opinion.ToGenericOpinion();
            }
            else
            {
                serverOpinion = new GenericOpinion()
                {
                    ID = UuidHelper.NewUuidString()
                }
            };

            serverOpinion.ProcessID  = activity.Process.ID;
            serverOpinion.ActivityID = activity.ID;
            serverOpinion.ResourceID = activity.Process.ResourceID;

            serverOpinion.IssuePerson  = user;
            serverOpinion.AppendPerson = user;

            return(serverOpinion);
        }
Esempio n. 12
0
        public void AddSecretaryToUserExecutorTest()
        {
            SCUser secretary = SCObjectGenerator.PrepareUserObject("罗", "剑", "罗剑" + UuidHelper.NewUuidString());

            SCObjectOperations.Instance.AddUser(secretary, SCOrganization.GetRoot());

            SCUser user1 = SCObjectGenerator.PrepareUserObject();

            SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot());

            SCSecretaryRelation sr = SCObjectOperations.Instance.AddSecretaryToUser(secretary, user1);

            Assert.AreEqual(secretary.SchemaType, sr.ContainerSchemaType);
            Assert.AreEqual(user1.SchemaType, sr.MemberSchemaType);

            SCUser user2 = SCObjectGenerator.PrepareUserObject();

            SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot());

            SCObjectOperations.Instance.AddSecretaryToUser(secretary, user2);

            Assert.IsTrue(user1.CurrentSecretaries.ContainsKey(secretary.ID));
            Assert.IsTrue(user2.CurrentSecretaries.ContainsKey(secretary.ID));

            Assert.IsTrue(secretary.CurrentSecretariesOf.ContainsKey(user1.ID));
            Assert.IsTrue(secretary.CurrentSecretariesOf.ContainsKey(user2.ID));
        }
Esempio n. 13
0
        private void CreateNewObjectBySchemaType(string schemaType)
        {
            this.Data = SchemaExtensions.CreateObject(schemaType);

            this.currentSchemaType.Value = schemaType;
            this.Data.ID = UuidHelper.NewUuidString();
        }
Esempio n. 14
0
        private void Upload(MaterialContent data)
        {
            data.ContentID = UuidHelper.NewUuidString();
            string sql = ORMapping.GetInsertSql(data, TSqlBuilder.Instance);

            DbHelper.RunSql(db => db.ExecuteNonQuery(CommandType.Text, sql), "UAT");
        }
Esempio n. 15
0
        protected void bindMatrixBtn_Click(object sender, EventArgs e)
        {
            try
            {
                string mdKey = selectedMatrix.Value;

                WfMatrixDefinition md = WfMatrixDefinitionAdapter.Instance.Load(mdKey);

                WfMatrix matrix = new WfMatrix(md);

                matrix.MatrixID   = UuidHelper.NewUuidString();
                matrix.ProcessKey = ProcessKey;

                if (DeluxePrincipal.IsAuthenticated)
                {
                    matrix.CreatorID   = DeluxeIdentity.CurrentUser.ID;
                    matrix.CreatorName = DeluxeIdentity.CurrentUser.DisplayName;
                }

                WfMatrixAdapter.Instance.Update(matrix);
            }
            catch (System.Exception ex)
            {
                WebUtility.ShowClientError(ex.Message, ex.StackTrace, "错误");
            }
        }
Esempio n. 16
0
        /// <summary>
        /// 计算缓存Principal所使用的Session Key
        /// </summary>
        /// <returns>Session Key值</returns>
        public static string GetPrincipalSessionKey()
        {
            HttpRequest request = HttpContext.Current.Request;

            HttpCookie cookie = request.Cookies[C_SESSION_KEY_NAME];

            string result;

            if (cookie != null)
            {
                result = cookie.Value;
            }
            else
            {
                result = UuidHelper.NewUuidString() + "-UserPrincipal";

                cookie         = new HttpCookie(C_SESSION_KEY_NAME);
                cookie.Value   = result;
                cookie.Expires = DateTime.MinValue;

                HttpContext.Current.Response.Cookies.Add(cookie);
            }

            return(result);
        }
        protected WfRunningObjectBase(T descriptor)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(descriptor != null, "descriptor");

            _Descriptor = descriptor;
            _ID         = UuidHelper.NewUuidString();
        }
        public virtual void DoModifyFileOperations(string rootPath, MaterialFileOeprationInfo fileOperation, MaterialContent content)
        {
            var task = new InvokeServiceTask()
            {
                TaskID    = UuidHelper.NewUuidString(),
                TaskTitle = string.Format(this.taskTitleTemplate, fileOperation.Material.OriginalName, fileOperation.Material.ID),
            };

            var parameters = new WfServiceOperationParameterCollection
            {
                new WfServiceOperationParameter("rootPath", rootPath),
                new WfServiceOperationParameter("fileOperation", fileOperation.Operation.ToString()),
                new WfServiceOperationParameter("materialConnectionName",
                                                DbConnectionMappingContext.GetMappedConnectionName(MaterialAdapter.Instance.GetConnectionName())),
                new WfServiceOperationParameter("contentConnectionName",
                                                DbConnectionMappingContext.GetMappedConnectionName(MaterialContentAdapter.Instance.ConnectionName)),
                new WfServiceOperationParameter("materialId", fileOperation.Material.ID),
                new WfServiceOperationParameter("url", fileOperation.Material.ShowFileUrl)
            };


            task.SvcOperationDefs.Add(new WfServiceOperationDefinition(
                                          new WfServiceAddressDefinition(WfServiceRequestMethod.Post, null, ResourceUriSettings.GetConfig().Paths[this.resourceUri].Uri.ToString()),
                                          "DoFileToDocService", parameters, "ReturnValue")
                                      );

            DbConnectionMappingContext.DoMappingAction(
                DbConnectionMappingContext.GetMappedConnectionName(InvokeServiceTaskAdapter.Instance.ConnectionName),
                InvokeServiceTaskAdapter.Instance.ConnectionName,
                () =>
            {
                InvokeServiceTaskAdapter.Instance.Update(task);
            });
        }
Esempio n. 19
0
        private static WfClientTransferParams PrepareClientTransferParams()
        {
            WfClientTransferParams transferParams = new WfClientTransferParams("N1");

            transferParams.Operator = Consts.Users["Requestor"];
            transferParams.FromTransitionDescriptorKey = "L1";
            transferParams.Assignees.Add(Consts.Users["Approver1"]);

            WfClientBranchProcessTemplateDescriptor template             = BranchProcessTemplateConverterTest.PrepareClientBranchProcessTemplate();
            WfClientBranchProcessTransferParams     branchTransferParams = new WfClientBranchProcessTransferParams(template);

            WfClientBranchProcessStartupParams branchStartupParams = new WfClientBranchProcessStartupParams(Consts.Users["CFO"]);

            branchStartupParams.DefaultTaskTitle = "Hello Branch";
            branchStartupParams.Department       = Consts.Departments["RequestorOrg"];
            branchStartupParams.ApplicationRuntimeParameters["Amount"] = 1024;
            branchStartupParams.ResourceID                 = UuidHelper.NewUuidString();
            branchStartupParams.StartupContext             = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            branchStartupParams.RelativeParams["Relative"] = "Hello world";

            branchTransferParams.BranchParams.Add(branchStartupParams);

            transferParams.BranchTransferParams.Add(branchTransferParams);

            return(transferParams);
        }
Esempio n. 20
0
        private static ComplexFormData PrepareComplexFormData()
        {
            ComplexFormData result = new ComplexFormData();

            result.ID      = UuidHelper.NewUuidString();
            result.Subject = string.Format("测试ComplexFormData-{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);

            IUser user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object;

            result.Creator = user;

            result.StringProperty = "Windows A,B,C";

            result.SubDataA.Add(new SubClassDataTypeA()
            {
                ResourceID = result.ID, Class = "SubDataA", SubStringPropertyA = "Data A1", SearchContent = "贾彦军"
            });
            result.SubDataA.Add(new SubClassDataTypeA()
            {
                ResourceID = result.ID, Class = "SubDataA", SubStringPropertyA = "Data A2"
            });

            result.SubDataB.Add(new SubClassDataTypeB()
            {
                ResourceID = result.ID, Class = "SubDataB", SubStringPropertyB = "Data B1", SearchContent = "徐磊"
            });
            result.SubDataB.Add(new SubClassDataTypeB()
            {
                ResourceID = result.ID, Class = "SubDataB", SubStringPropertyB = "Data B2"
            });

            return(result);
        }
Esempio n. 21
0
        private DataTable PrepareTestTable()
        {
            DataTable table = new DataTable();

            table.Columns.Add("ID");
            table.Columns.Add("NAME");
            table.Columns.Add("AMOUNT");
            table.Columns.Add("LOCAL_TIME", typeof(DateTime));
            table.Columns.Add("UTC_TIME", typeof(DateTime));

            DataRow row = table.NewRow();

            row["ID"]   = UuidHelper.NewUuidString();
            row["NAME"] = UuidHelper.NewUuidString();

            row["AMOUNT"] = "849b3d75e892b66e"; //240000

            DateTime now = DateTime.Now;

            row["LOCAL_TIME"] = now;
            row["UTC_TIME"]   = now.ToUniversalTime();

            table.Rows.Add(row);

            return(table);
        }
Esempio n. 22
0
        private static SampleFormData PrepareSampleData()
        {
            SampleFormData result = new SampleFormData();

            result.ID            = UuidHelper.NewUuidString();
            result.Subject       = string.Format("测试FormData-{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
            result.SearchContent = "晏德智";

            IUser user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object;

            result.Creator = user;

            result.StringProperty = "Windows 7,8,9";

            SampleSubFormData sub1 = new SampleSubFormData();

            sub1.SubItemID = 1;
            sub1.Name      = "Sub Data 1";

            result.SubData.Add(sub1);

            SampleSubFormData sub2 = new SampleSubFormData();

            sub2.SubItemID = 2;
            sub2.Name      = "Sub Data 2";

            result.SubData.Add(sub2);

            return(result);
        }
Esempio n. 23
0
        public static void AddEvent(params string[] channelNames)
        {
            AMSEvent eventData = new AMSEvent();

            eventData.ID = UuidHelper.NewUuidString();

            eventData.Name      = string.Format("新建节目在\"{0}\"{1:yyyy-MM-dd HH:mm:ss.fff}", channelNames[0], DateTime.UtcNow);
            eventData.State     = AMSEventState.NotStart;
            eventData.StartTime = DateTime.Now.AddMinutes(5);
            eventData.EndTime   = DateTime.Now.AddMinutes(35);

            eventData.ChannelID = GetChannelByName(channelNames[0]).ID;

            if (channelNames.Length > 1)
            {
                for (int i = 1; i < channelNames.Length; i++)
                {
                    AMSChannel channel = GetChannelByName(channelNames[i]);

                    AMSEventSqlAdapter.Instance.AddChannel(eventData.ID, new string[] { channel.ID });
                }
            }

            AMSEventSqlAdapter.Instance.Update(eventData);
        }
Esempio n. 24
0
        public void WfBranchProcessTransferParamsJsonTest()
        {
            WfConverterHelper.RegisterConverters();

            IUser user = (IUser)OguObjectSettings.GetConfig().Objects[OguObject.requestor.ToString()].Object;

            IWfBranchProcessTemplateDescriptor template = WfProcessTestCommon.CreateTemplate("Consign", user);

            WfBranchProcessTransferParams data = new WfBranchProcessTransferParams(template);

            data.BranchParams.Clear();

            WfBranchProcessStartupParams bpsp = new WfBranchProcessStartupParams(user);

            bpsp.Department           = user.Parent;
            bpsp.RelativeParams["RP"] = UuidHelper.NewUuidString();
            bpsp.ApplicationRuntimeParameters["context"] = UuidHelper.NewUuidString();
            bpsp.ResourceID       = UuidHelper.NewUuidString();
            bpsp.DefaultTaskTitle = UuidHelper.NewUuidString();
            bpsp.StartupContext   = UuidHelper.NewUuidString();

            data.BranchParams.Add(bpsp);

            string serilizedData = JSONSerializerExecute.Serialize(data);

            Console.WriteLine(serilizedData);

            WfBranchProcessTransferParams deserilizedData = JSONSerializerExecute.Deserialize <WfBranchProcessTransferParams>(serilizedData);

            Assert.AreEqual(data.Template.Key, deserilizedData.Template.Key);
            Assert.AreEqual(data.Template.BranchProcessKey, deserilizedData.Template.BranchProcessKey);

            AssertBranchProcessStartupParams(data.BranchParams[0], deserilizedData.BranchParams[0]);
        }
Esempio n. 25
0
        public void UpdateUserDelegationTest()
        {
            //新增或修改
            string             userID     = UuidHelper.NewUuidString();
            string             duserID    = UuidHelper.NewUuidString();
            WfClientDelegation delegation = DelegationHelper.PrepareDelegation();

            delegation.SourceUserID = userID;
            WfClientProcessDescriptorServiceProxy.Instance.UpdateUserDelegation(delegation);//新增加
            int count = WfClientProcessDescriptorServiceProxy.Instance.LoadUserDelegations(delegation.SourceUserID).Count;

            Assert.AreEqual(1, count);

            delegation.DestinationUserID = duserID;                                          //修改被委托人信息
            WfClientProcessDescriptorServiceProxy.Instance.UpdateUserDelegation(delegation); //新增加
            count = WfClientProcessDescriptorServiceProxy.Instance.LoadUserDelegations(delegation.SourceUserID).Count;
            Assert.AreEqual(2, count);

            delegation.StartTime = System.DateTime.Now.Date;
            WfClientProcessDescriptorServiceProxy.Instance.UpdateUserDelegation(delegation);//更新
            count = WfClientProcessDescriptorServiceProxy.Instance.LoadUserDelegations(delegation.SourceUserID).Count;
            Assert.AreEqual(2, count);

            WfClientDelegationCollection list        = WfClientProcessDescriptorServiceProxy.Instance.LoadUserDelegations(delegation.SourceUserID);
            WfClientDelegation           delegation2 = list.Find(w => w.DestinationUserID == duserID);

            //传递过程,客户端扩展的属性会丢失
            delegation.ApplicationName = string.Empty;
            delegation.TenantCode      = string.Empty;
            delegation.ProgramName     = string.Empty;

            delegation.AreSame(delegation2);
        }
Esempio n. 26
0
        private static void ValidateName(string name, string codeName, ValidationResult result, AUSchema schema, SchemaObjectBase targetUnit)
        {
            var actualParent = (SchemaObjectBase)targetUnit ?? schema;

            var adminUnit = new AdminUnit()
            {
                ID         = UuidHelper.NewUuidString(),
                CodeName   = codeName,
                Name       = name,
                AUSchemaID = schema.ID
            };

            var validationObjResult = adminUnit.Validate();

            result.ObjectValidationResult = validationObjResult.ResultCount > 0 ? ToMessage(validationObjResult.First()) : "通过";
            result.Passed &= validationObjResult.ResultCount == 0;

            if (result.Passed)
            {
                SCRelationObject relation = new SCRelationObject(actualParent, adminUnit);
                var existedObj            = AU.Adapters.AUSnapshotAdapter.Instance.LoadAUByChildName(name, actualParent.ID, AUCommon.SchemaAdminUnit, true, DateTime.MinValue);
                result.NameValidationResult = existedObj.Count > 0 ? "此名称已经被占用,请使用其他名称" : "通过";
                result.Passed &= existedObj.Count == 0;
            }
        }
Esempio n. 27
0
        public void Insert()
        {
            UploadFileHistory history = new UploadFileHistory();

            history.Operator         = null;
            history.OriginalFileName = UuidHelper.NewUuidString() + ".txt";

            history.ApplicationName = "App";
            history.ProgramName     = "Prog";
            history.StatusText      = "一切正常";
            history.Status          = UploadFileHistoryStatus.Success;
            history.Operator        = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object;

            using (Stream stream = PrepareFileStream(history.OriginalFileName, history.OriginalFileName))
            {
                UploadFileHistoryAdapter.Instance.Insert(history, stream);
            }

            using (Stream stream = history.GetMaterialContentStream())
            {
                using (StreamReader sr = new StreamReader(history.GetMaterialContentStream()))
                {
                    string content = sr.ReadToEnd();

                    Assert.AreEqual(history.OriginalFileName, content);
                }
            }
        }
Esempio n. 28
0
        private static AU.AdminUnit CreateUnit(AU.AdminUnit fromUnit, string newName, string newCodeName)
        {
            AU.AdminUnit newUnit = new AU.AdminUnit();
            foreach (var item in fromUnit.Properties)
            {
                if (newUnit.Properties.ContainsKey(item.Definition.Name) == false)
                {
                    newUnit.Properties.Add(new SchemaPropertyValue(item.Definition));
                }

                newUnit.Properties.SetValue <string>(item.Definition.Name, item.StringValue);

                var ppt = newUnit.Properties[item.Definition.Name];
                if (ppt == null)
                {
                    throw new AUObjectException(string.Format("管理单元的属性:{0}不匹配", ppt.Definition.Name));
                }
                else
                {
                    ppt.StringValue = item.StringValue;
                }
            }

            newUnit.ID         = UuidHelper.NewUuidString();
            newUnit.AUSchemaID = fromUnit.AUSchemaID;
            newUnit.Name       = newName;
            newUnit.CodeName   = newCodeName;



            return(newUnit);
        }
Esempio n. 29
0
        private static GenericOpinion PrepareServerOpinion()
        {
            GenericOpinion opinion = new GenericOpinion();

            opinion.ID             = UuidHelper.NewUuidString();
            opinion.ResourceID     = UuidHelper.NewUuidString();
            opinion.ActivityID     = UuidHelper.NewUuidString();
            opinion.ProcessID      = UuidHelper.NewUuidString();
            opinion.LevelName      = "TestLevelName";
            opinion.LevelDesp      = "LevelDesp";
            opinion.OpinionType    = "OpinionType";
            opinion.IssueDatetime  = DateTime.Now;
            opinion.AppendDatetime = DateTime.Now;
            opinion.Content        = "Hello world";
            opinion.IssuePerson    = new OguUser(UuidHelper.NewUuidString())
            {
                DisplayName = "Shen Zheng"
            };
            opinion.AppendPerson = new OguUser(UuidHelper.NewUuidString())
            {
                DisplayName = "Shen Rong"
            };
            opinion.RawExtData = "Extra Data";

            return(opinion);
        }
Esempio n. 30
0
        /// <summary>
        /// 创建一个只有开始和结束点的流程描述
        /// </summary>
        /// <returns></returns>
        public static IWfProcessDescriptor CreateInitAndCompletedProcessDescriptor()
        {
            WfProcessDescriptor processDesp = new WfProcessDescriptor();

            processDesp.Key             = "TestProcess" + UuidHelper.NewUuidString().Substring(0, 8);
            processDesp.Name            = "测试流程";
            processDesp.ApplicationName = "TEST_APP_NAME";
            processDesp.ProgramName     = "TEST_PROGRAM_NAME";
            processDesp.Url             = "/MCS_Framework/WebTestProject/defaultHandler.aspx";

            WfActivityDescriptor initAct = new WfActivityDescriptor("Initial", WfActivityType.InitialActivity);

            initAct.Name     = "Initial";
            initAct.CodeName = "Initial Activity";

            processDesp.Activities.Add(initAct);

            WfActivityDescriptor completedAct = new WfActivityDescriptor("Completed", WfActivityType.CompletedActivity);

            completedAct.Name     = "Completed";
            completedAct.CodeName = "Completed Activity";

            completedAct.RelativeLinks.Add(new WfRelativeLinkDescriptor("TestLink")
            {
                Name = "测试链接", Url = "/MCSWebApp/Sample.htm"
            });

            processDesp.Activities.Add(completedAct);

            initAct.ToTransitions.AddForwardTransition(completedAct);

            return(processDesp);
        }