diff --git a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs index 94e6d58..211a394 100644 --- a/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs +++ b/DamageAssesmentApi/DamageAssesment.Api.Responses/Providers/SurveyResponsesProvider.cs @@ -56,16 +56,20 @@ namespace DamageAssesment.Api.Responses.Providers try { logger?.LogInformation("Querying to get SurveyResponse object from DB"); - IQueryable listSurveyResponse = null; + List listSurveyResponse = null; if (employeeid == 0) { - listSurveyResponse = surveyResponseDbContext.SurveyResponses.Where(s => s.SurveyId == surveyId); + listSurveyResponse = surveyResponseDbContext.SurveyResponses.Where(s => s.SurveyId == surveyId).ToList(); } else { - listSurveyResponse = surveyResponseDbContext.SurveyResponses.Where(s => s.SurveyId == surveyId && s.EmployeeId == employeeid); + listSurveyResponse = surveyResponseDbContext.SurveyResponses.Where(s => s.SurveyId == surveyId && s.EmployeeId == employeeid).ToList(); } - + listSurveyResponse = listSurveyResponse + .OrderByDescending(obj => obj.Id) + .GroupBy(obj => new { obj.SurveyId, obj.EmployeeId, obj.LocationId }) + .Select(group => group.FirstOrDefault()) // or .FirstOrDefault() if you want to handle empty groups + .ToList(); if (listSurveyResponse.Any()) { var answers = await getAnswersByRegionAndSurveyIdAsync(listSurveyResponse); @@ -417,7 +421,7 @@ namespace DamageAssesment.Api.Responses.Providers } //Method to get Answers by region with surveyId as input parameter - private async Task getAnswersByRegionAndSurveyIdAsync(IQueryable surveyResponses) + private async Task getAnswersByRegionAndSurveyIdAsync(List surveyResponses) { try {