public void ContractList_Valid() { //1. Setup data //a.request var request = IesContractTestDataHelper.CreateDummyContractListModel(); //b.response List <OutContractSearchGroup> contractLists = new List <OutContractSearchGroup>(); for (int i = 1; i < 10; i++) { contractLists.Add(IesContractTestDataHelper.CreateDummyContract(i)); } var response = new ContractSearchResponse { MoreFlag = "Y", NextContractId = "123456789A", OutContractGroup = contractLists.ToArray() }; mockContractSearchWcf.Setup(m => m.ContractSearch(It.IsAny <ContractSearchRequest>())).Returns(response); //2. exec var result = SystemUnderTest().ListContracts(request); //3. Verification //Verify More parameters Assert.AreEqual(true, result.HasMoreRecords); Assert.AreEqual(response.NextContractId, result.NextContractId); //Verify response list Assert.AreEqual(response.OutContractGroup.Length, result.Results.Count()); //Verify behaviour mockContractSearchWcf.Verify(m => m.ContractSearch(It.Is <ContractSearchRequest>(r => r.ContractType == request.ContractType)), Times.Once()); }
public void ContractSearchResponseToContractListModel_MappingTest_Valid() { //1. setup data List <OutContractSearchGroup> contractList = new List <OutContractSearchGroup>(); for (int i = 1; i < 10; i++) { contractList.Add(IesContractTestDataHelper.CreateDummyContract(i)); } var source = new ContractSearchResponse { MoreFlag = "Y", NextContractId = "123456789A", OutContractGroup = contractList.ToArray(), }; //2. Exec var dest = MappingEngine.Map <IesContractListModel>(source); //3. Verification //Verify More parameters Assert.AreEqual(true, dest.HasMoreRecords); Assert.AreEqual(source.NextContractId, dest.NextContractId); //Verify response list Assert.AreEqual(source.OutContractGroup.Length, dest.Results.Count()); }
public async Task <ContractSearchResponse <ContractInfoResponse> > SearchContractList(UserInfo User, [FromBody] ContractSearchRequest condition) { if (User.Id == null) { { User.Id = "66df64cb-67c5-4645-904f-704ff92b3e81"; User.UserName = "******"; User.KeyWord = ""; User.OrganizationId = "270"; User.PhoneNumber = "18122132334"; }; } Logger.Trace($"用户{User?.UserName ?? ""}({User?.Id ?? ""})查询合同条件(condition):\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); var pagingResponse = new ContractSearchResponse <ContractInfoResponse>(); if (!ModelState.IsValid) { pagingResponse.Code = ResponseCodeDefines.ModelStateInvalid; Logger.Warn($"用户{User?.UserName ?? ""}({User?.Id ?? ""})查询合同条件(PostCustomerListSaleMan)模型验证失败:\r\n{pagingResponse.Message ?? ""},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); return(pagingResponse); } try { //if (await _permissionExpansionManager.HavePermission(User.Id, "SEARCH_CONTRACT")) //{ // pagingResponse = await _contractListManager.SearchContract(User, condition, HttpContext.RequestAborted); pagingResponse = await _contractListManager.SearchContract2(User, condition, HttpContext.RequestAborted); //} //else //{ // pagingResponse.Code = ResponseCodeDefines.NotAllow; // pagingResponse.Message = "权限不足"; //} } catch (Exception e) { pagingResponse.Code = ResponseCodeDefines.ServiceError; pagingResponse.Message = "服务器错误:" + e.ToString(); Logger.Error($"用户{User?.UserName ?? ""}({User?.Id ?? ""})查询业务员条件(PostCustomerListSaleMan)请求失败:\r\n{pagingResponse.Message ?? ""},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); } return(pagingResponse); }
public void ContractList_FailedResponse_ThrowsServiceValidationException() { //1. Setup data //a.request var request = IesContractTestDataHelper.CreateDummyContractListModel(); //b.response var response = new ContractSearchResponse(); response.ExecutionResult = IesContractTestDataHelper.CreateDummyFailedExecutionResult(); mockContractSearchWcf.Setup(m => m.ContractSearch(It.IsAny <ContractSearchRequest>())).Returns(response); //2. exec var result = SystemUnderTest().ListContracts(request); //3. Verification }
public virtual async Task <ContractSearchResponse <ContractInfoResponse> > SearchContract2(UserInfo user, ContractSearchRequest condition, CancellationToken cancellationToken = default(CancellationToken)) { if (condition == null) { throw new ArgumentNullException(nameof(condition)); } var pagingResponse = new ContractSearchResponse <ContractInfoResponse>(); var query = _icontractInfoStore.ContractInfoAll().Where(a => true); query = SearchConditionFiltration(condition, query); var organsPer = await _permissionExpansionManager.GetOrganizationOfPermission(user.Id, "ContractSearchOrg"); //查询部门 if (!string.IsNullOrEmpty(condition.Organizate)) { if (organsPer.Contains(condition.Organizate))//包含在此权限的范围内 { var organs = await _permissionExpansionManager.GetLowerDepartments(condition.Organizate); query = query.Where(x => organs.Contains(x.OrganizateID)); } else { query = query.Where(x => organsPer.Contains(x.OrganizateID)); } } else { query = query.Where(x => organsPer.Contains(x.OrganizateID)); } if (condition.CheckStatu > 0) { int nCheckState = 0; // if ((condition.CheckStatu & 0x01) > 0)//1 2 4 8 未提交 审核中 通过 驳回 // { // nCheckState = (condition.CheckStatu & 0x01); // } // if ((condition.CheckStatu & 0x02) > 0) // { // nCheckState = (condition.CheckStatu & 0x02); // } // if ((condition.CheckStatu & 0x04) > 0) // { // nCheckState = (condition.CheckStatu & 0x04); // } // if ((condition.CheckStatu & 0x08) > 0) // { // nCheckState = (condition.CheckStatu & 0x08); // } query = query.Where(x => (x.ExamineStatus.Value & condition.CheckStatu) > 0); } if (condition.pageIndex == -1) { var qlist = await query.ToListAsync(cancellationToken); foreach (var item in qlist) { item.Organizate = _iorganizationExpansionStore.GetFullName(item.OrganizateID).Replace("默认顶级-", ""); item.CreateDepartment = _iorganizationExpansionStore.GetFullName(item.OrganizateID).Replace("默认顶级-", ""); List <string> fullId = await _permissionExpansionManager.GetParentDepartments(item.OrganizateID); fullId.Remove("0"); item.OrganizateFullId = string.Join("*", fullId.ToArray()); } pagingResponse.TotalCount = qlist.Count; pagingResponse.ValidityContractCount = qlist.Count; pagingResponse.PageIndex = condition.pageIndex; pagingResponse.PageSize = condition.pageSize; pagingResponse.Extension = _mapper.Map <List <ContractInfoResponse> >(qlist); } else { pagingResponse.TotalCount = await query.CountAsync(cancellationToken); pagingResponse.ValidityContractCount = pagingResponse.TotalCount; //需要加上排序 var qlist = await query.Skip(condition.pageIndex *condition.pageSize).Take(condition.pageSize).ToListAsync(cancellationToken); foreach (var item in qlist) { item.Organizate = _iorganizationExpansionStore.GetFullName(item.OrganizateID).Replace("默认顶级-", ""); item.CreateDepartment = _iorganizationExpansionStore.GetFullName(item.OrganizateID).Replace("默认顶级-", ""); List <string> fullId = await _permissionExpansionManager.GetParentDepartments(item.OrganizateID); fullId.Remove("0"); item.OrganizateFullId = string.Join("*", fullId.ToArray()); } // qlist.Select(async x => // { // x.Organizate = _iorganizationExpansionStore.GetFullName(x.OrganizateID); // x.CreateDepartment = _iorganizationExpansionStore.GetFullName(x.OrganizateID).Replace("默认顶级-", ""); // List<string> fullId = await _permissionExpansionManager.GetParentDepartments(x.OrganizateID); // fullId.Remove("0"); // x.OrganizateFullId = string.Join("*", fullId.ToArray()); // return x; // }); pagingResponse.PageIndex = condition.pageIndex; pagingResponse.PageSize = condition.pageSize; pagingResponse.Extension = _mapper.Map <List <ContractInfoResponse> >(qlist); } return(pagingResponse); }
public virtual async Task <ContractSearchResponse <ContractInfoResponse> > SearchContract(UserInfo user, ContractSearchRequest condition, CancellationToken cancellationToken = default(CancellationToken)) { if (condition == null) { throw new ArgumentNullException(nameof(condition)); } var Response = new ContractSearchResponse <ContractInfoResponse>(); var sql = @"SELECT a.* from XYH_DT_CONTRACTINFO as a where"; if (condition?.CheckStatu > 0) { sql = @"SELECT a.* from XYH_DT_CONTRACTINFO as a LEFT JOIN XYH_DT_MODIFY as b ON a.`CurrentModify`=b.`ID` where"; } string connectstr = " "; if (!string.IsNullOrEmpty(condition?.KeyWord)) { sql += connectstr + @"LOCATE('" + condition.KeyWord + "', a.`Name`)>0"; connectstr = " and "; } else if (condition?.KeyWord != null) { sql += connectstr + @"a.`ID`!=''"; connectstr = " and "; } if (condition?.Discard == 1) { sql += connectstr + @"a.IsDelete"; connectstr = " and "; } if (condition?.OverTime == 1)//过期和时间限定分开 { sql += connectstr + @"a.`EndTime`<=CURTIME()"; connectstr = " and "; } else if (condition?.CreateDateStart != null && condition?.CreateDateEnd != null) { sql += connectstr + @"(a.`StartTime`<='" + condition.CreateDateStart.Value + "'"; connectstr = " and "; sql += connectstr + @"a.`EndTime`>='" + condition.CreateDateEnd.Value + "')"; } if (condition?.Follow == 1) { sql += connectstr + @"a.`Follow`!=''"; connectstr = " and "; } if (condition?.CheckStatu > 0) { string head = "(", tail = ")"; if ((condition?.CheckStatu & 0x01) > 0)//1 2 4 8 未提交 审核中 通过 驳回 { sql += connectstr + head + @"b.`ExamineStatus`=0"; connectstr = " or "; head = ""; } if ((condition?.CheckStatu & 0x02) > 0) { sql += connectstr + head + @"b.`ExamineStatus`=1"; connectstr = " or "; head = ""; } if ((condition?.CheckStatu & 0x04) > 0) { sql += connectstr + head + @"b.`ExamineStatus`=8"; connectstr = " or "; head = ""; } if ((condition?.CheckStatu & 0x08) > 0) { sql += connectstr + head + @"b.`ExamineStatus`=16"; connectstr = " or "; head = ""; } sql += tail; connectstr = " and "; } if (!string.IsNullOrEmpty(condition?.Organizate)) { sql += connectstr + @"a.`OrganizateID`='" + condition.Organizate + "'"; connectstr = " and "; } if (condition?.OrderRule == 0 || condition?.OrderRule == null) { sql += @" ORDER BY a.`StartTime`"; } else if (condition?.OrderRule == 1) { sql += @" ORDER BY a.`ID`"; } var query = _icontractInfoStore.DapperSelect <ContractInfo>(sql).ToList(); Response.ValidityContractCount = query.Count; Response.TotalCount = query.Count; List <ContractInfo> result = new List <ContractInfo>(); var begin = (condition.pageIndex) * condition.pageSize; var end = (begin + condition.pageSize) > query.Count ? query.Count : (begin + condition.pageSize); for (; begin < end; begin++) { result.Add(query.ElementAt(begin)); } Response.PageIndex = condition.pageIndex; Response.PageSize = condition.pageSize; Response.Extension = _mapper.Map <List <ContractInfoResponse> >(result); foreach (var item in Response.Extension) { item.ExamineStatus = 0; if (item.CurrentModify != null) { var moinf = await _icontractInfoStore.GetModifyAsync(a => a.Where(b => b.ID == item.CurrentModify)); if (moinf != null) { item.ExamineStatus = moinf.ExamineStatus; } } } return(Response); //sql += @" limit " + condition.pageIndex * condition.pageSize + "," + condition.pageSize + ""; //var query = _icontractInfoStore.DapperSelect<ContractInfo>(sql).ToList(); //Response.ValidityContractCount = query.Count; //Response.PageIndex = condition.pageIndex; //Response.PageSize = condition.pageSize; //Response.Extension = _mapper.Map<List<ContractInfoResponse>>(query); //foreach (var item in Response.Extension) //{ // item.ExamineStatus = 0; // if (item.CurrentModify != null) // { // var moinf = await _icontractInfoStore.GetModifyAsync(a => a.Where(b => b.ID == item.CurrentModify)); // if (moinf != null) // { // item.ExamineStatus = moinf.ExamineStatus; // } // } //} //return Response; }