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"); }
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); } } }
/// <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")); } }
/// <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()); }
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); }
/// <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()); }
/// <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()); }
/// <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>(); }
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; } }
/// <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); }
/// <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()); }
/// <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()); }
/// <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()); }
// 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; } }
// 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()); }