예제 #1
0
        public ICollection <Resource.Vendor> query(VendorQuery query)
        {
            IQueryable <DB.Models.Vendor> vendors = context.Vendor.Where(query.asExpression());

            vendors = query.getOrdering(vendors).Skip(query.page * query.results).Take(query.results);
            return(mapper.Map <ICollection <DB.Models.Vendor>, ICollection <API.Resource.Vendor> >(vendors.ToList()));
        }
        /// <summary>
        /// Test Find using the Query class
        /// </summary>
        private void Step_30_TestFindByQuery_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                //Insert Mock Instance
                Vendor mock   = CreateMockInstance(tm);
                bool   result = DataRepository.VendorProvider.Insert(tm, mock);

                Assert.IsTrue(result, "Could Not Test FindByQuery, Insert Failed");

                VendorQuery query = new VendorQuery();

                query.AppendEquals(VendorColumn.VendorId, mock.VendorId.ToString());
                query.AppendEquals(VendorColumn.AccountNumber, mock.AccountNumber.ToString());
                query.AppendEquals(VendorColumn.Name, mock.Name.ToString());
                query.AppendEquals(VendorColumn.CreditRating, mock.CreditRating.ToString());
                query.AppendEquals(VendorColumn.PreferredVendorStatus, mock.PreferredVendorStatus.ToString());
                query.AppendEquals(VendorColumn.ActiveFlag, mock.ActiveFlag.ToString());
                if (mock.PurchasingWebServiceUrl != null)
                {
                    query.AppendEquals(VendorColumn.PurchasingWebServiceUrl, mock.PurchasingWebServiceUrl.ToString());
                }
                query.AppendEquals(VendorColumn.ModifiedDate, mock.ModifiedDate.ToString());

                TList <Vendor> results = DataRepository.VendorProvider.Find(tm, query);

                Assert.IsTrue(results.Count == 1, "Find is not working correctly.  Failed to find the mock instance");
            }
        }
        public async Task Query_WhenInutIsValid_ShouldTakeAmountOfVendorsEqualToPageSize()
        {
            // Arrange
            var vendorQuery = new VendorQuery {
                PageSize = 1, PageNumber = 1
            };
            const string name1 = "v1";
            const string name2 = "v2";

            _efContext.Vendor.Add(new Vendor
            {
                Name = name2
            });
            _efContext.Vendor.Add(new Vendor
            {
                Name = name1
            });
            _efContext.SaveChanges();

            foreach (var vendor in _efContext.Vendor)
            {
                _mapperMock.Setup(m => m.Map <VendorModel>(vendor)).Returns(new VendorModel
                {
                    Name = vendor.Name
                });
            }

            // Act
            var result = await _service.Query(vendorQuery);

            // Assert
            result.Vendors.Should().HaveCount(1);
            result.Vendors[0].Name.Should().Be(name1);
        }
예제 #4
0
 public IHttpActionResult Get(int id)
 {
     ThrowIfUserHasNoRole(readRole);
     using (VendorQuery vendorQuery = new VendorQuery(Db))
     {
         var data = vendorQuery.GetByPrimaryKey(id);
         SaveLog("Vendor", "Get", JsonConvert.SerializeObject(new { primaryKey = id }));
         return(Ok(new SuccessResponse(data)));
     }
 }
        public void Query_WhenPageNumberIsLessThenOne_ShouldThrowException(int pageNumber)
        {
            // Arrange
            var vendorQuery = new VendorQuery {
                PageNumber = pageNumber, PageSize = 1
            };

            // Act, Assert
            _service.Awaiting(s => s.Query(vendorQuery)).ShouldThrow <ArgumentOutOfRangeException>();
        }
        public async Task Get_All_Vendors_Should_return_10()
        {
            const int expectedCount = 10;
            var       query         = new VendorQuery
            {
                AutoComplete = false,
                PageNumber   = 1,
                Limit        = 20
            };
            var result = await _vendorSearchService.SearchVendors(query);

            result.Count.Should().Be(expectedCount);
        }
예제 #7
0
        public IHttpActionResult Search([FromUri] VendorSearchFilter filter)
        {
            ThrowIfUserHasNoRole(readRole);

            if (filter == null)
            {
                throw new KairosException("Missing search filter parameter");
            }

            using (var vendorQuery = new VendorQuery(Db))
            {
                var data = vendorQuery.Search(filter);
                return(Ok(new SuccessResponse(data)));
            }
        }
예제 #8
0
        private ProjectEntryFormData CreateFormData(ProjectDTO projectDTO)
        {
            if (projectDTO == null)
            {
                return(new ProjectEntryFormData());
            }

            ProjectEntryFormData formData = new ProjectEntryFormData();

            var _operator = new OperatorQuery(this.Db).GetByPrimaryKey(projectDTO.Operator_FK);

            if (_operator != null)
            {
                formData.Operators.Add(_operator);
            }

            var deliveryArea = new DeliveryAreaQuery(this.Db).GetByPrimaryKey(projectDTO.DeliveryArea_FK);

            if (deliveryArea != null)
            {
                formData.DeliveryAreas.Add(deliveryArea);
            }

            var vendor = new VendorQuery(this.Db).GetByPrimaryKey(projectDTO.Vendor_FK);

            if (vendor != null)
            {
                formData.Vendors.Add(vendor);
            }

            bool projectManagerIsExist = (projectDTO.User_FK != null);

            if (projectManagerIsExist)
            {
                var user = new UserQuery(this.Db).GetByPrimaryKey((int)projectDTO.User_FK);
                if (user != null)
                {
                    formData.Users.Add(user);
                }
            }

            return(formData);
        }
        public async Task Query_WhenInutIsValid_ShouldSkipVendorsAccordingToToPageNumberAndPageSize()
        {
            // Arrange
            var vendorQuery = new VendorQuery {
                PageSize = 2, PageNumber = 2
            };
            const string name1 = "v1";
            const string name2 = "v2";
            const string name3 = "v3";

            _efContext.Vendor.AddRange(new[]
            {
                new Vendor
                {
                    Name = name3
                },
                new Vendor
                {
                    Name = name2
                },
                new Vendor
                {
                    Name = name1
                }
            });
            _efContext.SaveChanges();

            foreach (var vendor in _efContext.Vendor)
            {
                _mapperMock.Setup(m => m.Map <VendorModel>(vendor)).Returns(new VendorModel
                {
                    Name = vendor.Name
                });
            }

            // Act
            var result = await _service.Query(vendorQuery);

            // Assert
            result.Vendors.Should().HaveCount(1);
            result.Vendors[0].Name.Should().Be(name3);
        }
예제 #10
0
        public async Task Query_WhenSearchTextIsEmpty_ShouldNotFilterBySearchText()
        {
            // Arrange
            var vendorQuery = new VendorQuery {
                PageSize = 10, PageNumber = 1
            };

            _efContext.Vendor.Add(new Vendor
            {
                Name = "vendor 1"
            });
            _efContext.Vendor.Add(new Vendor
            {
                Name = "vndor 1"
            });
            _efContext.SaveChanges();

            // Act
            var result = await _service.Query(vendorQuery);

            // Assert
            result.Vendors.Should().HaveCount(2);
        }
        public async Task Search_vendor_By_Category()
        {
            // Arrange
            await SetupVendorData();

            const int    expectedCount        = 1;
            const string expectedBudgetRegion = plugins.Constants.BudgetRegion.Japan;
            // Act
            var query = new VendorQuery
            {
                AutoComplete = false,
                PageNumber   = 1,
                Limit        = 20,
                BudgetRegion = expectedBudgetRegion
            };
            var result = await _vendorSearchService.SearchVendors(query);

            // Assert
            result.Count.Should().Be(expectedCount);
            var expectedVendor = result.Items.First();

            expectedVendor.VendorCategoryModels.Count.Should().Be(1);
            expectedVendor.VendorCategoryModels.First().RuleBudgetRegions.First().Should().Be(expectedBudgetRegion);
        }
예제 #12
0
 public VendorQuery Vendor([Inject] VendorQuery entityQuery)
 {
     return(entityQuery);
 }
예제 #13
0
 public JsonResult Get([Bind][FromQuery] VendorQuery query)
 {
     return(Json(_vendorRepo.query(query)));
 }
 public VendorEntryDataProvider(GlobalSolusindoDb db, tblM_User user, AccessControl accessControl, VendorQuery vendorQuery) : base(db, user)
 {
     this.accessControl = accessControl;
     this.vendorQuery   = vendorQuery;
 }
예제 #15
0
 public VendorListDataProvider(GlobalSolusindoDb db, tblM_User user, VendorQuery vendorQuery) : base(db, user)
 {
     this.vendorQuery = vendorQuery;
 }
        public async Task Search_Vendor_By_Category_And_BudgetRegion()
        {
            // Arrange

            var vendor1 = await EFContext.Vendor.FirstOrDefaultAsync(v => v.Name == "Vendor_1");

            if (!vendor1.Categories.Any())
            {
                await SetupVendorData();
            }
            var usCurrency = await EFContext.Currency.FirstOrDefaultAsync(a => a.Symbol == "$");

            vendor1.Categories.Add(new VendorCategory
            {
                Name = plugins.Constants.VendorCategory.UsageBuyoutContract,
                IsPreferredSupplier = false,
                HasDirectPayment    = false,
                Created             = DateTime.Now,
                Modified            = DateTime.Now,
                Currency            = usCurrency,
                DefaultCurrencyId   = usCurrency.Id,
                VendorCategoryRules = new List <VendorRule>
                {
                    //NORTH AMERICA AREA
                    new VendorRule
                    {
                        Name = "Rule 1 Usage",
                        Rule = new Rule
                        {
                            Name     = "12 Film Ltd._VendorPayment_Rule 1 Usage",
                            Created  = DateTime.Now,
                            Modified = DateTime.Now,
                            Criteria =
                                "{\"FieldName\":null,\"Operator\":\"And\",\"TargetValue\":null,\"Children\":[{\"FieldName\":\"BudgetRegion\",\"Operator\":\"Equal\",\"TargetValue\":\"NORTHERN AMERICA AREA\",\"Children\":[]},{\"FieldName\":\"CostType\",\"Operator\":\"Equal\",\"TargetValue\":\"Buyout\",\"Children\":[]},{\"FieldName\":\"IsAIPE\",\"Operator\":\"Equal\",\"TargetValue\":\"False\",\"Children\":[]},{\"FieldName\":\"TotalCostAmount\",\"Operator\":\"GreaterThanOrEqual\",\"TargetValue\":\"0\",\"Children\":[]}]}",
                            Definition =
                                "{\"DetailedSplit\":false,\"Splits\":[{\"CostTotalName\":\"CostTotal\",\"AIPESplit\":0.0,\"OESplit\":0.0,\"FPSplit\":0.0,\"FASplit\":1.0}]}",
                            Priority = 0,
                            Type     = RuleType.VendorPayment
                        }
                    },
                    //GREATER CHINA AREA
                    new VendorRule
                    {
                        Name = "Rule 2 Usage",
                        Rule = new Rule
                        {
                            Name     = "12 Film Ltd._VendorPayment_Rule 2 Usage",
                            Created  = DateTime.Now,
                            Modified = DateTime.Now,
                            Criteria =
                                "{\"FieldName\":null,\"Operator\":\"And\",\"TargetValue\":null,\"Children\":[{\"FieldName\":\"BudgetRegion\",\"Operator\":\"Equal\",\"TargetValue\":\"GREATER CHINA AREA\",\"Children\":[]},{\"FieldName\":\"CostType\",\"Operator\":\"Equal\",\"TargetValue\":\"Buyout\",\"Children\":[]},{\"FieldName\":\"IsAIPE\",\"Operator\":\"Equal\",\"TargetValue\":\"False\",\"Children\":[]},{\"FieldName\":\"TotalCostAmount\",\"Operator\":\"GreaterThanOrEqual\",\"TargetValue\":\"0\",\"Children\":[]}]}",
                            Definition =
                                "{\"DetailedSplit\":false,\"Splits\":[{\"CostTotalName\":\"CostTotal\",\"AIPESplit\":0.0,\"OESplit\":0.5,\"FPSplit\":0.0,\"FASplit\":1.0}]}",
                            Priority = 0,
                            Type     = RuleType.VendorPayment
                        }
                    }
                }
            });

            EFContext.Update(vendor1);
            EFContext.SaveChanges();
            await ReindexItem <VendorSearchItem, Vendor>(vendor1, Constants.ElasticSearchIndices.VendorIndexName);

            const int    expectedCount        = 1;
            const string expectedBudgetRegion = plugins.Constants.BudgetRegion.China;
            // Act
            var query = new VendorQuery
            {
                AutoComplete = false,
                PageNumber   = 1,
                Limit        = 20,
                BudgetRegion = expectedBudgetRegion,
                Category     = plugins.Constants.VendorCategory.UsageBuyoutContract
            };
            var result = await _vendorSearchService.SearchVendors(query);

            // Assert
            result.Count.Should().Be(expectedCount);
            var expectedVendor = result.Items.First();

            expectedVendor.VendorCategoryModels.Count.Should().Be(1);
            expectedVendor.VendorCategoryModels.First().RuleBudgetRegions.Should().Contain(expectedBudgetRegion);
        }