forked from MDCPS/DamageAssessment_Backend
		
	merged latest changes from docker to dev
This commit is contained in:
		| @ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema; | ||||
|  | ||||
| namespace DamageAssesment.Api.Answers.Db | ||||
| { | ||||
|     [Table("Answers")] | ||||
|     public class Answer | ||||
|     { | ||||
|         [Key] | ||||
|  | ||||
| @ -8,19 +8,20 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
| { | ||||
|     public class AnswersProvider : IAnswersProvider | ||||
|     { | ||||
|  | ||||
|         private AnswerDbContext answerDbContext; | ||||
|         private ILogger<AnswersProvider> logger; | ||||
|         private IMapper mapper; | ||||
|  | ||||
|         // Constructor with dependency injection and data seeding | ||||
|         public AnswersProvider(AnswerDbContext answerDbContext, ILogger<AnswersProvider> logger, IMapper mapper) | ||||
|         { | ||||
|             this.answerDbContext = answerDbContext; | ||||
|             this.logger = logger; | ||||
|             this.mapper = mapper; | ||||
|             SeedData(); | ||||
|             SeedData(); // Seed initial data if the table is empty | ||||
|         } | ||||
|  | ||||
|         // Get all answers | ||||
|         public async Task<(bool IsSuccess, IEnumerable<Models.Answer> Answers, string ErrorMessage)> GetAnswersAsync() | ||||
|         { | ||||
|             try | ||||
| @ -40,9 +41,9 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|                 logger?.LogError(ex.ToString()); | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|  | ||||
|         } | ||||
|  | ||||
|         // Get an answer by its ID | ||||
|         public async Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> GetAnswerByIdAsync(int Id) | ||||
|         { | ||||
|             try | ||||
| @ -63,6 +64,8 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Get answers by survey response ID | ||||
|         public async Task<(bool IsSuccess, IEnumerable<Models.Answer> Answers, string ErrorMessage)> GetAnswersAsync(int surveyResponseId) | ||||
|         { | ||||
|             try | ||||
| @ -74,17 +77,17 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|                 { | ||||
|                     var result = mapper.Map<IEnumerable<Db.Answer>, IEnumerable<Models.Answer>>(respAnswers); | ||||
|                     return (true, result, null); | ||||
|  | ||||
|                 } | ||||
|                 return (false, null, "Not Found"); | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|  | ||||
|                 logger?.LogError(ex.ToString()); | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Get answers by question ID | ||||
|         public async Task<(bool IsSuccess, IEnumerable<Models.Answer> Answers, string ErrorMessage)> GetAnswersByQuestionAsync(int questionId) | ||||
|         { | ||||
|             try | ||||
| @ -96,17 +99,17 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|                 { | ||||
|                     var result = mapper.Map<IEnumerable<Db.Answer>, IEnumerable<Models.Answer>>(respAnswers); | ||||
|                     return (true, result, null); | ||||
|  | ||||
|                 } | ||||
|                 return (false, null, "Not Found"); | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|  | ||||
|                 logger?.LogError(ex.ToString()); | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Create a new answer | ||||
|         public async Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> PostAnswerAsync(Models.Answer Answer) | ||||
|         { | ||||
|             try | ||||
| @ -120,7 +123,7 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|                     var result = mapper.Map<Db.Answer, Models.Answer>(answer); | ||||
|                     return (true, result, null); | ||||
|                 } | ||||
|                 return (false, null, "Answer is already exits"); | ||||
|                 return (false, null, "Answer is already exists"); | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
| @ -128,6 +131,8 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Update an existing answer | ||||
|         public async Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> UpdateAnswerAsync(Models.Answer Answer) | ||||
|         { | ||||
|             try | ||||
| @ -156,14 +161,14 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|  | ||||
|                 logger?.LogError(ex.ToString()); | ||||
|                 return (false,null, ex.Message); | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Delete an answer by its ID | ||||
|         public async Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> DeleteAnswerAsync(int Id) | ||||
|         { | ||||
|  | ||||
|             try | ||||
|             { | ||||
|                 Db.Answer answer = answerDbContext.Answers.AsNoTracking().Where(a => a.Id == Id).FirstOrDefault(); | ||||
| @ -173,26 +178,29 @@ namespace DamageAssesment.Api.Answers.Providers | ||||
|                 } | ||||
|                 answerDbContext.Answers.Remove(answer); | ||||
|                 answerDbContext.SaveChanges(); | ||||
|                 return (true, mapper.Map<Db.Answer, Models.Answer>(answer), $"AnswerId {Id} deleted Successfuly"); | ||||
|                 return (true, mapper.Map<Db.Answer, Models.Answer>(answer), $"AnswerId {Id} deleted successfully"); | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|  | ||||
|                 logger?.LogError(ex.ToString()); | ||||
|                 return (false,null, ex.Message); | ||||
|                 return (false, null, ex.Message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Check if an answer with a specific ID exists | ||||
|         private bool AnswerExists(int id) | ||||
|         { | ||||
|             return answerDbContext.Answers.AsNoTracking().Count(e => e.Id == id) > 0; | ||||
|         } | ||||
|  | ||||
|         // Seed initial data if the table is empty | ||||
|         public void SeedData() | ||||
|         { | ||||
|             if (!answerDbContext.Answers.Any()) | ||||
|             { | ||||
|                 answerDbContext.Answers.Add(new Db.Answer() { AnswerText = "Yes", Comment = "Comment test 4", QuestionId = 1, SurveyResponseId = 1 }); | ||||
|                 answerDbContext.Answers.Add(new Db.Answer() { AnswerText = "No", Comment = "Comment test 5", QuestionId = 2, SurveyResponseId = 1 }); | ||||
|                 answerDbContext.Answers.Add(new Db.Answer() { Id = 1, AnswerText = "Yes", Comment = "Comment test 4", QuestionId = 1, SurveyResponseId = 1 }); | ||||
|                 answerDbContext.Answers.Add(new Db.Answer() { Id = 2, AnswerText = "No", Comment = "Comment test 5", QuestionId = 2, SurveyResponseId = 1 }); | ||||
|                 // Uncomment the lines below to add more initial data if needed | ||||
|                 //answerDbContext.Answers.Add(new Db.Answer() { Id = 3, AnswerText = "No", Comment = "No Comment", QuestionId = 3, SurveyResponseId = 1 }); | ||||
|                 //answerDbContext.Answers.Add(new Db.Answer() { Id = 4, AnswerText = "Yes", Comment = "No Comment", QuestionId = 1, SurveyResponseId = 2 }); | ||||
|                 //answerDbContext.Answers.Add(new Db.Answer() { Id = 5, AnswerText = "No", Comment = "No Comment", QuestionId = 2, SurveyResponseId = 2 }); | ||||
|  | ||||
| @ -1,8 +0,0 @@ | ||||
| { | ||||
|   "Logging": { | ||||
|     "LogLevel": { | ||||
|       "Default": "Information", | ||||
|       "Microsoft.AspNetCore": "Warning" | ||||
|     } | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user