forked from MDCPS/DamageAssessment_Backend
Add EmployeeId as filter in the endpoints, add endpoints to get all active and historical surveys for a particular employee
This commit is contained in:
@ -31,7 +31,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
this.questionServiceProvider = questionServiceProvider;
|
||||
this.surveyServiceProvider = surveyServiceProvider;
|
||||
this.mapper = mapper;
|
||||
// seedData();
|
||||
// seedData();
|
||||
}
|
||||
|
||||
private void seedData()
|
||||
@ -48,12 +48,20 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic Answers, string ErrorMessage)> GetAnswersByRegionAsync(int surveyId)
|
||||
public async Task<(bool IsSuccess, dynamic Answers, string ErrorMessage)> GetAnswersByRegionAsync(int surveyId, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
||||
var listSurveyResponse = surveyResponseDbContext.SurveyResponses.Where(s => s.SurveyId == surveyId);
|
||||
IQueryable<Db.SurveyResponse> listSurveyResponse = null;
|
||||
if (employeeid == 0)
|
||||
{
|
||||
listSurveyResponse = surveyResponseDbContext.SurveyResponses.Where(s => s.SurveyId == surveyId);
|
||||
}
|
||||
else
|
||||
{
|
||||
listSurveyResponse = surveyResponseDbContext.SurveyResponses.Where(s => s.SurveyId == surveyId && s.EmployeeId == employeeid);
|
||||
}
|
||||
|
||||
if (listSurveyResponse.Any())
|
||||
{
|
||||
@ -102,10 +110,58 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int employeeid, string language)
|
||||
{
|
||||
try
|
||||
{
|
||||
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
||||
//get all the survey that already taken by the employee
|
||||
var listOfsurveysId = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).Select(y => y.SurveyId).ToListAsync();
|
||||
var surveys = await surveyServiceProvider.getSurveysAsync(language);
|
||||
|
||||
if (surveys != null)
|
||||
{
|
||||
surveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now).ToList();
|
||||
}
|
||||
|
||||
if (listOfsurveysId==null || listOfsurveysId.Count == 0)
|
||||
return (true, surveys, null);
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAsync(int surveyId)
|
||||
var activeSurveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now && !listOfsurveysId.Contains(s.Id));
|
||||
return (true, activeSurveys, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger?.LogError(ex.ToString());
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int employeeid, string language)
|
||||
{
|
||||
try
|
||||
{
|
||||
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
||||
//get all the survey that already taken by the employee
|
||||
var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
|
||||
var surveys = await surveyServiceProvider.getSurveysAsync(language);
|
||||
|
||||
var historicSurveys = from s in surveys
|
||||
from r in surveyResponses
|
||||
where s.Id == r.SurveyId
|
||||
select s;
|
||||
|
||||
return (true, historicSurveys, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger?.LogError(ex.ToString());
|
||||
return (false, null, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAsync(int surveyId, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -114,7 +170,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
if (survey != null)
|
||||
{
|
||||
var answers = await getSurveyResponsesBySurveyIdAsync(surveyId);
|
||||
var answers = await getSurveyResponsesBySurveyIdAsync(surveyId, employeeid);
|
||||
|
||||
if (answers != null)
|
||||
return (true, answers, "Request Successful.");
|
||||
@ -136,7 +192,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, int locationId)
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesBySurveyAndLocationAsync(int surveyId, int locationId, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -145,7 +201,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
if (survey != null)
|
||||
{
|
||||
var answers = await getSurveyResponsesBySurveyIdLocationIdAsync(surveyId, locationId);
|
||||
var answers = await getSurveyResponsesBySurveyIdLocationIdAsync(surveyId, locationId, employeeid);
|
||||
|
||||
if (answers != null)
|
||||
return (true, answers, "Request Successful.");
|
||||
@ -167,7 +223,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesByMaintenanceCenterAsync(int surveyId)
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetSurveyResponsesByMaintenanceCenterAsync(int surveyId, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -176,7 +232,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
if (survey != null)
|
||||
{
|
||||
var answers = await getResultsByMaintenanceCenterAsync(surveyId);
|
||||
var answers = await getResultsByMaintenanceCenterAsync(surveyId, employeeid);
|
||||
|
||||
if (answers != null)
|
||||
return (true, answers, "Request Successful.");
|
||||
@ -198,7 +254,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetResponsesByAnswerAsync(int surveyId, int questionId, string answer)
|
||||
public async Task<(bool IsSuccess, dynamic SurveyResponses, string ErrorMessage)> GetResponsesByAnswerAsync(int surveyId, int questionId, string answer, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -210,7 +266,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
if (survey != null && question != null && IsCorrectAnswer)
|
||||
{
|
||||
var answers = await getSurveyResponsesByAnswerAsync(survey, question, answer);
|
||||
var answers = await getSurveyResponsesByAnswerAsync(survey, question, answer, employeeid);
|
||||
|
||||
if (answers != null)
|
||||
return (true, answers, "Request Successful.");
|
||||
@ -233,18 +289,18 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
|
||||
|
||||
public async Task<(bool IsSuccess, dynamic surveyResponses, string ErrorMessage)> GetSurveyResponsesAsync()
|
||||
public async Task<(bool IsSuccess, dynamic surveyResponses, string ErrorMessage)> GetSurveyResponsesAsync(int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var answers = await getAllSurveyResponsesAsync();
|
||||
var responses = await getAllSurveyResponsesAsync(employeeid);
|
||||
|
||||
if (answers != null)
|
||||
return (true, answers, "Request Successful.");
|
||||
if (responses != null)
|
||||
return (true, responses, "Request Successful.");
|
||||
else
|
||||
{
|
||||
answers = new List<Models.SurveyResponse>();
|
||||
return (true, answers, "Empty object returned");
|
||||
responses = new List<Models.SurveyResponse>();
|
||||
return (true, responses, "Empty object returned");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -355,7 +411,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
answer => answer.SurveyResponseId,
|
||||
surveyResponse => surveyResponse.Id,
|
||||
(answer, surveyResponse) => new
|
||||
|
||||
|
||||
{
|
||||
answer.Id,
|
||||
answer.QuestionId,
|
||||
@ -379,18 +435,18 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
var result = from answer in surveyAnswers
|
||||
from location in locations
|
||||
where answer.LocationId.Equals(location.Id)
|
||||
select new
|
||||
select new
|
||||
{
|
||||
answer.Id,
|
||||
answer.QuestionId,
|
||||
answer.AnswerText,
|
||||
answer.Comment,
|
||||
location.RegionId,
|
||||
LocationId = location.Id,
|
||||
answer.SurveyResponseId
|
||||
answer.Id,
|
||||
answer.QuestionId,
|
||||
answer.AnswerText,
|
||||
answer.Comment,
|
||||
location.RegionId,
|
||||
LocationId = location.Id,
|
||||
answer.SurveyResponseId
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
//group records by answer and region
|
||||
var q = from e in result
|
||||
@ -398,13 +454,13 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
select new
|
||||
{
|
||||
g.Key.RegionId,
|
||||
Answers = new
|
||||
Answers = new
|
||||
{
|
||||
g.Key.AnswerText,
|
||||
Counter = g.Count()
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//build the result
|
||||
|
||||
List<dynamic> resultList = new List<dynamic>();
|
||||
@ -412,9 +468,9 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
{
|
||||
var answers = from u in q.ToList()
|
||||
where u.RegionId.Equals(region.Id)
|
||||
select u.Answers;
|
||||
|
||||
resultList.Add(new { RegionId = region.Id, region.Name, region.Abbreviation, Answers = answers});
|
||||
select u.Answers;
|
||||
|
||||
resultList.Add(new { RegionId = region.Id, region.Name, region.Abbreviation, Answers = answers });
|
||||
}
|
||||
//return the object result
|
||||
return new { Regions = resultList };
|
||||
@ -470,13 +526,24 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
|
||||
//Method to get Survey Responses by surveyId
|
||||
private async Task<dynamic> getSurveyResponsesBySurveyIdAsync(int surveyId)
|
||||
private async Task<dynamic> getSurveyResponsesBySurveyIdAsync(int surveyId, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId).ToListAsync();
|
||||
List<Db.SurveyResponse> surveyResonses = null;
|
||||
Employee employee = null;
|
||||
List<Employee> employees = null;
|
||||
if (employeeid == 0)
|
||||
{
|
||||
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId).ToListAsync();
|
||||
employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.EmployeeId == employeeid).ToListAsync();
|
||||
employee = await employeeServiceProvider.getEmployeeAsync(employeeid);
|
||||
}
|
||||
|
||||
var employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
var answers = await answerServiceProvider.getAnswersAsync();
|
||||
var questions = await questionServiceProvider.getQuestionsAsync();
|
||||
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
||||
@ -484,32 +551,70 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
//var surveyQuestions = await questionServiceProvider.getSurveyQuestionsAsync(surveyId);
|
||||
|
||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync();
|
||||
var result = from r in surveyResonses
|
||||
select new
|
||||
{
|
||||
r.Id,
|
||||
r.SurveyId,
|
||||
r.LocationId,
|
||||
r.EmployeeId,
|
||||
r.ClientDevice,
|
||||
r.KeyAnswerResult,
|
||||
r.Longitute,
|
||||
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(),
|
||||
answers = from ans in answers
|
||||
where ans.SurveyResponseId == r.Id
|
||||
select new
|
||||
{
|
||||
ans.Id,
|
||||
ans.QuestionId,
|
||||
ans.AnswerText,
|
||||
ans.Comment,
|
||||
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
|
||||
|
||||
}
|
||||
};
|
||||
return result;
|
||||
if (employeeid == 0)
|
||||
{
|
||||
var result = from r in surveyResonses
|
||||
select new
|
||||
{
|
||||
r.Id,
|
||||
r.SurveyId,
|
||||
r.LocationId,
|
||||
r.EmployeeId,
|
||||
r.ClientDevice,
|
||||
r.KeyAnswerResult,
|
||||
r.Longitute,
|
||||
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(),
|
||||
answers = from ans in answers
|
||||
where ans.SurveyResponseId == r.Id
|
||||
select new
|
||||
{
|
||||
ans.Id,
|
||||
ans.QuestionId,
|
||||
ans.AnswerText,
|
||||
ans.Comment,
|
||||
Questions = (from q in surveyQuestions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
|
||||
|
||||
}
|
||||
};
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
object _employee = new { };
|
||||
if (employee != null)
|
||||
{
|
||||
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
||||
}
|
||||
var result = from r in surveyResonses
|
||||
select new
|
||||
{
|
||||
r.Id,
|
||||
r.SurveyId,
|
||||
r.LocationId,
|
||||
r.EmployeeId,
|
||||
r.ClientDevice,
|
||||
r.KeyAnswerResult,
|
||||
r.Longitute,
|
||||
r.Latitude,
|
||||
Employee = _employee,
|
||||
answers = from ans in answers
|
||||
where ans.SurveyResponseId == r.Id
|
||||
select new
|
||||
{
|
||||
ans.Id,
|
||||
ans.QuestionId,
|
||||
ans.AnswerText,
|
||||
ans.Comment,
|
||||
Questions = (from q in questions where q.Id == ans.QuestionId select new { q.Id, q.QuestionNumber, q.CategoryId, q.Text }).SingleOrDefault(),
|
||||
Attachments = from att in attachments where att.AnswerId == ans.Id select new { att.Id, att.URI }
|
||||
}
|
||||
};
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -520,13 +625,31 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
|
||||
//Method to get All Survey Responses
|
||||
private async Task<dynamic> getAllSurveyResponsesAsync()
|
||||
private async Task<dynamic> getAllSurveyResponsesAsync(int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var surveyResonses = await surveyResponseDbContext.SurveyResponses.ToListAsync();
|
||||
List<Db.SurveyResponse> surveyResonses = null;
|
||||
Employee employee = null;
|
||||
List<Employee> employees = null;
|
||||
object _employee = new { };
|
||||
if (employeeid == 0)
|
||||
{
|
||||
surveyResonses = await surveyResponseDbContext.SurveyResponses.ToListAsync();
|
||||
employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
|
||||
employee = await employeeServiceProvider.getEmployeeAsync(employeeid);
|
||||
|
||||
if (employee != null)
|
||||
{
|
||||
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
var answers = await answerServiceProvider.getAnswersAsync();
|
||||
var questions = await questionServiceProvider.getQuestionsAsync();
|
||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync();
|
||||
@ -542,7 +665,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
r.KeyAnswerResult,
|
||||
r.Longitute,
|
||||
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 = 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
|
||||
where ans.SurveyResponseId == r.Id
|
||||
select new
|
||||
@ -556,6 +679,8 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
};
|
||||
return result;
|
||||
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -566,11 +691,19 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
|
||||
//Method to get Answers By Maintenance Center by surveyId
|
||||
private async Task<dynamic> getResultsByMaintenanceCenterAsync(int surveyId)
|
||||
private async Task<dynamic> getResultsByMaintenanceCenterAsync(int surveyId, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId).ToListAsync();
|
||||
List<Db.SurveyResponse> surveyResponses = null;
|
||||
if (employeeid == 0)
|
||||
{
|
||||
surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId).ToListAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.EmployeeId == employeeid).ToListAsync();
|
||||
}
|
||||
var answers = await answerServiceProvider.getAnswersAsync();
|
||||
var locations = await locationServiceProvider.getLocationsAsync();
|
||||
var maintenanceCenters = locations.DistinctBy(m => m.MaintenanceCenter);
|
||||
@ -601,7 +734,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
select new
|
||||
{
|
||||
g.Key.MaintenanceCenter,
|
||||
Answers = new
|
||||
Answers = new
|
||||
{
|
||||
g.Key.AnswerText,
|
||||
Counter = g.Count()
|
||||
@ -626,13 +759,31 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
|
||||
//Method to get Survey Responses by surveyId and LocationId
|
||||
private async Task<dynamic> getSurveyResponsesBySurveyIdLocationIdAsync(int surveyId, int locationId)
|
||||
private async Task<dynamic> getSurveyResponsesBySurveyIdLocationIdAsync(int surveyId, int locationId, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.LocationId.Equals(locationId)).ToListAsync();
|
||||
List<Db.SurveyResponse> surveyResonses = null;
|
||||
Employee employee = null;
|
||||
List<Employee> employees = null;
|
||||
object _employee = new { };
|
||||
|
||||
if (employeeid == 0)
|
||||
{
|
||||
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.LocationId == locationId).ToListAsync();
|
||||
employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
surveyResonses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == surveyId && x.EmployeeId == employeeid && x.LocationId == locationId).ToListAsync();
|
||||
employee = await employeeServiceProvider.getEmployeeAsync(employeeid);
|
||||
|
||||
if (employee != null)
|
||||
{
|
||||
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
||||
}
|
||||
}
|
||||
|
||||
var employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
var answers = await answerServiceProvider.getAnswersAsync();
|
||||
var questions = await questionServiceProvider.getQuestionsAsync();
|
||||
var surveyQuestions = from q in questions where q.SurveyId == surveyId select q;
|
||||
@ -649,7 +800,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
r.KeyAnswerResult,
|
||||
r.Longitute,
|
||||
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 = 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
|
||||
where ans.SurveyResponseId == r.Id
|
||||
|
||||
@ -664,6 +815,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
}
|
||||
};
|
||||
return result;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -674,13 +826,34 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
|
||||
|
||||
//Method to get Survey Responses by surveyId questionId and answer
|
||||
private async Task<dynamic> getSurveyResponsesByAnswerAsync(Survey survey, Question question, string answer)
|
||||
private async Task<dynamic> getSurveyResponsesByAnswerAsync(Survey survey, Question question, string answer, int employeeid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == survey.Id).ToListAsync();
|
||||
List<Db.SurveyResponse> surveyResponses = null;
|
||||
Employee employee = null;
|
||||
List<Employee> employees = null;
|
||||
object _employee = new { };
|
||||
|
||||
if (employeeid == 0)
|
||||
{
|
||||
surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == survey.Id).ToListAsync();
|
||||
employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == survey.Id && x.EmployeeId == employeeid).ToListAsync();
|
||||
employee = await employeeServiceProvider.getEmployeeAsync(employeeid);
|
||||
|
||||
if (employee != null)
|
||||
{
|
||||
_employee = new { employee.Id, employee.Name, employee.BirthDate, employee.Email, employee.OfficePhoneNumber };
|
||||
}
|
||||
}
|
||||
|
||||
//var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.SurveyId == survey.Id).ToListAsync();
|
||||
// var employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
var answers = await answerServiceProvider.getAnswersAsync();
|
||||
var employees = await employeeServiceProvider.getEmployeesAsync();
|
||||
var attachments = await attachmentServiceProvider.getAttachmentsAsync();
|
||||
|
||||
var result = from r in surveyResponses
|
||||
@ -694,7 +867,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
r.KeyAnswerResult,
|
||||
r.Longitute,
|
||||
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 = 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
|
||||
where ans.SurveyResponseId == r.Id
|
||||
&& ans.QuestionId == question.Id
|
||||
@ -757,7 +930,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers
|
||||
{
|
||||
if (request != null)
|
||||
{
|
||||
var response = await PostSurveyResponseAsync(new Models.SurveyResponse { SurveyId = request.SurveyId, EmployeeId = request.EmployeeId, LocationId = request.LocationId, ClientDevice = request.ClientDevice, KeyAnswerResult = request.KeyAnswerResult, Latitude = Convert.ToDouble(request.Latitude), Longitute = Convert.ToDouble(request.Longitute), CreatedDate=DateTime.Now });
|
||||
var response = await PostSurveyResponseAsync(new Models.SurveyResponse { SurveyId = request.SurveyId, EmployeeId = request.EmployeeId, LocationId = request.LocationId, ClientDevice = request.ClientDevice, KeyAnswerResult = request.KeyAnswerResult, Latitude = Convert.ToDouble(request.Latitude), Longitute = Convert.ToDouble(request.Longitute), CreatedDate = DateTime.Now });
|
||||
if (response.IsSuccess)
|
||||
{
|
||||
var surveyResponse = response.SurveyResponse;
|
||||
|
Reference in New Issue
Block a user