Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
        }