forked from MDCPS/DamageAssessment_Backend
		
	Revert "Merged PR 53: fixed survey put issue, and added export excel in responses
fixed survey put issue, amd added export excel in responses"
This commit is contained in:
		| @ -8,12 +8,10 @@ namespace DamageAssesment.Api.Responses.Controllers | ||||
|     public class SurveyResponsesController : ControllerBase | ||||
|     { | ||||
|         private readonly ISurveysResponse surveyResponseProvider; | ||||
|         private readonly IExcelExportService excelExportService; | ||||
|  | ||||
|         public SurveyResponsesController(ISurveysResponse surveyResponseProvider, IExcelExportService excelExportService) | ||||
|         public SurveyResponsesController(ISurveysResponse surveyResponseProvider) | ||||
|         { | ||||
|             this.surveyResponseProvider = surveyResponseProvider; | ||||
|             this.excelExportService = excelExportService; | ||||
|         } | ||||
|         /// <summary> | ||||
|         /// GET request for retrieving survey responses. | ||||
| @ -59,9 +57,9 @@ namespace DamageAssesment.Api.Responses.Controllers | ||||
|         [Route("responses/{surveyid:int}/{locationid:int}/{employeeid:int}")] | ||||
|         [Route("responses/{surveyid:int}/{locationid:int}")] | ||||
|         [HttpGet] | ||||
|         public async Task<ActionResult> GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid, int? employeeid) | ||||
|         public async Task<ActionResult> GetSurveyResponsesBySurveyAndLocationAsync(int surveyid, int locationid,int? employeeid) | ||||
|         { | ||||
|             var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid, employeeid ?? 0); | ||||
|             var result = await this.surveyResponseProvider.GetSurveyResponsesBySurveyAndLocationAsync(surveyid, locationid,employeeid ?? 0); | ||||
|             if (result.IsSuccess) | ||||
|             { | ||||
|                 return Ok(result.SurveyResponses); | ||||
| @ -200,9 +198,7 @@ namespace DamageAssesment.Api.Responses.Controllers | ||||
|             else | ||||
|                 return BadRequest(result.ErrorMessage); | ||||
|         } | ||||
|         /// <summary> | ||||
|         /// Get All active surveys . | ||||
|         /// </summary> | ||||
|  | ||||
|         [Route("responses/surveys/active")] | ||||
|         [Route("responses/surveys/active/{language:alpha}")] | ||||
|         [Route("responses/surveys/active/{employeeid:int}")] | ||||
| @ -217,39 +213,7 @@ namespace DamageAssesment.Api.Responses.Controllers | ||||
|             } | ||||
|             return NoContent(); | ||||
|         } | ||||
|         /// <summary> | ||||
|         /// Export surveys based on role . | ||||
|         /// </summary> | ||||
|         [HttpGet] | ||||
|  | ||||
|         [Route("responses/surveys/export")] | ||||
|         public async Task<ActionResult> GetExcelSurveysAsync(string language,bool IsAdmin=false) | ||||
|         { | ||||
|             var result = await this.surveyResponseProvider.ExportSurveyResponsesAsync(language, IsAdmin); | ||||
|             if (result.IsSuccess) | ||||
|             { | ||||
|                 byte[] fileContents = excelExportService.ExportToExcel<object>(result.surveyResponses); | ||||
|                 return File(fileContents, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "data.xlsx"); | ||||
|                 //return Ok(result.Surveys); | ||||
|             } | ||||
|             return NoContent(); | ||||
|         } | ||||
|         //[Route("responses/surveys/active")] | ||||
|         //[Route("responses/surveys/active/{language:alpha}")] | ||||
|         //[HttpGet] | ||||
|         //public async Task<ActionResult> GetActiveSurveysAsync( string? language) | ||||
|         //{ | ||||
|         //    var result = await this.surveyResponseProvider.GetActiveSurveysAsync(null, language); | ||||
|         //    if (result.IsSuccess) | ||||
|         //    { | ||||
|         //        return Ok(result.Surveys); | ||||
|         //    } | ||||
|         //    return NoContent(); | ||||
|         //} | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Get all historical surveys . | ||||
|         /// </summary> | ||||
|         [Route("responses/surveys/historic")] | ||||
|         [Route("responses/surveys/historic/{language:alpha}")] | ||||
|         [Route("responses/surveys/historic/{employeeid:int}")] | ||||
|  | ||||
| @ -11,8 +11,6 @@ | ||||
|  | ||||
|   <ItemGroup> | ||||
|     <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" /> | ||||
|     <PackageReference Include="ClosedXML" Version="0.102.1" /> | ||||
|     <PackageReference Include="EPPlus" Version="6.2.10" /> | ||||
|     <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.9" /> | ||||
|     <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.9"> | ||||
|       <PrivateAssets>all</PrivateAssets> | ||||
|  | ||||
| @ -1,7 +0,0 @@ | ||||
| namespace DamageAssesment.Api.Responses.Interfaces | ||||
| { | ||||
|     public interface IExcelExportService | ||||
|     { | ||||
|         public byte[] ExportToExcel<T1>(List<object> responses); | ||||
|     } | ||||
| } | ||||
| @ -4,9 +4,8 @@ namespace DamageAssesment.Api.Responses.Interfaces | ||||
| { | ||||
|     public interface IQuestionServiceProvider | ||||
|     { | ||||
|         Task<List<Question>> getQuestionsAsync(string language); | ||||
|         Task<List<Question>> getQuestionsAsync(); | ||||
|         Task<List<SurveyQuestions>> getSurveyQuestionsAsync(int surveyId); | ||||
|         Task<Question> getQuestionsAsync(int questionId); | ||||
|         Task<List<QuestionCategory>> GetQuestionCategoriesAsync(string? language); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -7,9 +7,8 @@ namespace DamageAssesment.Api.Responses.Interfaces | ||||
|     { | ||||
|         Task<(bool IsSuccess, dynamic Answers, string ErrorMessage)> GetAnswersByRegionAsync(int surveyId, int employeeid); | ||||
|         Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PostSurveyResponseAsync(Models.SurveyResponse surveyResponse); | ||||
|         // Task<(bool IsSuccess,dynamic surveyResponses, string ErrorMessage)> GetSurveyResponseAsync(int responseId); | ||||
|        // Task<(bool IsSuccess,dynamic surveyResponses, string ErrorMessage)> GetSurveyResponseAsync(int responseId); | ||||
|         Task<(bool IsSuccess, dynamic surveyResponses, string ErrorMessage)> GetSurveyResponsesAsync(int employeeid); | ||||
|         Task<(bool IsSuccess, List<object> surveyResponses, string ErrorMessage)> ExportSurveyResponsesAsync(string language,bool IsAdmin); | ||||
|         Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetActiveSurveysAsync(int? employeeid, string language); | ||||
|         Task<(bool IsSuccess, dynamic Surveys, string ErrorMessage)> GetHistoricSurveysAsync(int? employeeid, string language); | ||||
|         Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PutSurveyResponseAsync(int Id, Models.SurveyResponse surveyResponse); | ||||
|  | ||||
| @ -11,7 +11,6 @@ namespace DamageAssesment.Api.Responses.Models | ||||
|  | ||||
|         public int? AnswerId { get; set; } | ||||
|         public bool IsDeleted { get; set; } | ||||
|         public string FileName { get; set; } | ||||
|  | ||||
|         public Attachment(int answerId, string uri) | ||||
|         { | ||||
|  | ||||
| @ -4,7 +4,6 @@ | ||||
|     { | ||||
|         public int Id { get; set; } | ||||
|         public int RegionId { get; set; } | ||||
|         public string LocationCode { get; set; } | ||||
|         public string Name { get; set; } | ||||
|         public string MaintenanceCenter { get; set; } | ||||
|         public string SchoolType { get; set; } | ||||
|  | ||||
| @ -1,10 +0,0 @@ | ||||
| namespace DamageAssesment.Api.Responses.Models | ||||
| { | ||||
|     public class QuestionCategory | ||||
|     { | ||||
|         public int Id { get; set; } | ||||
|         public string IconName { get; set; } | ||||
|         public string IconLibrary { get; set; } | ||||
|         public object Titles { get; set; } | ||||
|     } | ||||
| } | ||||
| @ -1,24 +0,0 @@ | ||||
| namespace DamageAssesment.Api.Responses.Models | ||||
| { | ||||
|     public class SurveyExport | ||||
|     { | ||||
|         public int Id { get; set; } | ||||
|         public string SurveyQuestion { get; set; }   | ||||
|         public string Answer { get; set; } | ||||
|         public string Category { get; set; } | ||||
|  | ||||
|         public string School { get; set; } | ||||
|         public string Location { get; set; } | ||||
|         public string Region { get; set; } | ||||
|  | ||||
|         public string MC { get; set; } | ||||
|         public string ResponseDate { get; set; } | ||||
|         public string Notes { get; set; } | ||||
|  | ||||
|         public string Attachment1 { get; set; } | ||||
|         public string Attachment2 { get; set; } | ||||
|         public string Attachment3 { get; set; } | ||||
|         public string Attachment4 { get; set; } | ||||
|         public string Attachment5 { get; set; } | ||||
|     } | ||||
| } | ||||
| @ -26,7 +26,6 @@ builder.Services.AddScoped<IQuestionServiceProvider, QuestionServiceProvider>(); | ||||
| builder.Services.AddScoped<IEmployeeServiceProvider, EmployeeServiceProvider>(); | ||||
| builder.Services.AddScoped<IAttachmentServiceProvider, AttachmentServiceProvider>(); | ||||
| builder.Services.AddScoped<ISurveyServiceProvider, SurveyServiceProvider>(); | ||||
| builder.Services.AddScoped<IExcelExportService, ExcelExportService>(); | ||||
|  | ||||
| builder.Services.AddHttpClient<IHttpUtil, HttpUtil>(). | ||||
|     AddTransientHttpErrorPolicy(policy => policy.WaitAndRetryAsync(maxApiCallRetries, _ => TimeSpan.FromSeconds(intervalToRetry))). | ||||
|  | ||||
| @ -1,57 +0,0 @@ | ||||
| using ClosedXML.Excel; | ||||
| using DamageAssesment.Api.Responses.Interfaces; | ||||
| using DamageAssesment.Api.Responses.Models; | ||||
| using OfficeOpenXml; | ||||
| using System.Collections.Generic; | ||||
|  | ||||
| namespace DamageAssesment.Api.Responses.Providers | ||||
| { | ||||
|     public class ExcelExportService: IExcelExportService | ||||
|     { | ||||
|         public byte[] ExportToExcel<T1>(List<object> responses) | ||||
|         {  | ||||
|             ExcelPackage.LicenseContext = LicenseContext.NonCommercial; | ||||
|             using (var package = new ExcelPackage()) | ||||
|             { | ||||
|                 // Create the first worksheet and populate it with responses | ||||
|                 var workSheet1 = package.Workbook.Worksheets.Add("responses"); | ||||
|                 PopulateWorksheet(workSheet1, responses); | ||||
|                 return package.GetAsByteArray(); | ||||
|             } | ||||
|         } | ||||
|         private void PopulateWorksheet(ExcelWorksheet worksheet, List<object> data) | ||||
|         { | ||||
|             if (data.Count > 0) | ||||
|             { | ||||
|                 var properties = data[0].GetType().GetProperties(); | ||||
|                 List<int> IsAttchments = new List<int>(); | ||||
|                 // Add column headers | ||||
|                 for (int col = 1; col <= properties.Length; col++) | ||||
|                 { | ||||
|                     worksheet.Cells[1, col].Value = properties[col - 1].Name; | ||||
|                     if(properties[col - 1].Name.ToLower().Contains("attachment")) | ||||
|                         IsAttchments.Add(col); | ||||
|                 } | ||||
|  | ||||
|                 // Add data | ||||
|                 for (int row = 2; row <= data.Count + 1; row++) | ||||
|                 { | ||||
|                     for (int col = 1; col <= properties.Length; col++) | ||||
|                     { | ||||
|                         string value = Convert.ToString(properties[col - 1].GetValue(data[row - 2])); | ||||
|                         if (IsAttchments.Where(a => a == col).Count()>0&& !string.IsNullOrEmpty(value)) | ||||
|                         { | ||||
|                             List<string> attachments = value.Split("##").ToList(); | ||||
|                             Uri linkUri = new Uri(attachments[1]); | ||||
|                             worksheet.Cells[row, col].Hyperlink = linkUri; | ||||
|                             worksheet.Cells[row, col].Value = attachments[0]; | ||||
|                             worksheet.Cells[row, col].Style.Font.UnderLine = true; | ||||
|                         } | ||||
|                         else | ||||
|                             worksheet.Cells[row, col].Value = value; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -3,9 +3,6 @@ using DamageAssesment.Api.Responses.Db; | ||||
| using DamageAssesment.Api.Responses.Interfaces; | ||||
| using DamageAssesment.Api.Responses.Models; | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| using Microsoft.EntityFrameworkCore.Metadata.Internal; | ||||
| using System.Reflection; | ||||
| using System.Text.Json; | ||||
|  | ||||
| namespace DamageAssesment.Api.Responses.Providers | ||||
| { | ||||
| @ -46,6 +43,7 @@ namespace DamageAssesment.Api.Responses.Providers | ||||
|                 // Create and save SurveyResponse records with references to existing Employee and Location records | ||||
|                 surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { SurveyId = 1, EmployeeId = 1, LocationId = 1, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now }); | ||||
|                 surveyResponseDbContext.SurveyResponses.Add(new Db.SurveyResponse { SurveyId = 1, EmployeeId = 2, LocationId = 2, ClientDevice = "Mobile", Latitude = 98.8767, Longitute = -129.9897, KeyAnswerResult = "true", CreatedDate = DateTime.Now }); | ||||
|  | ||||
|                 surveyResponseDbContext.SaveChanges(); | ||||
|             } | ||||
|         } | ||||
| @ -309,26 +307,6 @@ namespace DamageAssesment.Api.Responses.Providers | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|         public async Task<(bool IsSuccess, List<object> surveyResponses, string ErrorMessage)> ExportSurveyResponsesAsync(string language,bool isadmin) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 var responses = await getAllSurveyResponsesExcelAsync(language, isadmin); | ||||
|  | ||||
|                 if (responses != null) | ||||
|                     return (true, responses, "Request Successful."); | ||||
|                 else | ||||
|                 { | ||||
|                     responses = null; | ||||
|                     return (true, responses, "Empty object returned"); | ||||
|                 } | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|                 logger?.LogError(ex.ToString()); | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public async Task<(bool IsSuccess, Models.SurveyResponse SurveyResponse, string ErrorMessage)> PostSurveyResponseAsync(Models.SurveyResponse surveyResponse) | ||||
|         { | ||||
| @ -509,7 +487,7 @@ namespace DamageAssesment.Api.Responses.Providers | ||||
|             { | ||||
|                 var employee = await employeeServiceProvider.getEmployeeAsync(surveyResponse.EmployeeId); | ||||
|                 var answers = await answerServiceProvider.GetAnswersByResponseIdAsync(surveyResponse.Id); | ||||
|                 var allQuestions = await questionServiceProvider.getQuestionsAsync(null); | ||||
|                 var allQuestions = await questionServiceProvider.getQuestionsAsync(); | ||||
|                 var questions = allQuestions.Where(s => s.SurveyId == surveyResponse.SurveyId); | ||||
|                 var attachments = await attachmentServiceProvider.getAttachmentsAsync(); | ||||
|  | ||||
| @ -565,7 +543,7 @@ namespace DamageAssesment.Api.Responses.Providers | ||||
|                 } | ||||
|  | ||||
|                 var answers = await answerServiceProvider.getAnswersAsync(); | ||||
|                 var questions = await questionServiceProvider.getQuestionsAsync(null); | ||||
|                 var questions = await questionServiceProvider.getQuestionsAsync(); | ||||
|                 var surveyQuestions = from q in questions where q.SurveyId == surveyId select q; | ||||
|  | ||||
|                 //var surveyQuestions = await questionServiceProvider.getSurveyQuestionsAsync(surveyId); | ||||
| @ -671,7 +649,7 @@ namespace DamageAssesment.Api.Responses.Providers | ||||
|  | ||||
|  | ||||
|                 var answers = await answerServiceProvider.getAnswersAsync(); | ||||
|                 var questions = await questionServiceProvider.getQuestionsAsync(null); | ||||
|                 var questions = await questionServiceProvider.getQuestionsAsync(); | ||||
|                 var attachments = await attachmentServiceProvider.getAttachmentsAsync(); | ||||
|  | ||||
|                 var result = from r in surveyResonses | ||||
| @ -708,136 +686,7 @@ namespace DamageAssesment.Api.Responses.Providers | ||||
|                 return null; | ||||
|             } | ||||
|         } | ||||
|         //Method to get All Survey Responses for excel export | ||||
|         private async Task<List<object>> getAllSurveyResponsesExcelAsync(string language,bool isadmin) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 if (string.IsNullOrEmpty(language)) language = "en"; | ||||
|                 List<Db.SurveyResponse> surveyResonses; | ||||
|                 surveyResonses = await surveyResponseDbContext.SurveyResponses.ToListAsync(); | ||||
|                 var answers = await answerServiceProvider.getAnswersAsync(); | ||||
|                 var Locations = await locationServiceProvider.getLocationsAsync(); | ||||
|                 var regions = await regionServiceProvider.getRegionsAsync(); | ||||
|                 var questions = await questionServiceProvider.getQuestionsAsync(language); | ||||
|                 var categories = await questionServiceProvider.GetQuestionCategoriesAsync(language); | ||||
|                 var attachments = await attachmentServiceProvider.getAttachmentsAsync(); | ||||
|                 List<object> questionLists = new List<object>(); | ||||
|                 var allques = from res in surveyResonses | ||||
|                               join loc in Locations on res.LocationId equals loc.Id | ||||
|                               join reg in regions on loc.RegionId equals reg.Id | ||||
|                               join ans in answers  on res.Id equals ans.SurveyResponseId | ||||
|                               join q in questions on ans.QuestionId equals q.Id | ||||
|                               join qc in categories on q.CategoryId equals qc.Id | ||||
|                            select new | ||||
|                            { | ||||
|                                responseId = res.Id, | ||||
|                                questionId = q.Id, | ||||
|                                QuestionNumber = q.QuestionNumber, | ||||
|                                Category = JsonSerializer.Deserialize<Dictionary<string, string>>(qc.Titles.ToString())[language], | ||||
|                                question = q.Text[language], | ||||
|                                answerId = ans.Id, | ||||
|                                AnswerText = ans.AnswerText, | ||||
|                                Comment = ans.Comment, | ||||
|                                Location=loc.LocationCode, | ||||
|                                school=loc.Name, | ||||
|                                Region=reg.Name, | ||||
|                                MC=loc.MaintenanceCenter, | ||||
|                                ResponseDate=res.CreatedDate, | ||||
|                                EmployeeId=res.EmployeeId,  | ||||
|                                ClientDevice=res.ClientDevice, | ||||
|                                Attachments = attachments.Where(a=>a.AnswerId==ans.Id).Select(a=>a.FileName+"##"+a.URI).ToList() | ||||
|                            }; | ||||
|                 List<object> allresoponses = new List<object>(); | ||||
|                 foreach (var item in allques) | ||||
|                 { | ||||
|                      | ||||
|                     List<string> ansattachments=item.Attachments.ToList(); | ||||
|  | ||||
|                     //// Initialize the attachment dictionary | ||||
|                     //var attachmentsobject = new Dictionary<string, string>(); | ||||
|                     //for (int i = 0; i < ansattachments.Count; i++) | ||||
|                     //{ | ||||
|                     //    attachmentsobject["Attachment"+(i+1).ToString()] = ansattachments[i]; | ||||
|                     //} | ||||
|  | ||||
|  | ||||
|                     string[] variables = new string[5]; | ||||
|                     for (int i = 0; i < 5; i++) // Assuming you want to assign 5 values | ||||
|                     { | ||||
|                         if (i < ansattachments.Count()) | ||||
|                         { | ||||
|                             variables[i] = ansattachments[i]; | ||||
|                         } | ||||
|                         else | ||||
|                         { | ||||
|                             variables[i] = string.Empty; // or null, or any other default value | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                     // Now, you can access the values using the variables | ||||
|                     string att1 = variables[0],att2 = variables[1],att3 = variables[2],att4 = variables[3],att5 = variables[4]; | ||||
|                     object response; | ||||
|                     if (isadmin) | ||||
|                     { | ||||
|                          response = new | ||||
|                         { | ||||
|                             SurveyQuestion = item.question, | ||||
|                             Answer = item.AnswerText, | ||||
|                             Category = item.Category, | ||||
|                             School = item.school, | ||||
|                             Location = item.Location, | ||||
|                             Region = item.Region, | ||||
|                             MC = item.MC, | ||||
|                             ResponseDate = item.ResponseDate.ToString(), | ||||
|                             Notes = item.Comment, | ||||
|                              Attachment1 = att1, | ||||
|                              Attachment2 = att2, | ||||
|                              Attachment3 = att3, | ||||
|                              Attachment4 = att4, | ||||
|                              Attachment5 = att5, | ||||
|                              User = item.EmployeeId, | ||||
|                             DeviceType = item.ClientDevice, | ||||
|                             Reference = item.responseId | ||||
|                         }; | ||||
|                         // Add the attachment dictionary to the response object | ||||
|                         // response = new { response, Attachments = attachments }; | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         response = new | ||||
|                         { | ||||
|                             SurveyQuestion = item.question, | ||||
|                             Answer = item.AnswerText, | ||||
|                             Category = item.Category, | ||||
|                             School = item.school, | ||||
|                             Location=item.Location, | ||||
|                             Region = item.Region, | ||||
|                             MC = item.MC, | ||||
|                             ResponseDate = item.ResponseDate.ToString(), | ||||
|                             Notes = item.Comment, | ||||
|                             Attachment1 = att1, | ||||
|                             Attachment2 = att2, | ||||
|                             Attachment3 = att3, | ||||
|                             Attachment4 = att4, | ||||
|                             Attachment5 = att5 | ||||
|                         }; | ||||
|  | ||||
|                         // Add the attachment dictionary to the response object | ||||
|                       //  response = new { response, Attachments = attachments }; | ||||
|                     } | ||||
|                     allresoponses.Add(response); | ||||
|                 } | ||||
|                 return allresoponses; | ||||
|  | ||||
|  | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|                 logger?.LogError($"Exception Found : {ex.Message} - Ref: SurveyResponsesProvider.getSurveyResponseBySurveyIdAsync()"); | ||||
|                 return null; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         //Method to get Answers By Maintenance Center by surveyId | ||||
|         private async Task<dynamic> getResultsByMaintenanceCenterAsync(int surveyId, int employeeid) | ||||
| @ -934,7 +783,7 @@ namespace DamageAssesment.Api.Responses.Providers | ||||
|                 } | ||||
|  | ||||
|                 var answers = await answerServiceProvider.getAnswersAsync(); | ||||
|                 var questions = await questionServiceProvider.getQuestionsAsync(null); | ||||
|                 var questions = await questionServiceProvider.getQuestionsAsync(); | ||||
|                 var surveyQuestions = from q in questions where q.SurveyId == surveyId select q; | ||||
|                 var attachments = await attachmentServiceProvider.getAttachmentsAsync(); | ||||
|  | ||||
|  | ||||
| @ -10,12 +10,10 @@ namespace DamageAssesment.Api.Responses.Services | ||||
|         { | ||||
|         } | ||||
|  | ||||
|         public async Task<List<Question>> getQuestionsAsync(string language) | ||||
|         public async Task<List<Question>> getQuestionsAsync() | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 if (!string.IsNullOrEmpty(language)) | ||||
|                     url = url + "/" + language; | ||||
|                 var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null); | ||||
|                 var questions = JsonConvert.DeserializeObject<List<Question>>(responseJsonString); | ||||
|  | ||||
| @ -29,28 +27,7 @@ namespace DamageAssesment.Api.Responses.Services | ||||
|                 return new List<Question>(); | ||||
|             } | ||||
|         } | ||||
|         public async Task<List<QuestionCategory>> GetQuestionCategoriesAsync(string? language) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 url = urlBase + configuration.GetValue<string>("RessourceSettings:QuestionCategory"); | ||||
|                  | ||||
|                 if (!string.IsNullOrEmpty(language)) | ||||
|                     url = url + "/" + language; | ||||
|                 var responseJsonString = await httpUtil.SendAsync(HttpMethod.Get, url, null); | ||||
|                 var questions = JsonConvert.DeserializeObject<List<QuestionCategory>>(responseJsonString); | ||||
|  | ||||
|                 if (questions == null || !questions.Any()) | ||||
|                     return new List<QuestionCategory>(); | ||||
|                 else return questions; | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|                 logger?.LogError($"Exception Found : {ex.Message} - Ref: QuestionServiceProvider.GetQuestionCategoriesAsync()"); | ||||
|                 return new List<QuestionCategory>(); | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         public async Task<List<SurveyQuestions>> getSurveyQuestionsAsync(int surveyId) | ||||
|         { | ||||
|             try | ||||
| @ -60,7 +37,7 @@ namespace DamageAssesment.Api.Responses.Services | ||||
|                 var questions = JsonConvert.DeserializeObject<List<SurveyQuestions>>(responseJsonString); | ||||
|  | ||||
|                 if (questions == null || !questions.Any()) | ||||
|                     return new List<SurveyQuestions>(); | ||||
|                     return new List<SurveyQuestions>() ; | ||||
|                 else return questions; | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|  | ||||
| @ -31,7 +31,6 @@ | ||||
|     "EmployeeById": "/employees/{0}", | ||||
|     "Question": "/questions", | ||||
|     "QuestionById": "/questions/{0}", | ||||
|     "QuestionCategory": "/questions/categories", | ||||
|     "SurveyQuestion": "/questions/bysurvey/{0}", | ||||
|     "Survey": "/surveys", | ||||
|     "SurveyById": "/surveys/{0}", | ||||
| @ -43,7 +42,7 @@ | ||||
|   }, | ||||
|   "ConnectionStrings": { | ||||
|     //"SurveyResponseConnection": "Server=DESKTOP-OF5DPLQ\\SQLEXPRESS;Database=da_survey_dev;Trusted_Connection=True;TrustServerCertificate=True;" | ||||
|      //"ResponsesConnection": "Server=DESKTOP-OF5DPLQ\\SQLEXPRESS;Database=da_survey_dev;Trusted_Connection=True;TrustServerCertificate=True;" | ||||
|     // "ResponsesConnection": "Server=localhost,1433;Database=da_survey_dev;User Id=sa;Password=Password123;TrustServerCertificate=True;", | ||||
|     "ResponsesConnection": "Server=207.180.248.35;Database=da_survey_dev;User Id=sa;Password=YourStrongPassw0rd;TrustServerCertificate=True;" | ||||
|   } | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user