public ViolationDetailsDTO GetViolationDetailsByAsset(string LocationCode, DateTime?StartDateTime, int?ViolationTypeId) { var res = new ViolationDetailsDTO(); try { res.AssetsDetails = new AssetDetailsForViolation(); res.TotalsByTypes = operationalDataContext.fn_GroupViolationsByLocationAndType(StartDateTime, ViolationTypeId, LocationCode).Select(Violation => new TotalViolationValuesByTypes { TotalCountOfViolations = Violation.ViolationCountByType.Value, VioltionTypeId = Violation.ViolationTypeId, VioltionTypeName = Violation.ViolationTypeName }).ToList(); res.TotalsByStatus = operationalDataContext.fn_GroupViolationsByLocationAndStatus(StartDateTime, ViolationTypeId, LocationCode).Select(Violation => new TotalViolationValuesByStatus { TotalCountOfViolations = Violation.ViolationsCountByStatus.Value, VioltionStatusId = Violation.ViolationStatusId, VioltionStatusName = Violation.ViolationStatusName }).ToList(); res.AssetsDetails = operationalDataContext.AssetsViews.Where(asset => asset.LocationCode == LocationCode).Select(assetdata => new AssetDetailsForViolation { AssetName = assetdata.Name, AssetStatus = assetdata.AssetStatus, LastMainteanceDate = "", VendorName = assetdata.VendorName }).FirstOrDefault(); } catch (Exception) { } return(res); }