public List<ChecklistIndexViewModel> QueryUsingQueryObject(string clientAccountNumber, string checklistCreatedBy, string visitDate, string status, bool includeDeleted) { try { DateTime validVisitDate; DateTime? nullableValidVisitDate = null; if (!string.IsNullOrEmpty(visitDate) && DateTime.TryParse(visitDate, out validVisitDate)) { nullableValidVisitDate = validVisitDate; } var clientDetail = _clientDetailsService.GetByClientAccountNumber(clientAccountNumber); var clientDetailId = (clientDetail != null && clientDetail.Id != -1) ? (int?) clientDetail.Id : null; var checklists = _getChecklistsQuery.Execute(clientDetailId, checklistCreatedBy, nullableValidVisitDate, status, null); if (checklists != null) { //store the site details and customer details retrieved from the Client Details Service so that we don't have to make multiple requests for the same ids var visitSites = new List<SiteAddressResponse>(); var clientDetails = new List<CompanyDetails>(); return checklists.Select(x => { var can = GetClientAccountNumber(clientDetails, x.ClientId); var visitSite = GetVisitSiteAddress(visitSites, x.ClientId, x.SiteId); var qaAdvisor = (x.QaAdvisorId.HasValue) ? _qaAdvisorRepository.GetById(x.QaAdvisorId.Value) : null; var checklistViewModel = new ChecklistIndexViewModel() { Id = x.Id, Title = "Title", VisitDate = x.VisitDate, VisitBy = x.VisitBy, CreatedOn = x.CreatedOn, CreatedBy = x.CreatedBy, Site = new SiteViewModel() {Id = x.SiteId.HasValue ? x.SiteId.Value : -1}, Status = x.Status, CAN = can , Deleted = x.Deleted , HasQaComments = x.HasQaComments , QaAdvisor = qaAdvisor != null ? new QaAdvisorViewModel() { Id = qaAdvisor.Id, Forename = qaAdvisor.Forename, Email = qaAdvisor.Email, Fullname = qaAdvisor.Forename + ' ' + qaAdvisor.Surname, Initials = qaAdvisor.Forename + ' ' + qaAdvisor.Surname.Substring(0, 1) } : null , ClientName = "" }; checklistViewModel.Site.Id = visitSite != null ? (int) visitSite.Id : -1; checklistViewModel.Site.Postcode = visitSite != null ? visitSite.Postcode : ""; checklistViewModel.Site.SiteName = visitSite != null ? visitSite.SiteName : ""; checklistViewModel.Site.Address1 = visitSite != null ? visitSite.Address1 : ""; checklistViewModel.Site.Address2 = visitSite != null ? visitSite.Address2 : ""; checklistViewModel.Site.Address3 = visitSite != null ? visitSite.Address3 : ""; checklistViewModel.Site.Address4 = visitSite != null ? visitSite.Address4 : ""; return checklistViewModel; }).ToList(); } return new List<ChecklistIndexViewModel>(); } catch (Exception ex) { LogManager.GetLogger(typeof (ChecklistController)).Error(ex); throw; } }
public List<ChecklistIndexViewModel> Query(string clientAccountNumber, string checklistCreatedBy, string visitDate, string status, bool includeDeleted, bool excludeSubmitted, string statusFromDate, string statusToDate) { try { DateTime validVisitDate; DateTime? nullableValidVisitDate = null; if (!string.IsNullOrEmpty(visitDate) && DateTime.TryParse(visitDate, out validVisitDate)) { nullableValidVisitDate = validVisitDate; } DateTime validFromDate; DateTime? nullablevalidFromDate = null; if (!string.IsNullOrEmpty(statusFromDate) && DateTime.TryParse(statusFromDate, out validFromDate)) { nullablevalidFromDate = validFromDate; } DateTime validToDate; DateTime? nullablevalidToDate = null; if (!string.IsNullOrEmpty(statusToDate) && DateTime.TryParse(statusToDate, out validToDate)) { nullablevalidToDate = validToDate; } int? clientDetailId = null; if (!string.IsNullOrEmpty(clientAccountNumber)) { //if client not found then return empty list var clientDetail = _clientDetailsService.GetByClientAccountNumber(clientAccountNumber); if (clientDetail == null || clientDetail.Id == -1) { return new List<ChecklistIndexViewModel>(); } clientDetailId = (int?) clientDetail.Id; } QaAdvisor qaAdvisorToSearchFor = null; if (checklistCreatedBy != null) { qaAdvisorToSearchFor = _qaAdvisorRepository.GetByFullname(checklistCreatedBy); } BuildQuery(checklistCreatedBy, status, includeDeleted, excludeSubmitted, nullablevalidFromDate, nullablevalidToDate, nullableValidVisitDate, clientDetailId, checklistCreatedBy, qaAdvisorToSearchFor); var checklists = _getChecklistsQuery.Execute(); if (checklists != null) { //store the site details and customer details retrieved from the Client Details Service so that we don't have to make multiple requests for the same ids var visitSites = new List<SiteAddressResponse>(); var clientDetails = new List<CompanyDetails>(); var checklistIndexViewModelList = checklists.Select(x => { var can = GetClientAccountNumber(clientDetails, x.ClientId); var visitSite = GetVisitSiteAddress(visitSites, x.ClientId, x.SiteId); var checklistViewModel = new ChecklistIndexViewModel() { Id = x.Id, Title = "Title", VisitDate = x.VisitDate.ToUniversalTime(), VisitBy = x.VisitBy, CreatedOn = x.CreatedOn.ToUniversalTime(), CreatedBy = x.CreatedBy, Site = new SiteViewModel() {Id = x.SiteId.HasValue ? x.SiteId.Value : -1}, Status = x.Deleted ? "Deleted" : x.Status, CAN = can, Deleted = x.Deleted, HasQaComments = x.HasQaComments, HasUnresolvedQaComments = !x.HasResolvedQaComments, QaAdvisor = x.QaAdvisorId.HasValue ? new QaAdvisorViewModel() { Id = x.QaAdvisorId.Value, Initials = "" //x.QaAdvisorInitials, } : null, ClientName = "", ExecutiveSummaryDocumentLibraryId = x.ExecutiveSummaryDocumentLibraryId, CompletedOn = x.CompletedDate.ToUniversalTime(), SubmittedOn = x.SubmittedDate.ToUniversalTime(), UpdatedOn = x.UpdatedOn.ToUniversalTime(), QaAdvisorAssignedOn = x.QaAdvisorAssignedOn.ToUniversalTime(), ExecutiveSummaryUpdateRequired = x.ExecutiveSummaryUpdateRequired, ExecutiveSummaryQACommentsResolved = x.ExecutiveSummaryQACommentsResolved, TemplateName = x.TemplateName, QACommentStatus = x.QACommentStatus() }; checklistViewModel.Site.Id = visitSite != null ? (int) visitSite.Id : -1; checklistViewModel.Site.Postcode = visitSite != null ? visitSite.Postcode : ""; checklistViewModel.Site.SiteName = visitSite != null ? visitSite.SiteName : ""; checklistViewModel.Site.Address1 = visitSite != null ? visitSite.Address1 : ""; checklistViewModel.Site.Address2 = visitSite != null ? visitSite.Address2 : ""; checklistViewModel.Site.Address3 = visitSite != null ? visitSite.Address3 : ""; checklistViewModel.Site.Address4 = visitSite != null ? visitSite.Address4 : ""; checklistViewModel.Favourite = checklistViewModel.Deleted == false ? GetFavouriteChecklist(x.Id) : null; return checklistViewModel; }).ToList(); return checklistIndexViewModelList; } return new List<ChecklistIndexViewModel>(); } catch (Exception ex) { LogManager.GetLogger(typeof (ChecklistController)).Error(ex); throw; } }