コード例 #1
0
        private ContractViewModel GetIndexListContracts(
            ExtendedIdentityDbContext db, IOwinContext context,
            ContractListCondition condition)
        {
            int count = 0;
            IQueryable <ContractConcatHelper> dbQuery            = null;
            IQueryable <OrderContract>        orderContractQuery = null;
            IQueryable <SaleContract>         saleContractQuery  = null;

            #region handling differences
            ContractListInclude include = condition.ListInclude & ContractListInclude.OrderContractOnly;
            if (include == ContractListInclude.OrderContractOnly)
            {
                orderContractQuery = AppBusinessManager.Instance.GetIndexListOrderContract(
                    context, db, condition);
                //  null, string.Empty, condition.UserName, out ot1);
            }
            include = condition.ListInclude & ContractListInclude.SaleContractOnly;
            if (include == ContractListInclude.SaleContractOnly)
            {
                saleContractQuery = AppBusinessManager.Instance.GetIndexListSaleContract(
                    context, db, condition);
                // db, condition.OrderType, null, null, string.Empty, condition.UserName, out ot2);
            }

            if (orderContractQuery == null)
            {
                orderContractQuery = db.OrderContracts;
            }

            if ((condition.ListInclude & ContractListInclude.OrderContractOnly) == ContractListInclude.OrderContractOnly &&
                (condition.ListInclude & ContractListInclude.SaleContractOnly) != ContractListInclude.SaleContractOnly)
            {
                dbQuery = orderContractQuery.Select(m => new
                                                    ContractConcatHelper()
                {
                    ContractId    = m.OrderContractId,
                    ContractKey   = m.OrderContractKey,
                    ContractType  = ContractViewModelType.OrderContract,
                    CTIME         = m.OrderCreateTime,
                    OrderContract = m,
                    SaleContract  = null,//default(SaleContract),
                });
            }
            else if ((condition.ListInclude & ContractListInclude.OrderContractOnly) != ContractListInclude.OrderContractOnly &&
                     (condition.ListInclude & ContractListInclude.SaleContractOnly) == ContractListInclude.SaleContractOnly)
            {
                dbQuery = saleContractQuery.Select(n => new
                                                   ContractConcatHelper()
                {
                    ContractId    = n.SaleContractId,
                    ContractKey   = n.SaleContractKey,
                    ContractType  = ContractViewModelType.SaleContract,
                    CTIME         = n.SaleCreateTime,
                    OrderContract = null,//default(OrderContract),
                    SaleContract  = n,
                });
            }
            else
            {//Both:
                dbQuery = orderContractQuery.Select(m => new ContractConcatHelper()
                {
                    ContractId    = m.OrderContractId,
                    ContractKey   = m.OrderContractKey,
                    ContractType  = ContractViewModelType.OrderContract,
                    CTIME         = m.OrderCreateTime,
                    OrderContract = m,
                    SaleContract  = null, //default(SaleContract),
                });
                if ((condition.ListInclude & ContractListInclude.SaleContractOnly)
                    == ContractListInclude.SaleContractOnly)
                {
                    dbQuery.Concat(saleContractQuery.Select(n => new ContractConcatHelper()
                    {
                        ContractId    = n.SaleContractId,
                        ContractKey   = n.SaleContractKey,
                        ContractType  = ContractViewModelType.SaleContract,
                        CTIME         = n.SaleCreateTime,
                        OrderContract = null,//default(OrderContract),
                        SaleContract  = n,
                    }));
                }
            }
            #endregion

            ContractViewModel resultModel = CreateResultModelInternal(
                condition, ref count, ref dbQuery);

            return(resultModel);
        }