public List <ParkSiteDto> GetParkSites(SearchParameter searchParam) { _context.Configuration.ProxyCreationEnabled = false; List <ParkSiteDto> result = null; if (searchParam != null) { List <ParkSite> items = null; ParkSiteDto ParkDto = GetParkSiteObject(searchParam); string SiteNumber = ParkDto.SiteNumber; decimal Premium = Convert.ToDecimal(ParkDto.Premium); decimal Liability = ParkDto.Liability.HasValue ? Convert.ToDecimal(ParkDto.Liability) : 0; decimal PersonalProperty = ParkDto.PersonalProperty.HasValue ? Convert.ToDecimal(ParkDto.PersonalProperty) : 0; if (!searchParam.IsFilterValue) { searchParam.TotalRecordCount = _context.ParkSites.Where(p => p.IsActive == true).Count(); items = _context.ParkSites.Include("State") .Include("Park") .Include("Quote") .Include("Quote.Company").Where(p => p.IsActive == true). OrderByDescending(x => x.Id) .Skip(searchParam.StartIndex).Take((searchParam.PageSize > 0 ? searchParam.PageSize : searchParam.TotalRecordCount)). ToList(); } else { DateTime dtoEffectiveDate = DateTime.Now; DateTime dtoExpiryDate = DateTime.Now; if (!string.IsNullOrEmpty(ParkDto.EffectiveDate)) { dtoEffectiveDate = DateTime.Parse(ParkDto.EffectiveDate); } else if (!string.IsNullOrEmpty(ParkDto.ExpiryDate)) { dtoExpiryDate = DateTime.Parse(ParkDto.ExpiryDate); } items = _context.ParkSites.Include("State") .Include("Park") .Include("Quote") .Include("Quote.Company") .Where(m => m.IsActive == true && (ParkDto.Id == 0 ? 1 == 1 : m.Id == ParkDto.Id) && (ParkDto.ParkId == 0 ? 1 == 1 : m.ParkId == ParkDto.ParkId) && (string.IsNullOrEmpty(ParkDto.ParkName) ? 1 == 1 : m.Park.ParkName.ToUpper().StartsWith(ParkDto.ParkName.ToUpper())) && (string.IsNullOrEmpty(SiteNumber) ? 1 == 1 : m.SiteNumber.ToUpper().StartsWith(SiteNumber)) && (Premium == 0 ? 1 == 1 : SqlFunctions.StringConvert((double)m.Quote.Premium).StartsWith(SqlFunctions.StringConvert((double)Premium))) && (string.IsNullOrEmpty(ParkDto.CompanyName) ? 1 == 1 : m.Quote.Company.Name.ToUpper().StartsWith(ParkDto.CompanyName.ToUpper())) && (string.IsNullOrEmpty(ParkDto.SiteRental) ? 1 == 1 : m.SiteRental.ToUpper().StartsWith(ParkDto.SiteRental.ToUpper())) && (PersonalProperty == 0 ? 1 == 1 : SqlFunctions.StringConvert((double)m.Quote.PersonalProperty).StartsWith(SqlFunctions.StringConvert((double)PersonalProperty))) && (Liability == 0 ? 1 == 1 : SqlFunctions.StringConvert((double)m.Quote.Liability).StartsWith(SqlFunctions.StringConvert((double)Liability))) && (string.IsNullOrEmpty(ParkDto.TenantFirstName) ? 1 == 1 : m.TenantFirstName.ToUpper().StartsWith(ParkDto.TenantFirstName)) && (string.IsNullOrEmpty(ParkDto.TenantLastName) ? 1 == 1 : m.TenantLastName.ToUpper().StartsWith(ParkDto.TenantLastName)) && (string.IsNullOrEmpty(ParkDto.EffectiveDate) ? 1 == 1 : (m.Quote.EffectiveDate.HasValue ? m.Quote.EffectiveDate.Value : DateTime.MinValue) == dtoEffectiveDate) && (string.IsNullOrEmpty(ParkDto.ExpiryDate) ? 1 == 1 : (m.Quote.ExpiryDate.HasValue ? m.Quote.ExpiryDate.Value : DateTime.MinValue) == dtoExpiryDate) && m.IsActive == true ).ToList(); searchParam.TotalRecordCount = items.Count(); } result = items.Select(x => new ParkSiteDto() { Id = x.Id, ParkName = (x.Park != null ? x.Park.ParkName : string.Empty), ParkId = Convert.ToInt64(x.ParkId), CompanyName = (x.Quote != null ? Convert.ToString(x.Quote.Company != null ? x.Quote.Company.Name : "") : ""), SiteRental = x.SiteRental, TenantFirstName = x.TenantFirstName, TenantLastName = x.TenantLastName, Liability = (x.Quote != null ? Convert.ToDecimal(x.Quote.Liability) : 0), PersonalProperty = (x.Quote != null ? Convert.ToInt32(x.Quote.PersonalProperty) : 0), EffectiveDate = (x.Quote != null ? Convert.ToString(x.Quote.EffectiveDate.HasValue ? x.Quote.EffectiveDate.Value.ToShortDateString() : null) : ""), ExpiryDate = (x.Quote != null ? Convert.ToString(x.Quote.ExpiryDate.HasValue ? x.Quote.ExpiryDate.Value.ToShortDateString() : null) : ""), Premium = (x.Quote != null ? Convert.ToInt32(x.Quote.Premium) : 0), SiteNumber = x.SiteNumber, } ).ToList(); } searchParam.SearchedCount = (!searchParam.IsFilterValue ? searchParam.TotalRecordCount : result.Count); return(result); }
private ParkSiteDto GetParkSiteObject(SearchParameter searchParam) { ParkSiteDto parkObj = new ParkSiteDto(); if (searchParam != null) { var isFilterValue = searchParam.SearchColumnValue.Any(e => !string.IsNullOrWhiteSpace(e)); searchParam.IsFilterValue = isFilterValue; if ((searchParam.SearchColumn != null && searchParam.SearchColumn.Count > 0) && searchParam.SearchColumn.Count == searchParam.SearchColumnValue.Count && isFilterValue) // minus -1 means, skipping action column from search list { var filterValueProp = new Dictionary <string, string>(); for (int idx = 0; idx < searchParam.SearchColumnValue.Count; idx++) { if (!string.IsNullOrWhiteSpace(searchParam.SearchColumnValue[idx])) { if (searchParam.SearchColumn[idx] == "Id") { parkObj.Id = Convert.ToInt32(searchParam.SearchColumnValue[idx]); } else if (searchParam.SearchColumn[idx] == "ParkId") { parkObj.ParkId = Convert.ToInt32(searchParam.SearchColumnValue[idx]); } else if (searchParam.SearchColumn[idx] == "ParkName") { parkObj.ParkName = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "SiteNumber") { parkObj.SiteNumber = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "TenantFirstName") { parkObj.TenantFirstName = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "TenantLastName") { parkObj.TenantLastName = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "Premium") { parkObj.Premium = Convert.ToDecimal(searchParam.SearchColumnValue[idx]); } else if (searchParam.SearchColumn[idx] == "ExpiryDate") { parkObj.ExpiryDate = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "EffectiveDate") { parkObj.EffectiveDate = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "SiteRental") { parkObj.SiteRental = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "CompanyName") { parkObj.CompanyName = searchParam.SearchColumnValue[idx]; } else if (searchParam.SearchColumn[idx] == "Liability") { parkObj.Liability = Convert.ToDecimal(searchParam.SearchColumnValue[idx]); } else if (searchParam.SearchColumn[idx] == "PersonalProperty") { parkObj.PersonalProperty = Convert.ToDecimal(searchParam.SearchColumnValue[idx]); } } } } } return(parkObj); }