Пример #1
0
        private async void IbnRemoveClass_Click(object sender, RoutedEventArgs e)
        {
            NameCompare nameCompare = (NameCompare)((FrameworkElement)sender).DataContext;

            await AskRemove(viewModel.Settings.AdmittedClasses, nameCompare,
                            $"Do you want to remove admitted class:\n{nameCompare.Name}");
        }
Пример #2
0
        public string GetGroupName(BPMConnection cn, string loginUserAccount)
        {
            string account;
            string name;

            if (NameCompare.EquName(this.Account1, loginUserAccount))
            {
                account = this.Account2;
                name    = this.UserName2;
            }
            else
            {
                account = this.Account1;
                name    = this.UserName1;
            }

            if (cn != null)
            {
                User user = User.TryGetUser(cn, account);
                if (user != null)
                {
                    name = user.ShortName;
                }
            }

            return(name);
        }
Пример #3
0
        public virtual void SaveUserInfo(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    account = YZAuthHelper.LoginUserAccount;

            JArray  @params   = request.GetPostData <JArray>();
            JObject jUserInfo = (JObject)@params[0];
            User    userNew   = jUserInfo.ToObject <User>(request.Serializer);
            Type    userType  = typeof(User);

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                User user = User.FromAccount(cn, account);
                foreach (KeyValuePair <string, JToken> kv in jUserInfo)
                {
                    if (NameCompare.EquName(kv.Key, "Account"))
                    {
                        continue;
                    }

                    System.Reflection.PropertyInfo prop = userType.GetProperty(kv.Key);
                    if (prop != null)
                    {
                        prop.SetValue(user, prop.GetValue(userNew, null), null);
                    }
                }

                User.Update(cn, account, user);
            }
        }
Пример #4
0
        public bool ISBPAFileWritable(IYZDbProvider provider, IDbConnection cn, BPMConnection bpmcn)
        {
            Folder parentFolder = DirectoryManager.GetFolderByID(provider, cn, this.FolderID);
            Folder rootFolder   = DirectoryManager.GetFolderByID(provider, cn, parentFolder.RootID);

            if (NameCompare.EquName(rootFolder.FolderType, "BPALibrary"))
            {
                if (SecurityManager.CheckPermision(bpmcn, parentFolder.RSID, BPMPermision.Write))
                {
                    return(true);
                }
            }

            if (NameCompare.EquName(rootFolder.FolderType, "BPAGroup"))
            {
                if (bpmcn.Token.ContainsSID(WellKnownSID.Administrators))
                {
                    return(true);
                }

                YZSoft.Group.Group  group  = YZSoft.Group.GroupManager.GetGroupFromFolderID(provider, cn, rootFolder.FolderID);
                YZSoft.Group.Member member = YZSoft.Group.GroupManager.TryGetGroupMember(provider, cn, group.GroupID, YZAuthHelper.LoginUserAccount);
                if (member != null)
                {
                    if ((member.GroupPerm & Group.GroupPerm.Edit) == Group.GroupPerm.Edit || (member.GroupPerm & Group.GroupPerm.Auth) == Group.GroupPerm.Auth)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Пример #5
0
        public static OSFileInfoCollection GetFiles(string folderPath, BPMObjectNameCollection excludes)
        {
            DirectoryInfo folder = new DirectoryInfo(folderPath);

            FileInfo[] files = folder.GetFiles("*.*");

            OSFileInfoCollection rv = new OSFileInfoCollection();

            foreach (FileInfo fileInfo in files)
            {
                if ((fileInfo.Attributes & FileAttributes.Directory) == 0 &&
                    (fileInfo.Attributes & FileAttributes.System) == 0 &&
                    (fileInfo.Attributes & FileAttributes.Hidden) == 0)
                {
                    if (NameCompare.Equals(fileInfo.Extension, ".extension"))
                    {
                        continue;
                    }

                    if (excludes.Contains(fileInfo.Extension))
                    {
                        continue;
                    }

                    rv.Add(new OSFileInfo(fileInfo));
                }
            }

            rv.Sort();
            return(rv);
        }
Пример #6
0
    public static BPMTaskListCollection FilterTaskList(BPMTaskListCollection srcTasks, string processName, string keyword)
    {
        if (String.IsNullOrEmpty(processName) &&
            String.IsNullOrEmpty(keyword))
        {
            return(srcTasks);
        }

        BPMTaskListCollection tasks = new BPMTaskListCollection();

        foreach (BPMTaskListItem item in srcTasks)
        {
            if (!String.IsNullOrEmpty(processName))
            {
                if (!NameCompare.EquName(item.ProcessName, processName))
                {
                    continue;
                }
            }

            if (!String.IsNullOrEmpty(keyword))
            {
                if (!String.IsNullOrEmpty(item.SerialNum) && item.SerialNum.Contains(keyword))
                {
                    tasks.Add(item);
                    continue;
                }

                if (!String.IsNullOrEmpty(item.OwnerAccount) && item.OwnerAccount.Contains(keyword))
                {
                    tasks.Add(item);
                    continue;
                }

                if (!String.IsNullOrEmpty(item.Description) && item.Description.Contains(keyword))
                {
                    tasks.Add(item);
                    continue;
                }

                if (!String.IsNullOrEmpty(item.ProcessName) && item.ProcessName.Contains(keyword))
                {
                    tasks.Add(item);
                    continue;
                }

                if (AspxHelper.IsNumber(keyword) && item.TaskID.ToString() == keyword)
                {
                    tasks.Add(item);
                    continue;
                }
            }
            else
            {
                tasks.Add(item);
            }
        }

        return(tasks);
    }
Пример #7
0
        protected virtual void SaveHeadshot(HttpContext context, string headshot, string sign, string account)
        {
            //headshot
            if (!String.IsNullOrEmpty(headshot) && !NameCompare.EquName(headshot, account))
            {
                string tagPath = Path.Combine(this.GetSystemUserDataPath(context), account, "Headshot");
                string srcPath = Path.Combine(this.GetSystemUserDataPath(context), headshot, "Headshot");

                if (Directory.Exists(tagPath))
                {
                    Directory.Delete(tagPath, true);
                }

                Directory.CreateDirectory(Path.Combine(this.GetSystemUserDataPath(context), account));

                if (Directory.Exists(srcPath))
                {
                    Directory.Move(srcPath, tagPath);
                }
            }

            //sign
            if (!String.IsNullOrEmpty(sign) && !NameCompare.EquName(sign, account))
            {
                string tagPath = Path.Combine(this.GetSystemUserDataPath(context), account, "Sign");
                string srcPath = Path.Combine(this.GetSystemUserDataPath(context), sign, "Sign");

                if (Directory.Exists(tagPath))
                {
                    Directory.Delete(tagPath, true);
                }

                Directory.CreateDirectory(Path.Combine(this.GetSystemUserDataPath(context), account));

                if (Directory.Exists(srcPath))
                {
                    Directory.Move(srcPath, tagPath);
                }
            }

            if (!String.IsNullOrEmpty(headshot) && !NameCompare.EquName(headshot, account))
            {
                string srcPath = Path.Combine(this.GetSystemUserDataPath(context), headshot);
                if (Directory.Exists(srcPath))
                {
                    Directory.Delete(srcPath, true);
                }
            }

            if (!String.IsNullOrEmpty(sign) && !NameCompare.EquName(sign, account))
            {
                string srcPath = Path.Combine(this.GetSystemUserDataPath(context), sign);
                if (Directory.Exists(srcPath))
                {
                    Directory.Delete(srcPath, true);
                }
            }
        }
        public void DrawEnumList()
        {
            var typeNameCompare        = new NameCompare(CompareItemTypeName);
            var typeDescriptionCompare = new DescriptionCompare(CompareItemTypeDescription);
            var attrNameCompare        = new NameCompare(CompareItemAttbiuteName);
            var attrDescriptionCompare = new DescriptionCompare(CompareItemAttributeDescription);

            DrawList(serializedObject.FindProperty("itemTypeEnumValues"), serializedObject.FindProperty("itemTypeEnumFormats"), typeNameCompare, typeDescriptionCompare);
            DrawList(serializedObject.FindProperty("itemAttributesEnumValues"), serializedObject.FindProperty("itemAttributesEnumFormats"), attrNameCompare, attrDescriptionCompare);
        }
Пример #9
0
 public string GetPeerAccount(string loginUserAccount)
 {
     if (NameCompare.EquName(this.Account1, loginUserAccount))
     {
         return(this.Account2);
     }
     else
     {
         return(this.Account1);
     }
 }
Пример #10
0
    public void Applay(JsonItem itm, string ignoreAttr)
    {
        foreach (string attr in itm.Attributes.Keys)
        {
            if (NameCompare.EquName(attr, ignoreAttr))
            {
                continue;
            }

            this.Attributes[attr] = itm.Attributes[attr];
        }
    }
Пример #11
0
        protected override void AuthCheck(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    method  = request.GetString("method");

            if (NameCompare.EquName(method, "GetString"))
            {
                return;
            }

            YZAuthHelper.AshxAuthCheck();
        }
Пример #12
0
    public void ApproveCheck(HttpContext context)
    {
        if (!this.Simulate)
        {
            YZRequest request = new YZRequest(context);
            string    openuid = request.GetString("uid", null);

            if (!String.IsNullOrEmpty(openuid) && !NameCompare.EquName(openuid, YZAuthHelper.LoginUserAccount))
            {
                throw new Exception(Resources.YZStrings.Aspx_LoginUser_Changed);
            }
        }
    }
Пример #13
0
    public void Applay(string compareAttr, JsonItem newitem)
    {
        string key = Convert.ToString(newitem.Attributes[compareAttr]);

        foreach (JsonItem item in this)
        {
            string itmkey = Convert.ToString(item.Attributes[compareAttr]);
            if (NameCompare.EquName(key, itmkey))
            {
                item.Applay(newitem, compareAttr);
            }
        }
    }
Пример #14
0
        public virtual JObject GetTestingTemplates(HttpContext context)
        {
            string    loginAccount = YZAuthHelper.LoginUserAccount;
            YZRequest request      = new YZRequest(context);
            string    processName  = request.GetString("ProcessName", null);

            IYZDbProvider provider = YZDbProviderManager.DefaultProvider;

            //System.Threading.Thread.Sleep(2000);
            //获得数据
            BPMDraftCollection drafts = new BPMDraftCollection();
            int     rowcount          = 0;
            JObject rv = new JObject();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                if (!String.IsNullOrEmpty(processName))
                {
                    drafts = cn.GetTestingTemplates(processName, null, null, request.GetSortString("CreateDate DESC"), 0, Int32.MaxValue, out rowcount);
                }

                //将数据转化为Json集合
                rv[YZJsonProperty.total] = rowcount;

                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (BPMDraft draft in drafts)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    item["DraftID"]      = draft.DraftGuid.ToString();
                    item["ProcessName"]  = draft.ProcessName;
                    item["CreateDate"]   = draft.CreateDate;
                    item["ModifyDate"]   = draft.ModifyDate;
                    item["Account"]      = draft.Account;
                    item["OwnerAccount"] = draft.OwnerAccount;
                    item["Comments"]     = draft.Comments;
                    item["Description"]  = draft.Description;
                    if (!NameCompare.EquName(draft.OwnerAccount, loginAccount))
                    {
                        item["Owner"] = PositionManager.MemberFullNameFromID(cn, draft.OwnerPositionID);
                    }
                }
            }

            return(rv);
        }
Пример #15
0
        public FootmarkCollection SubSet(string account)
        {
            FootmarkCollection rv = new FootmarkCollection();

            foreach (Footmark footmark in this)
            {
                if (NameCompare.EquName(footmark.Account, account))
                {
                    rv.Add(footmark);
                }
            }

            return(rv);
        }
Пример #16
0
        protected override void AuthCheck(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    method  = request.GetString("method");

            if (NameCompare.EquName(method, "Login") ||
                NameCompare.EquName(method, "LoginTrial") ||
                NameCompare.EquName(method, "SendLoginValidationCode") ||
                NameCompare.EquName(method, "GetPublicKey") ||
                NameCompare.EquName(method, "DingTalkLogin"))
            {
                return;
            }

            YZAuthHelper.AshxAuthCheck();
        }
Пример #17
0
        public virtual JObject GetDrafts(HttpContext context)
        {
            YZRequest    request      = new YZRequest(context);
            string       loginAccount = YZAuthHelper.LoginUserAccount;
            GridPageInfo gridPageInfo = new GridPageInfo(context);

            //System.Threading.Thread.Sleep(2000);
            //获得数据
            BPMDraftCollection drafts = new BPMDraftCollection();
            int     rowcount;
            JObject rv = new JObject();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                drafts = cn.GetMyDrafts(DraftType.Draft, null, request.GetSortString("CreateDate DESC"), gridPageInfo.Start, gridPageInfo.Limit, out rowcount);

                //将数据转化为Json集合
                rv[YZJsonProperty.total] = rowcount;

                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (BPMDraft draft in drafts)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    item["DraftID"]      = draft.DraftGuid.ToString();
                    item["ProcessName"]  = draft.ProcessName;
                    item["CreateDate"]   = draft.CreateDate;
                    item["ModifyDate"]   = draft.ModifyDate;
                    item["Account"]      = draft.Account;
                    item["OwnerAccount"] = draft.OwnerAccount;
                    item["Comments"]     = draft.Comments;
                    item["Description"]  = draft.Description;
                    if (!NameCompare.EquName(draft.OwnerAccount, loginAccount))
                    {
                        item["Owner"] = PositionManager.MemberFullNameFromID(cn, draft.OwnerPositionID);
                    }
                }
            }

            //输出数据
            return(rv);
        }
Пример #18
0
        private void EventsView_AddAdmittedClick(object sender, Event e)
        {
            foreach (NameCompare admittedClass in viewModel.Settings.AdmittedClasses)
            {
                if (Utils.Compare(admittedClass.CompareType,
                                  e.Name, admittedClass.Name))
                {
                    return;
                }
            }

            NameCompare newAdmittedClass = new NameCompare()
            {
                CompareType = CompareType.StartsWith,
                Name        = e.Name,
            };

            viewModel.Settings.AdmittedClasses.Add(newAdmittedClass);
        }
Пример #19
0
        public virtual object GetSocialMessages(HttpContext context)
        {
            YZRequest      request = new YZRequest(context);
            YZResourceType resType = request.GetEnum <YZResourceType>("resType");
            string         resId   = request.GetString("resId");
            string         dir     = request.GetString("dir");
            int            msgId   = request.GetInt32("msgId", -1);
            int            rows    = request.GetInt32("rows", 20);

            YZMessageCollection messages;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    if (NameCompare.EquName(dir, "prev"))
                    {
                        messages = SocialManager.GetSocialMessagesPrev(provider, cn, resType, resId, msgId, rows);
                    }
                    else
                    {
                        messages = SocialManager.GetSocialMessagesNext(provider, cn, resType, resId, msgId, rows);
                    }
                }
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (YZMessage message in messages)
                {
                    this.PostProcessMessage(cn, message);
                }
            }

            return(messages);
        }
Пример #20
0
        public virtual void SMSValidation(HttpContext context)
        {
            YZRequest request          = new YZRequest(context);
            string    validateItemGUID = request.GetString("validateItemGUID");
            string    validateCode     = request.GetString("validateCode");
            string    action           = request.GetString("action", null);
            string    uid = YZAuthHelper.LoginUserAccount;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    SMS sms = SMSManager.TryGetSMS(provider, cn, validateItemGUID);

                    if (sms == null)
                    {
                        throw new Exception(Resources.YZMobile.Aspx_Auth_GetValidationCodeAgain);
                    }

                    if (sms.ValidationCode != validateCode)
                    {
                        throw new Exception(Resources.YZMobile.Aspx_Auth_IncorrectValidationCode);
                    }

                    if (sms.ExpireDate < DateTime.Now)
                    {
                        throw new Exception(Resources.YZMobile.Aspx_Auth_GetValidationCodeAgain);
                    }

                    SMSManager.DeleteSMS(provider, cn, validateItemGUID);
                }
            }

            if (NameCompare.EquName(action, "bindandprotect"))
            {
                string iddcode     = request.GetString("iddcode");
                string phoneNumber = request.GetString("phoneNumber");

                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();

                    User.SetAppLoginProtect(cn, uid, true);
                    User.BindPhone(cn, uid, iddcode, phoneNumber);

                    User user = User.TryGetUser(cn, uid);
                    if (user != null)
                    {
                        if ((user.Permision & BPMObjectPermision.Edit) == BPMObjectPermision.Edit)
                        {
                            user.Mobile = phoneNumber;
                            User.Update(cn, uid, user);
                        }
                    }
                }
            }

            if (NameCompare.EquName(action, "changebind"))
            {
                string iddcode     = request.GetString("iddcode");
                string phoneNumber = request.GetString("phoneNumber");

                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();

                    User.BindPhone(cn, uid, iddcode, phoneNumber);

                    User user = User.TryGetUser(cn, uid);
                    if (user != null)
                    {
                        if ((user.Permision & BPMObjectPermision.Edit) == BPMObjectPermision.Edit)
                        {
                            user.Mobile = phoneNumber;
                            User.Update(cn, uid, user);
                        }
                    }
                }
            }
        }
Пример #21
0
    public static string GetSelActionDisplayString(BPMProcStep step)
    {
        if (!step.Finished)
        {
            return(Resources.BPMResource.Com_Processing);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.Abort))
        {
            return(Resources.BPMResource.Com_SysAct_Abort);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.RecedeBack))
        {
            return(Resources.BPMResource.Com_SysAct_RecedeBack);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.AssignOwner))
        {
            return(Resources.BPMResource.Com_SysAct_AssignOwner);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.Continue))
        {
            return(Resources.BPMResource.Com_SysAct_Continue);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.Delete))
        {
            return(Resources.BPMResource.Com_SysAct_Delete);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.Jump))
        {
            return(Resources.BPMResource.Com_SysAct_Jump + "(" + step.Memo + ")");
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.TimeoutJump))
        {
            return(Resources.BPMResource.Com_SysAct_TimeoutJump + "(" + step.Memo + ")");
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.PickBackRestart))
        {
            return(Resources.BPMResource.Com_SysAct_PickBackRestart);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.RecedeRestart))
        {
            return(Resources.BPMResource.Com_SysAct_RecedeRestart);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.Reject))
        {
            return(Resources.BPMResource.Com_SysAct_Reject);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.Transfer))
        {
            return(Resources.BPMResource.Com_SysAct_Agent);
        }

        if (NameCompare.EquName(step.SelAction, SystemAction.DirectSend))
        {
            return(Resources.BPMResource.Com_SysAct_DirectSend);
        }

        if (step.AutoProcess)
        {
            return(step.SelAction + "(" + Resources.BPMResource.Com_Auto + ")");
        }
        else if (step.BatchApprove)
        {
            return(step.SelAction + "(" + Resources.BPMResource.Com_BatchApprove + ")");
        }
        else
        {
            return(step.SelAction);
        }
    }
Пример #22
0
        public virtual JObject GetProcessInfo(HttpContext context)
        {
            YZRequest request    = new YZRequest(context);
            int       stepid     = request.GetInt32("pid");
            string    permisions = request.GetString("Permisions", null);

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                BPMProcStep step        = BPMProcStep.Load(cn, stepid);
                BPMTask     task        = BPMTask.Load(cn, step.TaskID);
                ProcessInfo processInfo = BPMProcess.GetProcessInfo(cn, stepid);

                //检查处理权
                if (!step.Share || !String.IsNullOrEmpty(step.OwnerAccount)) //常规任务及已获取的共享任务
                {
                    if (!NameCompare.EquName(step.OwnerAccount, cn.UID) &&
                        !NameCompare.EquName(step.AgentAccount, cn.UID))
                    {
                        throw new BPMException(BPMExceptionType.ProcessErrPermDenied);
                    }
                }

                //获得ProcessSubModel
                ProcessSubModel subModel;
                if (step.Share && String.IsNullOrEmpty(step.OwnerAccount))
                {
                    subModel = ProcessSubModel.Share;
                }
                else
                {
                    if (processInfo.StepProcessPermision == StepProcessPermision.Inform)
                    {
                        subModel = ProcessSubModel.Inform;
                    }
                    else if (processInfo.StepProcessPermision == StepProcessPermision.Indicate)
                    {
                        subModel = ProcessSubModel.Indicate;
                    }
                    else
                    {
                        subModel = ProcessSubModel.Process;
                    }
                }

                //ProcessSubModel.Process - 则获得任务操作权限
                JObject perm = null;
                if (subModel == ProcessSubModel.Process ||
                    subModel == ProcessSubModel.Inform ||
                    subModel == ProcessSubModel.Indicate)
                {
                    perm = this.CheckPermision(cn, step.TaskID, stepid, permisions);
                }
                else
                {
                    perm = new JObject();
                }

                if (String.IsNullOrEmpty(processInfo.FormFile))
                {
                    throw new Exception(String.Format(Resources.YZStrings.Aspx_Process_MissForm, step.NodeName));
                }

                JObject rv = new JObject();
                rv[YZJsonProperty.success] = true;
                rv["uid"]      = cn.UID;
                rv["subModel"] = subModel.ToString();

                rv["sn"]             = task.SerialNum;
                rv["taskid"]         = task.TaskID;
                rv["urlParams"]      = task.UrlParams;
                rv["url"]            = YZUtility.GetFormRedirectUrl(processInfo.FormFile).ToString();
                rv["NodePermisions"] = this.Serialize(processInfo.NodePermision);
                rv["Comments"]       = step.Comments;
                rv["perm"]           = perm;

                if (subModel == ProcessSubModel.Process)
                {
                    rv["shareTask"] = step.Share;
                    rv["IsConsign"] = step.IsConsignStep;

                    JArray links = new JArray();
                    rv["links"] = links;
                    foreach (Link link in processInfo.Links)
                    {
                        links.Add(this.Serialize(link, "normal"));
                    }

                    rv["directsend"] = this.GetDirectSendInfo(cn, step, processInfo.SystemLinks);

                    //自由流
                    if (!step.IsConsignStep) //加签不显示自由流
                    {
                        rv["ParticipantDeclares"] = JArray.FromObject(processInfo.ParticipantDeclares);
                        rv["Routing"]             = processInfo.Routing;
                    }
                }

                return(rv);
            }
        }
Пример #23
0
        protected virtual Folder CreateLibFolder(IYZDbProvider provider, IDbConnection cn, string name, string folderType)
        {
            string uid = YZAuthHelper.LoginUserAccount;

            Folder folder = new Folder();

            folder.FolderType = folderType;
            folder.ParentID   = -1;
            folder.Name       = name;
            folder.Desc       = "";
            folder.Owner      = uid;
            folder.CreateAt   = DateTime.Now;
            folder.OrderIndex = 1;

            DirectoryManager.Insert(provider, cn, folder);
            folder.RootID = folder.FolderID;
            DirectoryManager.Update(provider, cn, folder);

            if (NameCompare.EquName(folderType, "BPALibrary"))
            {
                Folder childFolder = new Folder();

                childFolder.ParentID = folder.FolderID;
                childFolder.RootID   = folder.RootID;
                childFolder.Owner    = uid;
                childFolder.CreateAt = DateTime.Now;
                folder.Desc          = "";

                childFolder.FolderType = "BPAProcess";
                childFolder.Name       = "流程";
                childFolder.OrderIndex = 1;
                DirectoryManager.Insert(provider, cn, childFolder);

                childFolder.FolderType = "BPAOU";
                childFolder.Name       = "组织";
                childFolder.OrderIndex = 2;
                DirectoryManager.Insert(provider, cn, childFolder);

                childFolder.FolderType = "BPAProduct";
                childFolder.Name       = "产品";
                childFolder.OrderIndex = 3;
                DirectoryManager.Insert(provider, cn, childFolder);

                childFolder.FolderType = "BPAData";
                childFolder.Name       = "数据";
                childFolder.OrderIndex = 4;
                DirectoryManager.Insert(provider, cn, childFolder);

                childFolder.FolderType = "BPAITSystem";
                childFolder.Name       = "IT系统";
                childFolder.OrderIndex = 5;
                DirectoryManager.Insert(provider, cn, childFolder);

                childFolder.FolderType = "BPAControl";
                childFolder.Name       = "控制";
                childFolder.OrderIndex = 6;
                DirectoryManager.Insert(provider, cn, childFolder);
            }

            return(folder);
        }
Пример #24
0
        public virtual object GetFolderObjects(HttpContext context)
        {
            YZRequest     request        = new YZRequest(context);
            int           parentFolderID = request.GetInt32("folderid");
            bool          checkpermision = request.GetBool("checkpermision", false);
            SecurityModel securitymodel  = request.GetEnum <SecurityModel>("securitymodel", SecurityModel.RBAC);
            string        ext            = request.GetString("ext", null);
            bool          withfolder     = request.GetBool("folder");
            bool          withfile       = request.GetBool("file");
            bool          userName       = request.GetBool("username", false);

            Folder        folder = new Folder();
            List <object> rv     = new List <object>();

            bool haspermision = true;

            using (BPMConnection bpmcn = new BPMConnection())
            {
                if (checkpermision && securitymodel == SecurityModel.RBAC)
                {
                    bpmcn.WebOpen();
                    haspermision = SecurityManager.CheckPermision(bpmcn, Folder.GetRSID(parentFolderID), BPMPermision.Read);
                }
            }

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    folder             = DirectoryManager.GetFolderByID(provider, cn, parentFolderID);
                    folder["children"] = rv;

                    if (haspermision)
                    {
                        if (withfile)
                        {
                            FileCollection files = DirectoryManager.GetFiles(provider, cn, parentFolderID, null, null, -1);
                            foreach (File file in files)
                            {
                                AttachmentInfo attachmentInfo = AttachmentManager.TryGetAttachmentInfo(provider, cn, file.FileID);
                                if (attachmentInfo == null)
                                {
                                    continue;
                                }

                                if (!String.IsNullOrEmpty(ext) && !NameCompare.EquName(attachmentInfo.Ext, ext))
                                {
                                    continue;
                                }

                                JObject jFile = JObject.FromObject(file);
                                rv.Add(jFile);

                                jFile["Name"]         = attachmentInfo.Name;
                                jFile["Size"]         = attachmentInfo.Size;
                                jFile["LastUpdate"]   = attachmentInfo.LastUpdate;
                                jFile["OwnerAccount"] = attachmentInfo.OwnerAccount;
                            }
                        }

                        if (withfolder)
                        {
                            rv.AddRange(DirectoryManager.GetFolders(provider, cn, parentFolderID, null, null));
                        }
                    }
                }
            }

            if (userName)
            {
                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();

                    foreach (object item in rv)
                    {
                        JObject jFile = item as JObject;
                        if (jFile != null)
                        {
                            User user = User.TryGetUser(cn, (string)jFile["OwnerAccount"]);
                            jFile["OwnerDisplayName"] = user != null ? user.ShortName : jFile["OwnerAccount"];
                        }
                    }
                }
            }

            return(folder);
        }
Пример #25
0
        private void IbnRemoveGroup_Click(object sender, RoutedEventArgs e)
        {
            NameCompare nameCompare = (NameCompare)((FrameworkElement)sender).DataContext;

            viewModel.EventGroup.Collection.Remove(nameCompare);
        }
Пример #26
0
        public virtual JObject GetReportData(HttpContext context)
        {
            YZRequest request    = new YZRequest(context);
            string    path       = request.GetString("path");
            string    viewName   = request.GetString("viewName", null);
            string    outputType = request.GetString("outputType", "");
            YZClientParamCollection runtimeParams = JArray.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(request.GetString("params", YZJsonHelper.Base64EmptyJArray)))).ToObject <YZClientParamCollection>();

            //获得数据
            Report     report;
            ReportView view;
            DataTable  dataTable;
            int        rowcount;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                //获得报表定义
                report = Report.Open(cn, path);
                if (String.IsNullOrEmpty(viewName))
                {
                    view = report.DefaultView;
                }
                else
                {
                    view = report.Views.TryGetItem(viewName);
                }

                string srcdata = request.GetString("srcdata", null);
                if (String.IsNullOrEmpty(srcdata))
                {
                    BPMDBParameterCollection selectParameters = report.QueryParameters.CreateNullDBParameters();

                    //应用查询条件
                    foreach (BPMDBParameter selectParam in selectParameters)
                    {
                        YZClientParam clientParam = runtimeParams.TryGetItem(selectParam.Name);
                        if (clientParam != null && clientParam.value != null)
                        {
                            selectParam.Value = clientParam.value;
                        }
                    }

                    cn.RequestParams["sortstring"] = request.GetSortString("");
                    cn.UpdateRequestParams();

                    //获得数据
                    FlowDataTable ftable = new FlowDataTable();
                    ftable.Load(cn, BPMCommandType.Report, path, selectParameters, report.ClientCursor, request.Start, request.Limit, out rowcount);
                    dataTable = ftable.ToDataTable();
                }
                else
                {
                    dataTable = JArray.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(srcdata))).ToObject <DataTable>();
                    rowcount  = request.GetInt32("total");
                }
            }

            //将数据转化为Json集合
            JObject rv = new JObject();

            rv[YZJsonProperty.total] = rowcount;
            rv["srcdata"]            = Convert.ToBase64String(Encoding.UTF8.GetBytes(JArray.FromObject(dataTable).ToString(Formatting.None, YZJsonHelper.Converters)));

            JArray children = new JArray();

            rv.Add("children", children);

            //不管是什么view都要给数据
            foreach (DataRow row in dataTable.Rows)
            {
                JObject item = new JObject();
                children.Add(item);

                foreach (DataColumn column in dataTable.Columns)
                {
                    object value = row[column.ColumnName];
                    item[column.ColumnName] = JToken.FromObject(value);

                    if (NameCompare.EquName(column.ColumnName, "TaskID") && (value is int))
                    {
                        item["Token"] = YZSecurityHelper.GenTaskAccessToken((int)value);
                    }

                    //为任务链接生成Token
                    ReportColumnInfo colInfo = report.ReportColumnInfos.TryGetItem(column.ColumnName);
                    if (colInfo != null && colInfo.LinkType == ReportLinkType.Task)
                    {
                        ParameterFill paramFill = colInfo.ParametersFill.TryGetItem("@TaskID");
                        if (paramFill != null)
                        {
                            int linktoTaskID;
                            if (Int32.TryParse(Convert.ToString(row[paramFill.FillWith]), out linktoTaskID))
                            {
                                item[column.ColumnName + "Token"] = YZSecurityHelper.GenTaskAccessToken((int)linktoTaskID);
                            }
                        }
                    }
                }
            }

            if (String.Compare(outputType, "Export", true) != 0)
            {
                if (view is ReportMSChartView)
                {
                    this.ApplyMSChartData(request, rv, view as ReportMSChartView, dataTable);
                }

                if (view is ReportExcelView)
                {
                    this.ApplyExcelData(request, rv, view as ReportExcelView, dataTable, runtimeParams);
                }
            }

            return(rv);
        }
        void DrawList(SerializedProperty nameList, SerializedProperty nameFormatList, NameCompare compareName, DescriptionCompare compareDescription)
        {
            GUILayout.BeginVertical("box");
            {
                GUILayout.Box(nameList.displayName, GUILayout.ExpandWidth(true));
                GUILayout.BeginHorizontal();
                {
                    GUILayout.BeginVertical(GUILayout.ExpandWidth(true));
                    {
                        GUI.color = Color.white;
                        GUILayout.Box("Name", GUILayout.ExpandWidth(true));
                        for (int i = 0; i < nameList.arraySize; i++)
                        {
                            SerializedProperty name = nameList.GetArrayElementAtIndex(i);
                            GUI.color = compareName(name.stringValue)? Color.grey: Color.white;
                            EditorGUILayout.PropertyField(name, GUIContent.none, GUILayout.ExpandWidth(true), GUILayout.Height(EditorGUIUtility.singleLineHeight));
                            InsertPlaceHolder(name.stringValue, new GUIContent("...Enum Name"));
                        }
                    }
                    GUILayout.EndVertical();

                    GUILayout.BeginVertical(GUILayout.ExpandWidth(true));
                    {
                        if (nameList.arraySize != nameFormatList.arraySize)
                        {
                            nameFormatList.arraySize = nameList.arraySize;
                        }
                        GUI.color = Color.white;
                        GUILayout.Box("Format", GUILayout.ExpandWidth(true));
                        for (int i = 0; i < nameFormatList.arraySize; i++)
                        {
                            SerializedProperty format = nameFormatList.GetArrayElementAtIndex(i);
                            string             name   = nameList.GetArrayElementAtIndex(i).stringValue;
                            GUI.color = compareDescription(name, format.stringValue) ? Color.grey : Color.white;
                            EditorGUILayout.PropertyField(format, GUIContent.none, GUILayout.ExpandWidth(true), GUILayout.Height(EditorGUIUtility.singleLineHeight));
                            InsertPlaceHolder(format.stringValue, new GUIContent("... Rich Text Format"));
                            GUI.color = Color.white;
                        }
                    }
                    GUILayout.EndVertical();

                    GUILayout.BeginVertical(GUILayout.Width(20));
                    {
                        if (GUILayout.Button("+", "box", GUILayout.Width(20)))
                        {
                            Undo.RecordObject(serializedObject.targetObject, "ChangeArraySize");
                            nameList.arraySize++;
                            nameFormatList.arraySize++;
                        }
                        for (int i = 0; i < nameList.arraySize; i++)
                        {
                            if (GUILayout.Button("x", EditorStyles.miniButton, GUILayout.Width(20), GUILayout.Height(EditorGUIUtility.singleLineHeight)))
                            {
                                Undo.RecordObject(serializedObject.targetObject, "RemoveElement");
                                nameList.DeleteArrayElementAtIndex(i);
                                nameFormatList.DeleteArrayElementAtIndex(i);
                                i--;
                            }
                        }
                    }
                    GUILayout.EndVertical();
                }
                GUILayout.EndHorizontal();
            }
            GUILayout.EndVertical();
        }
Пример #28
0
        public virtual object RelationshipAppGetNonUsedBy(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    fileid  = request.GetString("fileid");
            BPMObjectNameCollection  spriteids   = JArray.Parse(request.GetString("spriteids")).ToObject <BPMObjectNameCollection>();
            BPMObjectNameCollection  tagfiletype = JArray.Parse(request.GetString("tagfiletype")).ToObject <BPMObjectNameCollection>();
            SpriteIdentityCollection rv          = new SpriteIdentityCollection();

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    File file = File.Load(provider, cn, fileid);
                    SpriteLinkCollection links = BPAManager.GetFileUsedByLinks(provider, cn, fileid, null);

                    foreach (Sprite sprite in file.Sprites.SortByOrder())
                    {
                        if (spriteids.Count != 0 && !spriteids.Contains(sprite.Id))
                        {
                            continue;
                        }

                        if (tagfiletype.Count == 0)
                        {
                            bool find = false;
                            foreach (SpriteLink link in links)
                            {
                                if (NameCompare.EquName(link.LinkedSpriteID, sprite.Id))
                                {
                                    find = true;
                                    break;
                                }
                            }

                            if (find)
                            {
                                continue;
                            }
                        }
                        else
                        {
                            bool find = false;
                            foreach (SpriteLink link in links)
                            {
                                bool attachmentInfoSetted = link["attachmentInfoSetted"] == null ? false:Convert.ToBoolean(link["attachmentInfoSetted"]);

                                AttachmentInfo srcAttachment;
                                if (attachmentInfoSetted)
                                {
                                    srcAttachment = link["attachmentInfo"] as AttachmentInfo;
                                }
                                else
                                {
                                    srcAttachment                = AttachmentManager.TryGetAttachmentInfo(provider, cn, link.FileID);
                                    link["attachmentInfo"]       = srcAttachment;
                                    link["attachmentInfoSetted"] = true;
                                }

                                if (tagfiletype != null && tagfiletype.Contains(srcAttachment.Ext))
                                {
                                    find = true;
                                    break;
                                }
                            }

                            if (find)
                            {
                                continue;
                            }
                        }

                        rv.Add(new SpriteIdentity(sprite));
                    }

                    return(rv);
                }
            }
        }