public IQueryable <ContractServiceModel> SearchContract(ContractSearchViewModel contractSearchInputModel) { string id = contractSearchInputModel.CntrctId ?? ""; string status = contractSearchInputModel.Status ?? ""; IQueryable <ContractServiceModel> allContractsViewModel; if (!id.Equals("") && !(status == "")) { Status statusParsed = (Status)Enum.Parse(typeof(Status), status); allContractsViewModel = this.context.Contracts.Include(prod => prod.Product).Include(pers => pers.Person).Where(c => c.Id == long.Parse(id) && c.Status == statusParsed).To <ContractServiceModel>(); } else if (!id.Equals("") && status == "") { allContractsViewModel = this.context.Contracts.Include(prod => prod.Product).Include(pers => pers.Person).Where(c => c.Id == long.Parse(id)).To <ContractServiceModel>(); } else if (id.Equals("") && !(status == "")) { Status statusParsed = (Status)Enum.Parse(typeof(Status), status); allContractsViewModel = this.context.Contracts.Include(prod => prod.Product).Include(pers => pers.Person).Where(c => c.Status == statusParsed).To <ContractServiceModel>(); } else { allContractsViewModel = this.GetAllContracts(); } return(allContractsViewModel); }
public async Task <IActionResult> Search(ContractSearchViewModel contractSearchInputModel) { List <ContractServiceModel> contractsFoundService = await this.contractService.SearchContract(contractSearchInputModel).ToListAsync(); List <ContractViewModel> contractsFound = contractsFoundService .Select(d => d.To <ContractViewModel>()).ToList(); List <ContractViewModel> contractsFoundPage = contractsFound.Skip((contractSearchInputModel.CurrentPage - 1) * contractSearchInputModel.PageSize).Take(contractSearchInputModel.PageSize).ToList(); contractSearchInputModel.Count = contractsFound.Count; contractSearchInputModel.ContractsFound = contractsFoundPage; return(this.View(contractSearchInputModel)); }
public async Task SearchContract_EmptyCriteria_ShouldReturnAny() { string errorMessagePrefix = "ContractService SearchContract(ContractServiceModel) method does not work properly."; var context = HealthInsDbContextInMemoryFactory.InitializeContext(); this.contractService = new ContractService(context); await SeedData(context); ContractSearchViewModel contractSearchInputModel = new ContractSearchViewModel() { }; var actualResults = this.contractService.SearchContract(contractSearchInputModel); Assert.True(actualResults.Any(), errorMessagePrefix); }
public async Task FindContractsByDistributorId_ShouldReturnAny() { string errorMessagePrefix = "ContractService FindContractsByDistributorId(ContractServiceModel) method does not work properly."; var context = HealthInsDbContextInMemoryFactory.InitializeContext(); this.contractService = new ContractService(context); await SeedData(context); ContractSearchViewModel contractSearchInputModel = new ContractSearchViewModel() { }; var distributor = context.Distributors.SingleOrDefault(d => d.FullName == "Dist3"); var actualResults = this.contractService.FindContractsByDistributorId(distributor.Id); Assert.True(actualResults.Any(), errorMessagePrefix); }
public async Task SearchContract_EmptyStatus_ShouldReturnResults() { string errorMessagePrefix = "ContractService SearchContract(ContractServiceModel) method does not work properly."; var context = HealthInsDbContextInMemoryFactory.InitializeContext(); this.contractService = new ContractService(context); await SeedData(context); ContractSearchViewModel contractSearchInputModel = new ContractSearchViewModel() { CntrctId = "1", Status = "" }; var actualResults = this.contractService.SearchContract(contractSearchInputModel); Assert.True(actualResults.FirstOrDefault().Id == 1, errorMessagePrefix); }