예제 #1
0
        public object Get(FindLicenses request)
        {
            var query = documentSession.Query <License_ByProductOrCustomer.Result, License_ByProductOrCustomer>()
                        .Include <License_ByProductOrCustomer.Result, Customer>(license => license.CustomerId)
                        .Include <License_ByProductOrCustomer.Result, Product>(license => license.ProductId);

            //if (request.LicenseType.HasValue)
            //    query = query.Where(lic => lic.LicenseType.Is(request.LicenseType.Value));

            if (request.CustomerId.HasValue)
            {
                query = query.Where(lic => lic.CustomerId == request.CustomerId.Value);
            }

            if (request.ProductId.HasValue)
            {
                query = query.Where(lic => lic.ProductId == request.ProductId.Value);
            }

            var licenses = query
                           .OfType <Model.License>()
                           .ToList();

            var result = new List <LicenseDto>(licenses.Count);

            result.AddRange(
                licenses.Select(
                    license => new LicenseDto
            {
                Customer = documentSession.Load <Customer>(license.CustomerId),
                Product  =
                    new ProductDto().PopulateWith(documentSession.Load <Product>(license.ProductId))
            }.PopulateWith(license)));

            return(result);
        }
예제 #2
0
        public object Get(FindLicenses request)
        {
            var query = documentSession.Query<License_ByProductOrCustomer.Result, License_ByProductOrCustomer>()
                                       .Include<License_ByProductOrCustomer.Result, Customer>(license => license.CustomerId)
                                       .Include<License_ByProductOrCustomer.Result, Product>(license => license.ProductId);

            //if (request.LicenseType.HasValue)
            //    query = query.Where(lic => lic.LicenseType.Is(request.LicenseType.Value));

            if (request.CustomerId.HasValue)
                query = query.Where(lic => lic.CustomerId == request.CustomerId.Value);

            if (request.ProductId.HasValue)
                query = query.Where(lic => lic.ProductId == request.ProductId.Value);

            var licenses = query
                .OfType<Model.License>()
                .ToList();

            var result = new List<LicenseDto>(licenses.Count);
            result.AddRange(
                licenses.Select(
                    license => new LicenseDto
                                   {
                                       Customer = documentSession.Load<Customer>(license.CustomerId),
                                       Product =
                                           new ProductDto().PopulateWith(documentSession.Load<Product>(license.ProductId))
                                   }.PopulateWith(license)));

            return result;
        }