public void GivenProjects_WhenAskingToCreate_ShouldHydrateProjects()
        {
            // arrange
            string         projectsJson    = new TestData().Projects();
            IConfiguration configuration   = new InMemoryConfiguration().Instance();
            IHttpService   vstsHttpService = new VstsHttpService(new Uri(configuration["VstsApi:BaseUrl"]), new FakeHttpMessageHandler(projectsJson, new Uri(new Uri(configuration["VstsApi:BaseUrl"]), "/_apis/projects?api-version=4.1-preview.1"), configuration["VstsApi:PAT"]));

            new Privateer().SetStaticField <VstsHttpService, HttpClient>((VstsHttpService)vstsHttpService, "_httpClient", null);
            IProjectsFactory projectsFactory = new ProjectsFactory(vstsHttpService, configuration);

            // act
            Projects projects = projectsFactory.Create();

            // assert
            JObject jObject = JObject.Parse(JsonConvert.SerializeObject(projects));

            jObject.Value <int>("count").Should().Be(2);

            JToken jProjects = jObject["projects"];

            jProjects.Should().HaveCount(2);

            jProjects[0]["id"].Value <string>().Should().Be("8e161f07-7901-483a-bfd1-52bbc68499a3");
            jProjects[0]["name"].Value <string>().Should().Be("VstsProjectMonitor");
        }
Пример #2
0
        private void AssignUsers(string userids, bool isClient)
        {
            string[] users = userids.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            int      id    = QS("id", 0);

            if (projApp.RemoveAllUsers(id, isClient))
            {
                List <BrokenRuleMessage> listmsgs = new List <BrokenRuleMessage>();
                foreach (string user in users)
                {
                    ProjectUsersEntity model = ProjectsFactory.CreateProjectUser(UserInfo.ID, ObjectFactory.GetInstance <ISystemDateTime>());
                    model.ProjectID = id;
                    model.UserID    = int.Parse(user);
                    model.ISClient  = QueryISClient(user);
                    model.ISClient  = isClient;
                    if (projApp.AssignUserToProject(model) < 0)
                    {
                        RecordMsg(listmsgs, projApp.BrokenRuleMessages);
                    }
                }
                if (listmsgs.Count > 0)
                {
                    this.ShowFailMessageToClient();
                }
                else
                {
                    if (!isClient)
                    {
                        InitSunnetUsers();
                    }
                    this.ShowSuccessMessageToClient(false, false);
                }
            }
        }
Пример #3
0
        /// <summary>
        /// 编辑项目信息(Projects_Edit页面)
        /// </summary>
        public ActionResult Edit_Projects()
        {
            ProjectsFactory projectsfactory = new ProjectsFactory();
            //获取项目编号(id)信息
            string id = ViewMethods.GetForm(Request, "ID", CommonEnums.ValueEnum.vlGet).ToString();

            IProjectsB projectsb = projectsfactory.GetDataByID(id);
            ProjectsM  projectsm = (projectsb == null ? null : projectsb.Infomation_projects);
            //编辑项目信息
            string projectsname   = ViewMethods.GetForm(Request, "name", CommonEnums.ValueEnum.vlPost).ToString();
            string projectsbelong = ViewMethods.GetForm(Request, "belong", CommonEnums.ValueEnum.vlPost).ToString();

            projectsm.PRName   = projectsname;
            projectsm.PRBelong = projectsbelong;
            projectsfactory.Infomation_projects = projectsm;
            ViewBag.ProjectsInfo = projectsm;
            bool isSuccess = projectsfactory.Update();

            if (isSuccess)
            {
                return(ViewMethods.AlertBack("修改成功", "../../Projects/Projects"));
            }
            else
            {
                return(ViewMethods.AlertBack("修改失败", "-1"));
            }
        }
Пример #4
0
        /// <summary>
        /// Contract_List页面行为
        /// </summary>
        /// <returns>视图</returns>
        public ActionResult Contract_List()
        {
            //获取往来客户信息
            ClientsFactory   clientsfactory = new ClientsFactory();
            List <IClientsB> lstclients     = clientsfactory.GetDataClients();
            List <ClientsM>  clientsm       = new List <ClientsM>();

            if (lstclients != null && lstclients.Count > 0)
            {
                lstclients.ForEach(p => clientsm.Add(p.Infomation_clients));
            }
            ViewBag.ClientsInfo = clientsm;

            //获取项目信息
            ProjectsFactory   projectsfactory = new ProjectsFactory();
            List <IProjectsB> lstprojects     = projectsfactory.GetDataProjects();
            List <ProjectsM>  projectsm       = new List <ProjectsM>();

            if (lstprojects != null && lstprojects.Count > 0)
            {
                lstprojects.ForEach(p => projectsm.Add(p.Infomation_projects));
            }
            ViewBag.ProjectsInfo = projectsm;

            //获取合同信息
            string          id = ViewMethods.GetForm(Request, "ID", CommonEnums.ValueEnum.vlGet).ToString();
            ContractFactory contractfactory = new ContractFactory();
            IContractB      lstContract     = contractfactory.GetDataByID(id);
            ContractM       contractm       = (lstContract != null ? lstContract.Infomation_contract : null);

            ViewBag.ContractInfo = contractm;
            return(View());
        }
Пример #5
0
        private ProjectsEntity GetEntity()
        {
            ProjectsEntity model = ProjectsFactory.CreateProject(UserInfo.ID, ObjectFactory.GetInstance <ISystemDateTime>());

            model.BugNeedApproved = chkBugNeedApprove.Checked;
            model.CompanyID       = int.Parse(ddlCompany.SelectedValue);
            model.Description     = txtDesc.Text;

            DateTime dtEnd;

            if (!DateTime.TryParse(txtEndDate.Text, out dtEnd))
            {
                dtEnd = UtilFactory.Helpers.CommonHelper.GetDefaultMinDate();
            }
            model.EndDate = dtEnd;

            model.FreeHour              = int.Parse(txtFreeHour.Text);
            model.IsOverFreeTime        = false;
            model.PMID                  = int.Parse(ddlPM.SelectedValue);
            model.Priority              = ddlPriority.SelectedValue;
            model.ProjectCode           = txtProjectCode.Text;
            model.RequestNeedApproved   = chkRequestNeedApprove.Checked;
            model.StartDate             = Convert.ToDateTime(txtStartDate.Text);
            model.Status                = ddlStatus.SelectedValue.ToEnum <ProjectStatus>();
            model.TestLinkURL           = txtTestUrl.Text;
            model.TestPassword          = txtTestPassword.Text;
            model.TestUserName          = txtTestUserName.Text;
            model.Title                 = txtTitle.Text.Trim();
            model.Billable              = bool.Parse(rblBillable.SelectedValue);
            model.TotalHours            = this.ClientMaintenancePlan1.TotalHours;
            model.MaintenancePlanOption = ClientMaintenancePlan1.SelectedMaintenancePlan.ToString();
            return(model);
        }
Пример #6
0
        /// <summary>
        /// Projects_List页面
        /// </summary>
        /// <returns>页面</returns>
        public ActionResult Projects_List()
        {
            //获取项目编号(id)数据信息
            string id = ViewMethods.GetForm(Request, "PRID", CommonEnums.ValueEnum.vlGet).ToString();

            //根据项目编号(id)获取项目信息
            ProjectsFactory projectsfactory = new ProjectsFactory();
            IProjectsB      lstProjects     = projectsfactory.GetDataByID(id);
            ProjectsM       projectsm       = (lstProjects != null ? lstProjects.Infomation_projects : null);

            ViewBag.ProjectsInfo = projectsm;

            //获取往来客户信息
            ClientsFactory   clientsFactory = new ClientsFactory();
            List <IClientsB> lstClients     = clientsFactory.GetDataClients();
            List <ClientsM>  clientsm       = new List <ClientsM>();

            if (lstClients != null && lstClients.Count > 0)
            {
                lstClients.ForEach(p => clientsm.Add(p.Infomation_clients));
            }
            ViewBag.ClientsInfo = clientsm;

            //获取收付款信息
            FinanceFactory   financeFactory = new FinanceFactory();
            List <IFinanceB> lstFinance     = financeFactory.GetDataFinance();
            List <FinanceM>  financem       = new List <FinanceM>();

            if (lstFinance != null && lstFinance.Count > 0)
            {
                lstFinance.ForEach(p => financem.Add(p.Infomation_finance));
            }
            ViewBag.FinanceInfo = financem;

            //获取工程量信息
            QuantityFactory   quantityFactory = new QuantityFactory();
            List <IQuantityB> lstQuantity     = quantityFactory.GetDataQuantity();
            List <QuantityM>  quantity        = new List <QuantityM>();

            if (lstQuantity != null && lstQuantity.Count > 0)
            {
                lstQuantity.ForEach(p => quantity.Add(p.Infomation_Quantity));
            }
            ViewBag.QuantityInfo = quantity;

            //获取合同信息
            ContractFactory   contractFactory = new ContractFactory();
            List <IContractB> lstContract     = contractFactory.GetDataContract();
            List <ContractM>  contracts       = new List <ContractM>();

            if (lstContract != null && lstContract.Count > 0)
            {
                lstContract.ForEach(p => contracts.Add(p.Infomation_contract));
            }
            ViewBag.ContractInfo = contracts;

            return(View());
        }
Пример #7
0
        /// <summary>
        /// Projects_Edit页面行为
        /// </summary>
        /// <returns>视图</returns>
        public ActionResult Projects_Edit()
        {
            //获取项目编号(id)数据信息
            string          id = ViewMethods.GetForm(Request, "ID", CommonEnums.ValueEnum.vlGet).ToString();
            ProjectsFactory projectsfactory = new ProjectsFactory();
            IProjectsB      lstProjects     = projectsfactory.GetDataByID(id);
            ProjectsM       projectsm       = (lstProjects != null ? lstProjects.Infomation_projects : null);

            ViewBag.ProjectsInfo = projectsm;
            return(View());
        }
Пример #8
0
        /// <summary>
        /// 删除项目信息(Projects页面)
        /// </summary>
        /// <returns></returns>
        public ActionResult Delete_Projects()
        {
            //获取项目编号(id)信息
            string    uid       = ViewMethods.GetForm(Request, "uid", CommonEnums.ValueEnum.vlPost).ToString();
            ProjectsM projectsm = new ProjectsM();

            projectsm.PRID = uid.ConvertToInt32();
            ProjectsFactory projectsfactory = new ProjectsFactory();

            projectsfactory.Infomation_projects = projectsm;
            projectsfactory.Del_Projects();
            return(new JsonResult()
            {
                Data = PublicMethods.JSonHelper <string> .ObjectToJson(new { status = "0", msg = "删除成功" }), ContentType = "json"
            });
        }
        public void GivenNullProjects_WhenAskingToCreate_ShouldThrowException()
        {
            // arrange
            string         projectsJson    = null;
            IConfiguration configuration   = new InMemoryConfiguration().Instance();
            IHttpService   vstsHttpService = new VstsHttpService(new Uri(configuration["VstsApi:BaseUrl"]), new FakeHttpMessageHandler(projectsJson, new Uri(new Uri(configuration["VstsApi:BaseUrl"]), "/_apis/projects?api-version=4.1-preview.1"), configuration["VstsApi:PAT"]));

            new Privateer().SetStaticField <VstsHttpService, HttpClient>((VstsHttpService)vstsHttpService, "_httpClient", null);
            IProjectsFactory projectsFactory = new ProjectsFactory(vstsHttpService, configuration);

            // act
            Action action = () => projectsFactory.Create();

            // assert
            action.Should().Throw <Exception>().WithMessage("Value cannot be null.\r\nParameter name: content");
        }
        public void GivenEmptyProjects_WhenAskingToCreate_ShouldReturnNullObject()
        {
            // arrange
            const string   projectsJson    = "";
            IConfiguration configuration   = new InMemoryConfiguration().Instance();
            IHttpService   vstsHttpService = new VstsHttpService(new Uri(configuration["VstsApi:BaseUrl"]), new FakeHttpMessageHandler(projectsJson, new Uri(new Uri(configuration["VstsApi:BaseUrl"]), "/_apis/projects?api-version=4.1-preview.1"), configuration["VstsApi:PAT"]));

            new Privateer().SetStaticField <VstsHttpService, HttpClient>((VstsHttpService)vstsHttpService, "_httpClient", null);
            IProjectsFactory projectsFactory = new ProjectsFactory(vstsHttpService, configuration);

            // act
            Projects projects = projectsFactory.Create();

            // assert
            projects.Should().BeOfType <NullProjects>();
        }
Пример #11
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            try
            {
                if (IdentityContext.UserID <= 0)
                {
                    return;
                }
                string   isClient      = context.Request["isClient"];
                string   projectIdList = context.Request["checkboxList"];
                int      uid           = int.Parse(context.Request["uid"]);
                string[] projectIds    = projectIdList.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

                //这里原本传的是project的Id而我只需要保证弹出的窗口中没有已选择的project就ok了

                List <BrokenRuleMessage> listmsgs = new List <BrokenRuleMessage>();
                foreach (string projectId in projectIds)
                {
                    ProjectUsersEntity model = ProjectsFactory.CreateProjectUser(IdentityContext.UserID
                                                                                 , ObjectFactory.GetInstance <ISystemDateTime>());
                    model.ProjectID = int.Parse(projectId);
                    model.UserID    = uid;
                    model.ISClient  = Boolean.Parse(isClient);
                    if (projApp.AssignUserToProject(model) < 0)
                    {
                        RecordMsg(listmsgs, projApp.BrokenRuleMessages);
                    }
                }
                if (listmsgs.Count > 0)
                {
                    context.Response.Write("Assign Fail!");
                }
                else
                {
                    context.Response.Write("The project has been assigned.");
                }
            }
            catch (Exception ex)
            {
                context.Response.Write("Input special symbol is not allowed,please check title and description!");
                WebLogAgent.Write(string.Format("Error Ashx:DoAddTicketHandler.ashx Messages:\r\n{0}", ex));
                return;
            }
        }
Пример #12
0
        /// <summary>
        /// 添加项目信息(Projects_Add页面)
        /// </summary>
        public ActionResult Add_Projects()
        {
            ProjectsFactory projectsfactory = new ProjectsFactory();
            //添加业主信息
            ProjectsM projectsm    = new ProjectsM();
            string    projectsname = ViewMethods.GetForm(Request, "name", CommonEnums.ValueEnum.vlPost).ToString();
            string    prbelong     = ViewMethods.GetForm(Request, "belong", CommonEnums.ValueEnum.vlPost).ToString();
            bool      isExist      = projectsfactory.IsExist_projectsname(projectsname);

            if (isExist)
            {
                return(ViewMethods.AlertBack("项目已存在,请重新确认", "-1"));
            }
            projectsm.PRName   = projectsname;
            projectsm.PRBelong = prbelong;
            projectsfactory.Infomation_projects = projectsm;
            projectsfactory.Save();
            return(ViewMethods.AlertBack("添加项目成功!", "../../Projects/Projects"));
        }
        public void GivenDehydratedProjectsResponse_WhenAskingToCreate_ShouldReturnDehydratedObject()
        {
            // arrange
            const string   projectsJson    = "{}";
            IConfiguration configuration   = new InMemoryConfiguration().Instance();
            IHttpService   vstsHttpService = new VstsHttpService(new Uri(configuration["VstsApi:BaseUrl"]), new FakeHttpMessageHandler(projectsJson, new Uri(new Uri(configuration["VstsApi:BaseUrl"]), "/_apis/projects?api-version=4.1-preview.1"), configuration["VstsApi:PAT"]));

            new Privateer().SetStaticField <VstsHttpService, HttpClient>((VstsHttpService)vstsHttpService, "_httpClient", null);
            IProjectsFactory projectsFactory = new ProjectsFactory(vstsHttpService, configuration);

            // act
            Projects projects = projectsFactory.Create();

            // assert
            JObject jObject = JObject.Parse(JsonConvert.SerializeObject(projects));

            jObject.Value <int>("count").Should().Be(0);

            JToken jProjects = jObject["projects"];

            jProjects.Should().HaveCount(0);
        }
Пример #14
0
        /// <summary>
        /// Finance_List页面行为
        /// </summary>
        /// <return>视图</return>
        public ActionResult Finance_List()
        {
            //获取项目信息
            ProjectsFactory   projectsfactory = new ProjectsFactory();
            List <IProjectsB> lstprojects     = projectsfactory.GetDataProjects();
            List <ProjectsM>  projectsm       = new List <ProjectsM>();

            if (lstprojects != null && lstprojects.Count > 0)
            {
                lstprojects.ForEach(p => projectsm.Add(p.Infomation_projects));
            }
            ViewBag.Projects = projectsm;

            //获取收付款单ID数据信息
            string         sfid           = ViewMethods.GetForm(Request, "ID", CommonEnums.ValueEnum.vlGet).ToString();
            FinanceFactory financeFactory = new FinanceFactory();
            IFinanceB      lstFinance     = financeFactory.GetDataByID(sfid);
            FinanceM       financem       = (lstFinance != null ? lstFinance.Infomation_finance : null);

            ViewBag.FinanceInfo = financem;
            return(View());
        }
Пример #15
0
        /// <summary>
        /// Finance_List页面行为
        /// </summary>
        /// <return>视图</return>
        public ActionResult FinanceA_List()
        {
            //获取项目信息
            ProjectsFactory   projectsfactory = new ProjectsFactory();
            List <IProjectsB> lstprojects     = projectsfactory.GetDataProjects();
            List <ProjectsM>  projectsm       = new List <ProjectsM>();

            if (lstprojects != null && lstprojects.Count > 0)
            {
                lstprojects.ForEach(p => projectsm.Add(p.Infomation_projects));
            }
            ViewBag.Projects = projectsm;

            //获取收付款单ID数据信息
            string         sfid           = "2";
            FinanceFactory financeFactory = new FinanceFactory();
            IFinanceB      lstFinance     = financeFactory.GetDataByID(sfid);
            FinanceM       financem       = (lstFinance != null ? lstFinance.Infomation_finance : null);

            ViewBag.FinanceInfo = financem;
            return(View());
        }
Пример #16
0
        /// <summary>
        /// Quantity_List页面行为
        /// </summary>
        /// <return>视图</return>
        public ActionResult Quantity_List()
        {
            //获取项目信息
            ProjectsFactory   projectsfactory = new ProjectsFactory();
            List <IProjectsB> lstprojects     = projectsfactory.GetDataProjects();
            List <ProjectsM>  projectsm       = new List <ProjectsM>();

            if (lstprojects != null && lstprojects.Count > 0)
            {
                lstprojects.ForEach(p => projectsm.Add(p.Infomation_projects));
            }
            ViewBag.Projects = projectsm;

            //获取工程量单ID数据信息
            string          sfid            = ViewMethods.GetForm(Request, "ID", CommonEnums.ValueEnum.vlGet).ToString();
            QuantityFactory quantityFactory = new QuantityFactory();
            IQuantityB      lstQuantity     = quantityFactory.GetDataByID(sfid);
            QuantityM       quantitym       = (lstQuantity != null ? lstQuantity.Infomation_Quantity : null);

            ViewBag.QuantityInfo = quantitym;
            return(View());
        }
Пример #17
0
        // GET: Ower
        public ActionResult Projects()
        {
            int    pageSize = 12; //每页要显示的行数
            string belong   = ViewMethods.GetForm(Request, "BELONG");
            string ptid     = ViewMethods.GetForm(Request, "PTID");
            string orderby  = ViewMethods.GetForm(Request, "OrderBy", CommonEnums.ValueEnum.vlGet);

            if (string.IsNullOrEmpty(orderby))
            {
                orderby = "PR_ID";
            }
            int desc        = ViewMethods.GetForm(Request, "Desc", CommonEnums.ValueEnum.vlGet).ConvertToInt32();
            int pagecurrent = ViewMethods.GetForm(Request, "Page", CommonEnums.ValueEnum.vlGet).ConvertToInt32();//分页

            pagecurrent = (pagecurrent == 0 ? 1 : pagecurrent);
            object objkeys = ViewMethods.GetForm(Request, "keys", CommonEnums.ValueEnum.vlGet);//搜索内容
            string keys    = "";

            if (objkeys != null)
            {
                keys = objkeys.ToString();
            }

            long      start    = (pagecurrent - 1) * pageSize;
            string    order    = orderby;
            OrderType orderway = (desc == 0 ? OrderType.otDesc : OrderType.otAsc);
            long      count    = 0;

            //调取项目组信息
            ProjectsTeamFactory   projectsTeamFactory = new ProjectsTeamFactory();
            List <IProjectsTeamB> lstProjectsTeam     = projectsTeamFactory.GetDataProjectsTeam();
            List <ProjectsTeamM>  ProjectsTeamInfo    = new List <ProjectsTeamM>();

            lstProjectsTeam.ForEach(p => ProjectsTeamInfo.Add(p.Infomation_projectsteam));


            //调取项目信息
            ProjectsFactory   projectsfactory = new ProjectsFactory();
            List <IProjectsB> lstprojects     = projectsfactory.GetPageData(ref count, start, pageSize, keys, order, orderway, belong, ptid);
            List <ProjectsM>  projectsinfo    = new List <ProjectsM>();

            if (lstprojects != null && lstprojects.Count > 0)
            {
                lstprojects.ForEach(p => projectsinfo.Add(p.Infomation_projects));
            }

            //分页数据
            int totalpages = 0;

            if ((count % pageSize) > 0)
            {
                totalpages = (int)Math.Ceiling((float)((count / pageSize) + 1));
            }
            else
            {
                totalpages = (int)Math.Ceiling((float)(count / pageSize));//算出分页的总数
            }
            //前端页面数据推送
            ViewBag.TotalPages       = totalpages;
            ViewBag.Projects         = projectsinfo;
            TempData["OrderBy"]      = desc;
            TempData["CurrentPage"]  = pagecurrent;
            TempData["keys"]         = objkeys;
            TempData["belong"]       = belong;
            ViewBag.ProjectsTeamInfo = ProjectsTeamInfo;
            return(View());
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            try
            {
                if (IdentityContext.UserID <= 0)
                {
                    return;
                }
                string   isClient      = context.Request["isClient"];
                string   projectIdList = context.Request["checkboxList"];
                int      uid           = int.Parse(context.Request["uid"]);
                string[] projectIds    = projectIdList.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                #region 获取已经分配了的project
                SearchProjectsRequest request = new SearchProjectsRequest(SearchProjectsType.ListByUserID
                                                                          , false, "projectId", "ASC");
                request.UserID = uid;
                SearchProjectsResponse projectList = new ProjectApplication().SearchProjects(request);
                for (int i = 0; i < projectIds.Length; i++)
                {
                    int projectId = 0;
                    int.TryParse(projectIds[i], out projectId);
                    ProjectDetailDTO project = projectList.ResultList.Find(t => t.ProjectID == projectId);
                    if (project != null && project.ProjectID != 0)
                    {
                        context.Response.Write("some of the selected projects have been assigned to this user!");
                        return;
                    }
                }

                #endregion

                List <BrokenRuleMessage> listmsgs = new List <BrokenRuleMessage>();
                foreach (string projectId in projectIds)
                {
                    ProjectUsersEntity model = ProjectsFactory.CreateProjectUser(IdentityContext.UserID
                                                                                 , ObjectFactory.GetInstance <ISystemDateTime>());
                    model.ProjectID = int.Parse(projectId);
                    model.UserID    = uid;
                    model.ISClient  = Boolean.Parse(isClient);

                    if (projApp.AssignUserToProject(model) < 0)
                    {
                        RecordMsg(listmsgs, projApp.BrokenRuleMessages);
                    }
                }
                if (listmsgs.Count > 0)
                {
                    context.Response.Write("Assign Fail!");
                }
                else
                {
                    context.Response.Write("The project has been assigned.");
                }
            }
            catch (Exception ex)
            {
                context.Response.Write("Input special symbol is not allowed,please check title and description!");
                WebLogAgent.Write(string.Format("Error Ashx:DoAddTicketHandler.ashx Messages:\r\n{0}", ex));
                return;
            }
        }
Пример #19
0
        // GET: Ower
        public ActionResult Quantity()
        {
            string prid = ViewMethods.GetForm(Request, "PRID");

            ProjectsFactory   projectsfactory = new ProjectsFactory();
            List <IProjectsB> lstprojects     = projectsfactory.GetDataProjects();
            List <ProjectsM>  projectsm       = new List <ProjectsM>();

            if (lstprojects != null && lstprojects.Count > 0)
            {
                lstprojects.ForEach(p => projectsm.Add(p.Infomation_projects));
            }
            ViewBag.Projects = projectsm;

            int pageSize = 12; //每页要显示的行数
            //string collectpay = ViewMethods.GetForm(Request, "Collectpay");
            string orderby = ViewMethods.GetForm(Request, "OrderBy", CommonEnums.ValueEnum.vlGet);

            if (string.IsNullOrEmpty(orderby))
            {
                orderby = "QT_ID";
            }
            int desc        = ViewMethods.GetForm(Request, "Desc", CommonEnums.ValueEnum.vlGet).ConvertToInt32();
            int pagecurrent = ViewMethods.GetForm(Request, "Page", CommonEnums.ValueEnum.vlGet).ConvertToInt32();//分页

            pagecurrent = (pagecurrent == 0 ? 1 : pagecurrent);
            object objkeys = ViewMethods.GetForm(Request, "keys", CommonEnums.ValueEnum.vlGet);//搜索内容
            string keys    = "";

            if (objkeys != null)
            {
                keys = objkeys.ToString();
            }

            long      start    = (pagecurrent - 1) * pageSize;
            string    order    = orderby;
            OrderType orderway = (desc == 0 ? OrderType.otDesc : OrderType.otAsc);
            long      count    = 0;

            QuantityFactory   quantityfactory = new QuantityFactory();
            List <IQuantityB> lstquantity     = quantityfactory.GetPageData(ref count, start, pageSize, keys, order, orderway);
            List <QuantityM>  quantityinfo    = new List <QuantityM>();

            if (lstquantity != null && lstquantity.Count > 0)
            {
                lstquantity.ForEach(p => quantityinfo.Add(p.Infomation_Quantity));
            }
            int totalpages = 0;

            if ((count % pageSize) > 0)
            {
                totalpages = (int)Math.Ceiling((float)((count / pageSize) + 1));
            }
            else
            {
                totalpages = (int)Math.Ceiling((float)(count / pageSize));//算出分页的总数
            }
            ViewBag.TotalPages = totalpages;
            ViewBag.Quantity   = quantityinfo;

            TempData["OrderBy"]     = desc;
            TempData["CurrentPage"] = pagecurrent;
            TempData["keys"]        = objkeys;
            //TempData["collectpay"] = collectpay;
            return(View());
        }