forked from MDCPS/DamageAssessment_Backend
		
	updated doculink changes
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() | ||||
| @ -49,12 +49,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()) | ||||
|                 { | ||||
| @ -103,10 +111,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 | ||||
|             { | ||||
| @ -115,7 +171,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."); | ||||
| @ -137,7 +193,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 | ||||
|             { | ||||
| @ -146,7 +202,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."); | ||||
| @ -168,7 +224,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 | ||||
|             { | ||||
| @ -177,7 +233,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."); | ||||
| @ -199,7 +255,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 | ||||
|             { | ||||
| @ -211,7 +267,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."); | ||||
| @ -234,18 +290,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) | ||||
| @ -356,7 +412,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers | ||||
|                                        answer => answer.SurveyResponseId, | ||||
|                                        surveyResponse => surveyResponse.Id, | ||||
|                                        (answer, surveyResponse) => new | ||||
|                                     | ||||
|  | ||||
|                                        { | ||||
|                                            answer.Id, | ||||
|                                            answer.QuestionId, | ||||
| @ -380,18 +436,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 | ||||
| @ -399,13 +455,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>(); | ||||
| @ -413,9 +469,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 }; | ||||
| @ -471,13 +527,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; | ||||
| @ -485,32 +552,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) | ||||
|             { | ||||
| @ -521,13 +626,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(); | ||||
| @ -543,7 +666,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 | ||||
| @ -557,6 +680,8 @@ namespace DamageAssesment.Api.SurveyResponses.Providers | ||||
|                                            } | ||||
|                              }; | ||||
|                 return result; | ||||
|  | ||||
|  | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
| @ -567,11 +692,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); | ||||
| @ -602,7 +735,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers | ||||
|                                        select new | ||||
|                                        { | ||||
|                                            g.Key.MaintenanceCenter, | ||||
|                                            Answers = new  | ||||
|                                            Answers = new | ||||
|                                            { | ||||
|                                                g.Key.AnswerText, | ||||
|                                                Counter = g.Count() | ||||
| @ -627,13 +760,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; | ||||
| @ -650,7 +801,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 | ||||
|  | ||||
| @ -665,6 +816,7 @@ namespace DamageAssesment.Api.SurveyResponses.Providers | ||||
|                                            } | ||||
|                              }; | ||||
|                 return result; | ||||
|  | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
| @ -675,13 +827,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 | ||||
| @ -695,7 +868,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 | ||||
| @ -758,7 +931,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