Modified logic to get latest response based on survetid, locationId, ane employee id
This commit is contained in:
parent
dd5351665e
commit
9b8e8ffad2
@ -439,7 +439,6 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
var answersList = await answerServiceProvider.getAnswersAsync(token);
|
var answersList = await answerServiceProvider.getAnswersAsync(token);
|
||||||
if (answersList == null || !answersList.Any())
|
if (answersList == null || !answersList.Any())
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
//get all the answers for the particular survey
|
//get all the answers for the particular survey
|
||||||
var surveyAnswers = answersList.Join(
|
var surveyAnswers = answersList.Join(
|
||||||
surveyResponses,
|
surveyResponses,
|
||||||
@ -535,14 +534,14 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
surveyResponse.LocationId,
|
surveyResponse.LocationId,
|
||||||
surveyResponse.EmployeeId,
|
surveyResponse.EmployeeId,
|
||||||
surveyResponse.ClientDevice,
|
surveyResponse.ClientDevice,
|
||||||
surveyResponse.KeyAnswerResult,
|
// surveyResponse.KeyAnswerResult,
|
||||||
surveyResponse.Longitute,
|
surveyResponse.Longitute,
|
||||||
surveyResponse.Latitude,
|
surveyResponse.Latitude,
|
||||||
Employee = employee,
|
Employee = employee,
|
||||||
answers = from ans in answers
|
answers = from ans in answers
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
ans.QuestionId,
|
// ans.QuestionId,
|
||||||
ans.Id,
|
ans.Id,
|
||||||
ans.AnswerText,
|
ans.AnswerText,
|
||||||
ans.Comment,
|
ans.Comment,
|
||||||
@ -578,6 +577,11 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.EmployeeId == employeeid).ToListAsync();
|
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.EmployeeId == employeeid).ToListAsync();
|
||||||
employee = await employeeServiceProvider.getEmployeeAsync(employeeid, token);
|
employee = await employeeServiceProvider.getEmployeeAsync(employeeid, token);
|
||||||
}
|
}
|
||||||
|
surveyResonses = surveyResonses
|
||||||
|
.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();
|
||||||
|
|
||||||
var answers = await answerServiceProvider.getAnswersAsync(token);
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
||||||
@ -594,16 +598,16 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
r.LocationId,
|
r.LocationId,
|
||||||
r.EmployeeId,
|
r.EmployeeId,
|
||||||
r.ClientDevice,
|
r.ClientDevice,
|
||||||
r.KeyAnswerResult,
|
// r.KeyAnswerResult,
|
||||||
r.Longitute,
|
r.Longitute,
|
||||||
r.Latitude,
|
r.Latitude,
|
||||||
Employee = (from e in employees where e.Id == r.EmployeeId select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
// Employee = (from e in employees where e.Id == r.EmployeeId select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
||||||
answers = from ans in answers
|
answers = from ans in answers
|
||||||
where ans.SurveyResponseId == r.Id
|
where ans.SurveyResponseId == r.Id
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
ans.Id,
|
ans.Id,
|
||||||
ans.QuestionId,
|
// ans.QuestionId,
|
||||||
ans.AnswerText,
|
ans.AnswerText,
|
||||||
ans.Comment,
|
ans.Comment,
|
||||||
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||||
@ -646,7 +650,11 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
surveyResonses = surveyResonses
|
||||||
|
.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();
|
||||||
var answers = await answerServiceProvider.getAnswersAsync(token);
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
||||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
var attachments = await attachmentServiceProvider.getAttachmentsAsync(token);
|
||||||
@ -659,16 +667,16 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
r.LocationId,
|
r.LocationId,
|
||||||
r.EmployeeId,
|
r.EmployeeId,
|
||||||
r.ClientDevice,
|
r.ClientDevice,
|
||||||
r.KeyAnswerResult,
|
// r.KeyAnswerResult,
|
||||||
r.Longitute,
|
r.Longitute,
|
||||||
r.Latitude,
|
r.Latitude,
|
||||||
Employee = employeeid != 0 ? _employee : (from e in employees where r.EmployeeId == e.Id select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
// Employee = employeeid != 0 ? _employee : (from e in employees where r.EmployeeId == e.Id select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
||||||
answers = from ans in answers
|
answers = from ans in answers
|
||||||
where ans.SurveyResponseId == r.Id
|
where ans.SurveyResponseId == r.Id
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
ans.Id,
|
ans.Id,
|
||||||
ans.QuestionId,
|
// ans.QuestionId,
|
||||||
ans.AnswerText,
|
ans.AnswerText,
|
||||||
ans.Comment,
|
ans.Comment,
|
||||||
Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||||
@ -907,7 +915,11 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
surveyResonses = surveyResonses
|
||||||
|
.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();
|
||||||
var answers = await answerServiceProvider.getAnswersAsync(token);
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
var questions = await questionServiceProvider.getQuestionsAsync(null, token);
|
||||||
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
||||||
@ -921,16 +933,16 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
r.LocationId,
|
r.LocationId,
|
||||||
r.EmployeeId,
|
r.EmployeeId,
|
||||||
r.ClientDevice,
|
r.ClientDevice,
|
||||||
r.KeyAnswerResult,
|
// r.KeyAnswerResult,
|
||||||
r.Longitute,
|
r.Longitute,
|
||||||
r.Latitude,
|
r.Latitude,
|
||||||
Employee = (from e in employees where r.EmployeeId == e.Id select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
// Employee = (from e in employees where r.EmployeeId == e.Id select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
||||||
answers = from ans in answers
|
answers = from ans in answers
|
||||||
where ans.SurveyResponseId == r.Id
|
where ans.SurveyResponseId == r.Id
|
||||||
|
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
ans.QuestionId,
|
// ans.QuestionId,
|
||||||
ans.Id,
|
ans.Id,
|
||||||
ans.AnswerText,
|
ans.AnswerText,
|
||||||
ans.Comment,
|
ans.Comment,
|
||||||
@ -973,7 +985,11 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
surveyResponses = surveyResponses
|
||||||
|
.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();
|
||||||
//var surveyResponses = await surveyResponseDbContext.Responses.Where(x => x.SurveyId == survey.Id).ToListAsync();
|
//var surveyResponses = await surveyResponseDbContext.Responses.Where(x => x.SurveyId == survey.Id).ToListAsync();
|
||||||
// var employees = await employeeServiceProvider.getEmployeesAsync();
|
// var employees = await employeeServiceProvider.getEmployeesAsync();
|
||||||
var answers = await answerServiceProvider.getAnswersAsync(token);
|
var answers = await answerServiceProvider.getAnswersAsync(token);
|
||||||
@ -987,10 +1003,10 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
r.LocationId,
|
r.LocationId,
|
||||||
r.EmployeeId,
|
r.EmployeeId,
|
||||||
r.ClientDevice,
|
r.ClientDevice,
|
||||||
r.KeyAnswerResult,
|
// r.KeyAnswerResult,
|
||||||
r.Longitute,
|
r.Longitute,
|
||||||
r.Latitude,
|
r.Latitude,
|
||||||
Employee = (from e in employees where r.EmployeeId == e.Id select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
// Employee = (from e in employees where r.EmployeeId == e.Id select new { e.Id, e.Name, e.BirthDate, e.Email, e.OfficePhoneNumber }).SingleOrDefault(),
|
||||||
answers = from ans in answers
|
answers = from ans in answers
|
||||||
where ans.SurveyResponseId == r.Id
|
where ans.SurveyResponseId == r.Id
|
||||||
&& ans.QuestionId == question.Id
|
&& ans.QuestionId == question.Id
|
||||||
@ -998,7 +1014,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
|||||||
|
|
||||||
select new
|
select new
|
||||||
{
|
{
|
||||||
ans.QuestionId,
|
// ans.QuestionId,
|
||||||
AnswerId = ans.Id,
|
AnswerId = ans.Id,
|
||||||
ans.AnswerText,
|
ans.AnswerText,
|
||||||
ans.Comment,
|
ans.Comment,
|
||||||
|
Loading…
Reference in New Issue
Block a user