예제 #1
0
 public static string GetProjectsList(Config config, out List<FBProject> arrProjects, string oAuthConsumerKey, string oAuthSecret,
     int perPage, int page, int clientID, int staffID)
 {
     arrProjects = new List<FBProject>();
     Hashtable ht = new Hashtable();
     if (perPage > 0)
     {
         ht.Add("per_page", perPage);
     }
     if (page > 0)
     {
         ht.Add("page", page);
     }
     if (clientID > 0)
     {
         ht.Add("client_id", clientID);
     }
     XmlTextReader xmlReader = null;
     string result = FBRequest(config, "project.list", ht, out xmlReader, oAuthConsumerKey, oAuthSecret, "");
     if (result == "ok")
     {
         int pageNumber = 1;
         bool assignedStaff = false;
         FBProject fbProject = new FBProject();
         while (xmlReader.Read())
         {
             if (xmlReader.NodeType == XmlNodeType.Element)
             {
                 switch (xmlReader.Name)
                 {
                     case "projects":
                         pageNumber = GetPagesCount(xmlReader);
                         break;
                     case "project":
                         assignedStaff = false;
                         fbProject = new FBProject();
                         break;
                     case "project_id":
                         fbProject.ProjectID = GetXMLTextNodeValueInt(xmlReader);
                         break;
                     case "client_id":
                         fbProject.ClientID = GetXMLTextNodeValueInt(xmlReader);
                         break;
                     case "name":
                         fbProject.Name = GetXMLTextNodeValueStr(xmlReader);
                         break;
                     case "staff_id":
                         if (!assignedStaff && GetXMLTextNodeValueInt(xmlReader) == staffID)
                         {
                             assignedStaff = true;
                         }
                         break;
                 }
             }
             else if (xmlReader.NodeType == XmlNodeType.EndElement
                && xmlReader.Name == "project")
             {
                 if (assignedStaff)
                 {
                     arrProjects.Add(fbProject);
                 }
             }
         }
         if (pageNumber > page)
         {
             arrProjects.Add(new FBProject(-(page + 1), "More..."));
         }
     }
     return result;
 }
예제 #2
0
        public static string GetProjectsList(Config config, out List <FBProject> arrProjects, string oAuthConsumerKey, string oAuthSecret,
                                             int perPage, int page, int clientID, int staffID)
        {
            arrProjects = new List <FBProject>();
            Hashtable ht = new Hashtable();

            if (perPage > 0)
            {
                ht.Add("per_page", perPage);
            }
            if (page > 0)
            {
                ht.Add("page", page);
            }
            if (clientID > 0)
            {
                ht.Add("client_id", clientID);
            }
            XmlTextReader xmlReader = null;
            string        result    = FBRequest(config, "project.list", ht, out xmlReader, oAuthConsumerKey, oAuthSecret, "");

            if (result == "ok")
            {
                int       pageNumber    = 1;
                bool      assignedStaff = false;
                FBProject fbProject     = new FBProject();
                while (xmlReader.Read())
                {
                    if (xmlReader.NodeType == XmlNodeType.Element)
                    {
                        switch (xmlReader.Name)
                        {
                        case "projects":
                            pageNumber = GetPagesCount(xmlReader);
                            break;

                        case "project":
                            assignedStaff = false;
                            fbProject     = new FBProject();
                            break;

                        case "project_id":
                            fbProject.ProjectID = GetXMLTextNodeValueInt(xmlReader);
                            break;

                        case "client_id":
                            fbProject.ClientID = GetXMLTextNodeValueInt(xmlReader);
                            break;

                        case "name":
                            fbProject.Name = GetXMLTextNodeValueStr(xmlReader);
                            break;

                        case "staff_id":
                            if (!assignedStaff && GetXMLTextNodeValueInt(xmlReader) == staffID)
                            {
                                assignedStaff = true;
                            }
                            break;
                        }
                    }
                    else if (xmlReader.NodeType == XmlNodeType.EndElement &&
                             xmlReader.Name == "project")
                    {
                        if (assignedStaff)
                        {
                            arrProjects.Add(fbProject);
                        }
                    }
                }
                if (pageNumber > page)
                {
                    arrProjects.Add(new FBProject(-(page + 1), "More..."));
                }
            }
            return(result);
        }