Beispiel #1
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);
        }
Beispiel #2
0
        public virtual object GetExpenseTypes(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    using (IDbCommand cmd = cn.CreateCommand())
                    {
                        cmd.CommandText = "SELECT * FROM YZMDExpenseType";

                        using (YZReader reader = new YZReader(cmd.ExecuteReader()))
                        {
                            DataTable table = reader.LoadTable();

                            PageResult.RegularColumnsName(table, new string[] {
                                "Code",
                                "Text",
                                "NameSpace",
                                "Image"
                            });

                            return(table);
                        }
                    }
                }
            }
        }
Beispiel #3
0
        public virtual object UpdateAttachment(HttpContext context)
        {
            YZRequest request           = new YZRequest(context);
            int       id                = request.GetInt32("id");
            string    fileid            = request.GetString("fileid");
            string    replacewithfileid = request.GetString("replacewithfileid");

            File           file;
            AttachmentInfo attachmentInfo;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    file           = DirectoryManager.GetFileByID(provider, cn, id);
                    attachmentInfo = AttachmentManager.UpdateAttachment(provider, cn, fileid, replacewithfileid);
                }
            }

            using (BPMConnection bpmcn = new BPMConnection())
            {
                bpmcn.WebOpen();
                return(this.Serialize(bpmcn, file, attachmentInfo));
            }
        }
Beispiel #4
0
        public virtual List <int> GetFolderPath(HttpContext context)
        {
            YZRequest  request  = new YZRequest(context);
            int        folderid = request.GetInt32("folderid");
            List <int> path     = new List <int>();

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    while (true)
                    {
                        Folder folder = DirectoryManager.GetFolderByID(provider, cn, folderid);
                        path.Insert(0, folder.FolderID);

                        folderid = folder.ParentID;

                        if (folderid == -1)
                        {
                            return(path);
                        }
                    }
                }
            }
        }
Beispiel #5
0
        public virtual object GetFolderDocuments(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            int       folderid = request.GetInt32("folderid");
            int       top      = request.GetInt32("top", -1);
            string    order    = request.GetString("order", null);

            using (BPMConnection bpmcn = new BPMConnection())
            {
                bpmcn.WebOpen();
                using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
                {
                    using (IDbConnection cn = provider.OpenConnection())
                    {
                        List <object>  rv    = new List <object>();
                        FileCollection files = DirectoryManager.GetFiles(provider, cn, folderid, null, order, top);
                        foreach (File file in files)
                        {
                            AttachmentInfo attachmentInfo = AttachmentManager.TryGetAttachmentInfo(provider, cn, file.FileID);
                            if (attachmentInfo == null)
                            {
                                continue;
                            }

                            rv.Add(this.Serialize(bpmcn, file, attachmentInfo));
                        }

                        return(rv);
                    }
                }
            }
        }
Beispiel #6
0
        public virtual object AddAttachmentToFolder(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            int       folderid = request.GetInt32("folderid");
            string    fileid   = request.GetString("fileid");
            string    flag     = request.GetString("flag", null);

            AttachmentInfo attachmentInfo;
            File           file = new File();

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    attachmentInfo = AttachmentManager.GetAttachmentInfo(provider, cn, fileid);

                    file.FolderID   = folderid;
                    file.FileID     = fileid;
                    file.AddBy      = YZAuthHelper.LoginUserAccount;
                    file.AddAt      = DateTime.Now;
                    file.Flag       = flag;
                    file.OrderIndex = DirectoryManager.GetFileNextOrderIndex(provider, cn, folderid);

                    DirectoryManager.Insert(provider, cn, file);
                }
            }

            using (BPMConnection bpmcn = new BPMConnection())
            {
                bpmcn.WebOpen();
                return(this.Serialize(bpmcn, file, attachmentInfo));
            }
        }
Beispiel #7
0
        public virtual JArray GetUserActivities(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    uid     = request.GetString("uid");

            JArray rv = new JArray();

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    UserPositionCollection userpositions = BPAManager.GetUserPositions(provider, cn, uid);
                    SpriteCollection       posSprites    = userpositions.GetSprites(provider, cn);
                    SpriteCollection       usedbySprites = posSprites.GetUsedBySprites(provider, cn, null);
                    usedbySprites.Sort();

                    foreach (Sprite usedbySprite in usedbySprites)
                    {
                        JObject jItem = new JObject();
                        rv.Add(jItem);

                        jItem["FileID"]     = usedbySprite.File.FileID;
                        jItem["FileName"]   = usedbySprite.File.FileName;
                        jItem["SpriteID"]   = usedbySprite.Id;
                        jItem["SpriteName"] = usedbySprite.Name;
                        jItem["Desc"]       = usedbySprite.Property.Description;
                        jItem["Remark"]     = usedbySprite.Property.Remark;
                        jItem["RACI"]       = String.Join("/", this.GetRACIFlags(usedbySprite, posSprites));
                    }
                }

                return(rv);
            }
        }
Beispiel #8
0
        public virtual JObject GetFolders(HttpContext context)
        {
            YZRequest     request        = new YZRequest(context);
            int           folderid       = request.GetInt32("node");
            bool          checkpermision = request.GetBool("checkpermision", false);
            SecurityModel securitymodel  = request.GetEnum <SecurityModel>("securitymodel", SecurityModel.RBAC);
            bool          withfolder     = request.GetBool("folder", true);
            bool          withfile       = request.GetBool("file", false);
            bool          iconFromExt    = request.GetBool("iconFromExt", false);
            bool          expand         = request.GetBool("expand", false);

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    using (BPMConnection bpmcn = new BPMConnection())
                    {
                        if (checkpermision && securitymodel == SecurityModel.RBAC)
                        {
                            bpmcn.WebOpen();
                        }

                        JObject rv = new JObject();

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

                        this.ExpandTree(provider, cn, bpmcn, items, folderid, withfolder, withfile, expand, iconFromExt, checkpermision, securitymodel, true);

                        rv[YZJsonProperty.success] = true;
                        return(rv);
                    }
                }
            }
        }
Beispiel #9
0
        public virtual object GetPersonalOverviewInfo(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    uid     = request.GetString("uid");

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    UserPositionCollection positions = BPAManager.GetUserPositions(provider, cn, uid);
                    SpriteCollection       sprites   = positions.GetSprites(provider, cn);
                    FileCollection         files     = sprites.GetUsedBySprites(provider, cn, null).Files;

                    return(new
                    {
                        positions = sprites.Identities,
                        files = files.Identities,
                        Responsible = sprites.GetUsedBySprites(provider, cn, "Responsible").Identities,
                        Accountable = sprites.GetUsedBySprites(provider, cn, "Accountable").Identities,
                        Consulted = sprites.GetUsedBySprites(provider, cn, "Consulted").Identities,
                        Informed = sprites.GetUsedBySprites(provider, cn, "Informed").Identities
                    });
                }
            }
        }
Beispiel #10
0
        public virtual object GetSpriteOverviewInfo(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            string    fileid   = request.GetString("fileid");
            string    spriteid = request.GetString("spriteid");

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    File file = File.Load(provider, cn, fileid);

                    Sprite sprite = file.Sprites[spriteid];
                    sprite.AllReferences.RefreshName(provider, cn);

                    SpriteCollection usedby = sprite.GetUsedBySprites(provider, cn);

                    YZSoft.FileSystem.FileCollection docs = new FileSystem.FileCollection();
                    if (sprite.FolderID != 0)
                    {
                        docs = FileSystem.DirectoryManager.GetFiles(provider, cn, sprite.FolderID, null, "ID DESC", -1);
                        docs = docs.PerformAttachmentInfo(provider, cn, null);
                    }

                    return(new
                    {
                        sprite = sprite,
                        usedby = usedby.Identities,
                        usedbyFiles = usedby.Files.Identities,
                        parentFile = new FileIdentity(file),
                        documents = docs
                    });
                }
            }
        }
Beispiel #11
0
        public virtual object GetBPMProcessRACI(HttpContext context)
        {
            YZRequest request     = new YZRequest(context);
            string    processName = request.GetString("processName");
            Version   version     = request.GetVersion("version");

            string             fileid;
            NodeItemCollection nodes;
            LinkItemCollection links;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                BPMProcess.GetKMInfo(cn, processName, version, out fileid, out nodes, out links);
            }

            if (String.IsNullOrEmpty(fileid))
            {
                throw new Exception(String.Format("流程{0}无关联文件", processName));
            }


            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    File file = File.Load(provider, cn, fileid);

                    DataTable table = file.Sprites.SortByOrder().GetRACIDetailTable(provider, cn, "result");
                    table = this.Map(table, nodes);
                    return(table);
                }
            }
        }
Beispiel #12
0
        public string[] GetActivityReferenceSummary(IYZDbProvider provider, IDbConnection cn, string propertyName)
        {
            List <string> names        = new List <string>();
            PropertyInfo  propertyInfo = typeof(SpriteProperty).GetProperty(propertyName);

            foreach (Sprite sprite in this)
            {
                ReferenceCollection refs = propertyInfo.GetValue(sprite.Property, null) as ReferenceCollection;
                if (refs == null)
                {
                    continue;
                }

                foreach (Reference @ref in refs)
                {
                    @ref.RefreshName(provider, cn);

                    string name = @ref.SpriteName;
                    if (!names.Contains(name))
                    {
                        names.Add(name);
                    }
                }
            }

            return(names.ToArray());
        }
Beispiel #13
0
        public static Library GetLibrary(IYZDbProvider provider, IDbConnection cn, int libid)
        {
            Library lib = null;

            try
            {
                using (YZReader reader = new YZReader(provider.GetLibrary(cn, libid)))
                {
                    if (reader.Read())
                    {
                        lib = new Library(reader);
                    }
                }
            }
            catch (Exception e)
            {
                throw new BPMException(BPMExceptionType.DBLoadDataErr, "YZAppLibrary", e.Message);
            }

            if (lib == null)
            {
                throw new BPMException(String.Format(Resources.YZStrings.Aspx_Library_Ext_LibraryNotExist, libid));
            }

            return(lib);
        }
Beispiel #14
0
        public static void MoveFolders(IYZDbProvider provider, IDbConnection cn, int[] folderids, int targetfolderid, MovePosition position)
        {
            Folder           targetFolder = DirectoryManager.GetFolderByID(provider, cn, targetfolderid);
            FolderCollection folders;
            int parentFolderId;

            if (position == MovePosition.Append)
            {
                parentFolderId = targetFolder.FolderID;
            }
            else
            {
                parentFolderId = targetFolder.ParentID;
            }

            foreach (int folderid in folderids)
            {
                Folder folder = new Folder();
                folder.FolderID = folderid;
                folder.ParentID = parentFolderId;
                folder.RootID   = targetFolder.RootID;
                DirectoryManager.UpdateParent(provider, cn, folder);
            }

            folders = DirectoryManager.GetFolders(provider, cn, parentFolderId, null, null);

            folders.Move <int>("FolderID", folderids, targetfolderid, position);

            for (int i = 0; i < folders.Count; i++)
            {
                Folder folder = folders[i];
                folder.OrderIndex = i;
                DirectoryManager.UpdateOrderIndex(provider, cn, folder);
            }
        }
Beispiel #15
0
        private static File TryLoad(IYZDbProvider provider, IDbConnection cn, string fileid, out Exception exp)
        {
            string filePath = AttachmentInfo.FileIDToPath(fileid, AttachmentManager.AttachmentRootPath);

            exp = null;
            if (!System.IO.File.Exists(filePath))
            {
                exp = new Exception(String.Format(Resources.YZStrings.Aspx_Upload_FileIDNotFount, fileid));
                return(null);
            }

            JObject jProcess;

            using (System.IO.StreamReader rd = new System.IO.StreamReader(filePath))
                jProcess = JObject.Parse(rd.ReadToEnd());

            AttachmentInfo attachment = AttachmentManager.GetAttachmentInfo(provider, cn, fileid);

            File file = jProcess.ToObject <File>();

            file.FileID         = fileid;
            file.FileName       = attachment != null ? attachment.Name : "";
            file.AttachmentInfo = attachment;

            return(file);
        }
Beispiel #16
0
 private void AddCommonColumns(IYZDbProvider provider, IDbConnection cn, DataTable table)
 {
     table.Columns.Add("CompanyName", typeof(string));
     table.Columns.Add("FileID", typeof(string));
     table.Columns.Add("FileName", typeof(string));
     table.Columns.Add("Code", typeof(string));
     table.Columns.Add("Order", typeof(string));
     table.Columns.Add("Version", typeof(string));
     table.Columns.Add("Creator", typeof(string));
     table.Columns.Add("CreateAt", typeof(DateTime));
     table.Columns.Add("ChangeBy", typeof(string));
     table.Columns.Add("LastChange", typeof(DateTime));
     table.Columns.Add("Owner", typeof(string));
     table.Columns.Add("ReleaseDate", typeof(DateTime));
     table.Columns.Add("Auditor", typeof(string));
     table.Columns.Add("AuditDate", typeof(DateTime));
     table.Columns.Add("Approval", typeof(string));
     table.Columns.Add("ApproveDate", typeof(DateTime));
     table.Columns.Add("Milestone", typeof(string));
     table.Columns.Add("Since", typeof(DateTime));
     table.Columns.Add("Color", typeof(string));
     table.Columns.Add("ExecuteStatus", typeof(string));
     table.Columns.Add("Purpose", typeof(string));
     table.Columns.Add("Scope", typeof(string));
     table.Columns.Add("Definition", typeof(string));
     table.Columns.Add("Responsibility", typeof(string));
     table.Columns.Add("DispatchScope", typeof(string));
     table.Columns.Add("DesignPurpose", typeof(string));
     table.Columns.Add("CreatorAccount", typeof(string));
     table.Columns.Add("ChangeByAccount", typeof(string));
     table.Columns.Add("Chart", typeof(Image));
 }
Beispiel #17
0
        public AttachmentInfoCollection GetAttachmentsInfo(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            string[] ids = request.GetString("fileids").Split(',', ';');

            AttachmentInfoCollection attachments = new AttachmentInfoCollection();

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    attachments = AttachmentManager.GetAttachmentsInfo(provider, cn, ids);
                }
            }

            AttachmentInfoCollection rv = new AttachmentInfoCollection();

            foreach (string id in ids)
            {
                AttachmentInfo attachmentInfo = attachments.TryGetItem(id);
                if (attachmentInfo != null)
                {
                    rv.Add(attachmentInfo);
                }
            }
            return(rv);
        }
Beispiel #18
0
        public FileCollection GetUsedByFiles(IYZDbProvider provider, IDbConnection cn, string property)
        {
            FileCollection files = new FileCollection();

            SpriteLinkCollection links = BPAManager.GetFileUsedByLinks(provider, cn, this.FileID, property);

            foreach (SpriteLink link in links)
            {
                File file = File.TryLoad(provider, cn, link.FileID);

                if (file == null)
                {
                    continue;
                }

                if (files.Contains(file.FileID))
                {
                    continue;
                }

                files.Add(file);
            }

            return(files);
        }
Beispiel #19
0
        public virtual UserCollection GetGroupUsers(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            int       groupid = request.GetInt32("groupid");

            Group.MemberCollection members;
            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    members = GroupManager.GetGroupMembers(provider, cn, groupid);
                }
            }

            UserCollection users = new UserCollection();

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

                foreach (Group.Member member in members)
                {
                    User user = User.TryGetUser(cn, member.UID);
                    if (user != null)
                    {
                        users.Add(user);
                    }
                }
            }

            return(users);
        }
Beispiel #20
0
        public virtual YZSoft.Group.MemberCollection GetGroupMembers(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            int       groupid = request.GetInt32("groupid");

            Group.MemberCollection members;
            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    members = GroupManager.GetGroupMembers(provider, cn, groupid);
                }
            }

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

                for (int i = 0; i < members.Count; i++)
                {
                    YZSoft.Group.Member member = members[i];
                    member.User = User.TryGetUser(cn, member.UID);
                    if (member.User == null)
                    {
                        members.RemoveAt(i);
                        i--;
                    }
                }
            }

            return(members);
        }
Beispiel #21
0
 public void RefreshName(IYZDbProvider provider, IDbConnection cn)
 {
     foreach (Reference @ref in this)
     {
         @ref.RefreshName(provider, cn);
     }
 }
Beispiel #22
0
        public DataTable ToDetailTable(IYZDbProvider provider, IDbConnection cn, string outputTableName)
        {
            DataTable table = new DataTable(outputTableName);

            table.Columns.Add("FileID", typeof(string));
            table.Columns.Add("FileName", typeof(string));
            table.Columns.Add("FileCode", typeof(string));
            table.Columns.Add("SpriteName", typeof(string));
            table.Columns.Add("Code", typeof(string));
            table.Columns.Add("Desc", typeof(string));

            foreach (Reference reference in this)
            {
                File file = File.TryLoad(provider, cn, reference.FileID);
                if (file != null)
                {
                    Sprite sprite = file.Sprites.TryGetItem(reference.SpriteID);

                    if (sprite != null)
                    {
                        DataRow row = table.NewRow();
                        table.Rows.Add(row);

                        row["FileID"]     = file.FileID;
                        row["FileName"]   = file.FileName;
                        row["FileCode"]   = String.IsNullOrEmpty(file.Property.Code) ? file.FileID : file.Property.Code;
                        row["SpriteName"] = sprite.Name;
                        row["Code"]       = sprite.Property.Code;
                        row["Desc"]       = sprite.Property.Description;
                    }
                }
            }

            return(table);
        }
Beispiel #23
0
        public DataTable ToActivityTable(IYZDbProvider provider, IDbConnection cn, string tableName)
        {
            DataTable table = new DataTable(tableName);
            DataRow   row   = table.NewRow();

            table.Rows.Add(row);

            this.AddCommonColumns(table);
            table.Columns.Add("Responsible", typeof(string));
            table.Columns.Add("Form", typeof(string));
            table.Columns.Add("Regulation", typeof(string));
            table.Columns.Add("ControlPoint", typeof(string));
            table.Columns.Add("Accountable", typeof(string));
            table.Columns.Add("ITSystem", typeof(string));
            table.Columns.Add("Informed", typeof(string));
            table.Columns.Add("Consulted", typeof(string));
            table.Columns.Add("KPI", typeof(string));

            this.SetCommonValue(row);
            row["Responsible"]  = String.Join(",", this.Property.Responsible.ToString(provider, cn));
            row["Form"]         = String.Join(",", this.Property.Form.ToString(provider, cn));
            row["Regulation"]   = String.Join(",", this.Property.Regulation.ToString(provider, cn));
            row["ControlPoint"] = String.Join(",", this.Property.ControlPoint.ToString(provider, cn));
            row["Accountable"]  = String.Join(",", this.Property.Accountable.ToString(provider, cn));
            row["ITSystem"]     = String.Join(",", this.Property.ITSystem.ToString(provider, cn));
            row["Informed"]     = String.Join(",", this.Property.Informed.ToString(provider, cn));
            row["Consulted"]    = String.Join(",", this.Property.Consulted.ToString(provider, cn));
            row["KPI"]          = String.Join(",", this.Property.KPI.ToString(provider, cn));

            return(table);
        }
Beispiel #24
0
        public SpriteCollection GetUsedBySprites(IYZDbProvider provider, IDbConnection cn, string property)
        {
            SpriteCollection sprites = new SpriteCollection();

            SpriteLinkCollection links = BPAManager.GetSpriteUsedByLinks(provider, cn, this.File.FileID, this.Id, property);

            foreach (SpriteLink link in links)
            {
                if (link.LinkType != ReferenceType.SpriteToSprite)
                {
                    continue;
                }

                File file = File.TryLoad(provider, cn, link.FileID);

                if (file == null)
                {
                    continue;
                }

                Sprite sprite = file.Sprites.TryGetItem(link.SpriteID);
                if (sprite != null && !sprites.Contains(sprite.File.FileID, sprite.Id))
                {
                    sprites.Add(sprite);
                }
            }

            return(sprites);
        }
Beispiel #25
0
        public static LibraryCollection GetLibraries(IYZDbProvider provider, IDbConnection cn, string libType, string filter, string sort)
        {
            try
            {
                LibraryCollection alllibs = new LibraryCollection();
                using (YZReader reader = new YZReader(provider.GetLibraries(cn, libType, filter, sort)))
                {
                    while (reader.Read())
                    {
                        Library lib = new Library(reader);

                        if (!String.IsNullOrEmpty(lib.Name))
                        {
                            alllibs.Add(lib);
                        }
                    }
                }

                return(alllibs);
            }
            catch (Exception e)
            {
                throw new BPMException(BPMExceptionType.DBLoadDataErr, "YZAppLibrary", e.Message);
            }
        }
Beispiel #26
0
        public virtual object GetHandoverRequests(HttpContext context)
        {
            YZRequest  request = new YZRequest(context);
            string     uid     = request.GetString("uid");
            PageResult result;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    result = TaskListManager.GetHandoverMyRequests(provider, cn, uid, this.GetFilterStringHandoverRequests(request, provider), request.GetSortString("TaskID ASC"), request.Start, request.Limit);
                }
            }

            JArray children = new JArray();

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

                foreach (DataRow task in result.Table.Rows)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    int    taskid       = YZConvert.ToInt32(task["TaskID"]);
                    string desc         = YZConvert.ToString(task["Description"]);
                    string ownerAccount = YZConvert.ToString(task["OwnerAccount"]);
                    string agentAccount = YZConvert.ToString(task["AgentAccount"]);

                    User owner = User.TryGetUser(cn, ownerAccount);
                    User agent = null;

                    if (!String.IsNullOrEmpty(agentAccount))
                    {
                        agent = User.TryGetUser(cn, agentAccount);
                    }

                    item["TaskID"]           = taskid;
                    item["SerialNum"]        = YZConvert.ToString(task["SerialNum"]);
                    item["ProcessName"]      = YZConvert.ToString(task["ProcessName"]);
                    item["ProcessVersion"]   = YZConvert.ToString(task["ProcessVersion"]);
                    item["OwnerAccount"]     = ownerAccount;
                    item["OwnerDisplayName"] = owner == null ? ownerAccount : owner.ShortName;
                    item["AgentAccount"]     = agentAccount;
                    item["AgentDisplayName"] = agent == null ? agentAccount : agent.ShortName;
                    item["CreateAt"]         = YZConvert.ToDateTime(task["CreateAt"]);
                    item["State"]            = YZJsonHelper.GetTaskStateJObject(cn, YZConvert.ToEnum <TaskState>(task["State"]), taskid);
                    item["Description"]      = String.IsNullOrEmpty(desc) ? Resources.YZStrings.All_None : desc;
                }
            }

            return(new
            {
                success = true,
                total = result.TotalRows,
                children = children
            });
        }
Beispiel #27
0
        public virtual JObject SearchProcess(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    keyword = request.GetString("kwd", null);
            string    uid     = YZAuthHelper.LoginUserAccount;

            BPMProcessCollection processes;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                processes = cn.SearchProcess(null, BPMPermision.Execute, keyword, true, 100);
            }

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

            rv[YZJsonProperty.total] = processes.Count;

            JArray children = new JArray();

            rv[YZJsonProperty.children] = children;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    foreach (BPMProcess process in processes)
                    {
                        if (!process.Property.MobileInitiation)
                        {
                            continue;
                        }

                        JObject item = new JObject();
                        children.Add(item);

                        item["ProcessName"]    = process.Name;
                        item["Active"]         = process.Active;
                        item["ProcessVersion"] = process.Version.ToString(2);
                        item["Description"]    = process.Property.Description;
                        item["RelatedFile"]    = process.Property.RelatedFile;

                        item["ShortName"] = process.Property.ShortName;
                        item["Color"]     = process.Property.Color;

                        if (String.IsNullOrEmpty(process.Property.ShortName))
                        {
                            item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(process.Name);
                        }

                        item["Favorited"] = FavoriteManager.HasFavorited(provider, cn, uid, YZResourceType.Process, process.Name);
                    }
                }
            }

            return(rv);
        }
Beispiel #28
0
        public static void DisbandGroup(IYZDbProvider provider, IDbConnection cn, int groupid)
        {
            Group group = GetGroup(provider, cn, groupid);

            group.Deleted  = true;
            group.DeleteAt = DateTime.Now;
            group.DeleteBy = YZAuthHelper.LoginUserAccount;
            Update(provider, cn, group);
        }
Beispiel #29
0
        public virtual object GetTeamReports(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    myaccount = request.GetString("account", YZAuthHelper.LoginUserAccount);
            DateTime  date      = request.GetDateTime("date");

            BPMObjectNameCollection accounts = new BPMObjectNameCollection();

            accounts.Add(myaccount);

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

                MemberCollection positions = OrgSvr.GetUserPositions(bpmcn, myaccount);
                foreach (Member position in positions)
                {
                    DirectXSCollection xss = position.GetDirectXSs(bpmcn);
                    foreach (DirectXS xs in xss)
                    {
                        if (!accounts.Contains(xs.UserAccount))
                        {
                            accounts.Add(xs.UserAccount);
                        }
                    }
                }

                DailyReportCollection rv = new DailyReportCollection();
                foreach (string account in accounts)
                {
                    DailyReport dailyReport;

                    using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
                    {
                        using (IDbConnection cn = provider.OpenConnection())
                        {
                            dailyReport = DailyReportManager.TryGetReport(provider, cn, account, date);

                            if (dailyReport == null)
                            {
                                dailyReport         = new DailyReport();
                                dailyReport.Account = account;
                                dailyReport.Date    = date;
                            }

                            rv.Add(dailyReport);
                        }
                    }

                    User user = User.TryGetUser(bpmcn, account);
                    dailyReport["ShortName"] = user == null ? "" : user.ShortName;
                }

                return(rv);
            }
        }
Beispiel #30
0
 public virtual object GetSignCount(HttpContext context)
 {
     using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
     {
         using (IDbConnection cn = provider.OpenConnection())
         {
             return(FootmarkManager.GetSignCount(provider, cn, YZAuthHelper.LoginUserAccount, DateTime.Today));
         }
     }
 }