public CompanySearchFilterVm search(CompanySearchFilterVm input) { using (var db = new MainDb()) { var query = db.companies .Include(i => i.contactInfo) .Include(c => c.companyCategoryLookupses) .OrderByDescending(b => b.created) .Where(e => (input.isActive == null || e.isActive == input.isActive) && (e.companyName.Contains(input.keyword) || string.IsNullOrEmpty(input.keyword)) ); if (input.paging != null) { input.paging.totalCount = query.Count(); query = query .Skip(input.paging.skip) .Take(input.paging.rowCount); } input.result = query.ToList <object>(); return(input); } }
public CompanySearchFilterVm contactsByProvider(CompanySearchFilterVm input) { using (var db = new MainDb()) { var query = db.companies .Include(i => i.contactInfo) .Include(c => c.companyCategoryLookupses) .Include(k => k.companyCategoryLookupses.Select(v => v.companyCategoryType)) .Include(j => j.referralses.Select(m => m.surveyAnswerses)) .OrderByDescending(b => b.created) .Where(e => (input.isActive == null || e.isActive == input.isActive) && (e.companyName.Contains(input.keyword) || string.IsNullOrEmpty(input.keyword)) && (e.companyCategoryLookupses.Any(b => b.companyCategoryTypeId == input.companyCategoryTypeId) || input.companyCategoryTypeId == null) ); input.result = query.ToList <object>(); if (input.result != null) { var items = query.Select(i => new { Id = i.companyId, CompanyName = i.companyName, FirstName = i.contactInfo.firstName, LastName = i.contactInfo.lastName, WorkPhone = i.contactInfo.workPhone, License = i.license, Bonded = i.bonded, AgreementSigned = SqlFunctions.DateName("day", i.agreementSigned).Trim() + "/" + SqlFunctions.StringConvert((double)i.agreementSigned.Value.Month).TrimStart() + "/" + SqlFunctions.DateName("year", i.agreementSigned), //score_up = (i.referralses.Any(r => r.companyId == i.companyId) // ? i.referralses.Sum(x => x.surveyAnswerses.Sum(r => r.answer)) * 20 // : null), //score_dn = i.referralses.Sum(t => t.surveyAnswerses.Count()), Score = (i.referralses.Any(r => r.companyId == i.companyId) ? (decimal?)i.referralses.Sum(x => x.surveyAnswerses.Sum(r => r.answer)) * 20 / i.referralses.Sum(t => t.surveyAnswerses.Count()) : null), ScoreCount = (i.referralses.Any(r => r.companyId == i.companyId) ? i.referralses.Where(e => e.surveyAnswerses.Any(b => b.referralId != null)).Count() : 0) }).ToList <object>(); input.result = items; } return(input); } }
public void getAllOfGivenCategory2Test() { CompanySearchFilterVm a = new CompanySearchFilterVm(); a.isActive = true; a.companyCategoryTypeId = 1; // dentists CompanySearchFilterVm b = companyManager.contactsByProvider(a); // examine input.result Assert.IsTrue(b.result.Count == 4); }
public FileResult Export(CompanySearchFilterVm input = null) { if (this.ModelState.IsValid) { input.paging = null; //input = companyManager.exportSearch(input); input = companyManager.contactsByProvider(input); var file = ImportExportHelper.exportToCsv(input.result, true); if (file != null) { return(File(file.FullName, "Application/octet-stream", file.Name)); } else { this.Response.Write("<script> alert('No Data found based on the criteria!'); window.history.back(); </script>"); } } return(null); }
public ActionResult Index(CompanySearchFilterVm input = null, Paging paging = null) { ViewBag.Title = "Providers"; if (input == null) { input = new CompanySearchFilterVm(); } input.paging = paging; if (this.ModelState.IsValid) { if (input.submitButton != null) { input.paging.pageNumber = 1; } input = companyManager.search(input); return(View(input)); } return(View(input)); }
public CompanySearchFilterVm search(CompanySearchFilterVm input) { using (var db = new MainDb()) { var query = db.companies .Include(i => i.contactInfo) .Include(s => s.referralses) .Include("referralses.surveyAnswerses") .Include(c => c.companyCategoryLookupses) .Include(k => k.companyCategoryLookupses.Select(v => v.companyCategoryType)) .OrderByDescending(b => b.created) .Where(e => (input.isActive == null || e.isActive == input.isActive) && (e.companyName.Contains(input.keyword) || string.IsNullOrEmpty(input.keyword)) && (e.companyCategoryLookupses.Any(b => b.companyCategoryTypeId == input.companyCategoryTypeId) || input.companyCategoryTypeId == null) ); if (input.paging != null) { input.paging.totalCount = query.Count(); query = query .Skip(input.paging.skip) .Take(input.paging.rowCount); } input.result = query .ToList() .Select(c => { var surveyAnswers = c.referralses.SelectMany(r => r.surveyAnswerses); var score = (surveyAnswers.Count(u => u.answer != null) == 0 ? null : (decimal?)surveyAnswers.Select(u => u.answer).Sum() / surveyAnswers.Count(u => u.answer != null)) * 20; c.score = (score != null) ? (decimal?)Math.Round(score.GetValueOrDefault(), 2) : null; c.scoreCount = surveyAnswers.Select(u => u.referralId).Distinct().Count(); return(c); }) .ToList <object>(); return(input); } }