forked from MDCPS/DamageAssessment_Backend
		
	Docker Azure sync with latest changes
This commit is contained in:
		| @ -13,9 +13,9 @@ namespace DamageAssesment.Api.Surveys.Db | ||||
|  | ||||
|         public bool IsEnabled { get; set; } | ||||
|  | ||||
|         public DateTime StartDate { get; set; } | ||||
|         public DateTime? StartDate { get; set; } | ||||
|  | ||||
|         public DateTime EndDate { get; set; } | ||||
|         public DateTime? EndDate { get; set; } | ||||
|  | ||||
|         public DateTime CreatedDate { get; set; } = DateTime.Now; | ||||
|         /* | ||||
|  | ||||
| @ -2,9 +2,16 @@ | ||||
|  | ||||
| namespace DamageAssesment.Api.Surveys.Models | ||||
| { | ||||
|     public enum SurveyStatus | ||||
|     { | ||||
|         PENDING, | ||||
|         ACTIVE, | ||||
|         INACTIVE | ||||
|     } | ||||
|     public class MultiLanSurvey : BaseSurvey | ||||
|     { | ||||
|         public object Titles { get; set; } | ||||
|         public string Status { get; set; } | ||||
|     } | ||||
|     public class Survey : BaseSurvey | ||||
|     { | ||||
| @ -14,8 +21,8 @@ namespace DamageAssesment.Api.Surveys.Models | ||||
|     { | ||||
|         public int Id { get; set; } | ||||
|         public bool IsEnabled { get; set; } | ||||
|         public DateTime StartDate { get; set; } | ||||
|         public DateTime EndDate { get; set; } | ||||
|         public DateTime CreatedDate { get; set; } | ||||
|         public DateTime? StartDate { get; set; } | ||||
|         public DateTime? EndDate { get; set; } | ||||
|         public DateTime? CreatedDate { get; set; } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -26,9 +26,9 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|         { | ||||
|             if (!surveyDbContext.Surveys.Any()) | ||||
|             { | ||||
|                 var survey1 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now }; | ||||
|                 var survey2 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now }; | ||||
|                 var survey3 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now }; | ||||
|                 var survey1 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(10), EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now }; | ||||
|                 var survey2 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(-10), EndDate = DateTime.Now.AddDays(90), CreatedDate = DateTime.Now.AddDays(-10) }; | ||||
|                 var survey3 = new Db.Survey { IsEnabled = true, StartDate = DateTime.Now.AddDays(-100), EndDate = DateTime.Now.AddDays(-10), CreatedDate = DateTime.Now.AddDays(-100) }; | ||||
|  | ||||
|                 surveyDbContext.Surveys.Add(survey1); | ||||
|                 surveyDbContext.Surveys.Add(survey2); | ||||
| @ -85,7 +85,22 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|             MultiLanguage = dict; | ||||
|             return MultiLanguage; | ||||
|         } | ||||
|  | ||||
|         public string GetStatus(DateTime? StartDate,DateTime? EndDate) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 if (StartDate > DateTime.Now) | ||||
|                     return SurveyStatus.PENDING.ToString(); | ||||
|                 else if (StartDate <= DateTime.Now && EndDate > DateTime.Now) | ||||
|                     return SurveyStatus.ACTIVE.ToString(); | ||||
|                 else | ||||
|                     return SurveyStatus.INACTIVE.ToString(); | ||||
|             } | ||||
|             catch | ||||
|             { | ||||
|                 return SurveyStatus.INACTIVE.ToString(); | ||||
|             } | ||||
|         } | ||||
|         // Method to get surveys asynchronously with multi-language support | ||||
|         public async Task<(bool IsSuccess, IEnumerable<Models.MultiLanSurvey> Surveys, string ErrorMessage)> GetSurveysAsync(string language) | ||||
|         { | ||||
| @ -105,6 +120,7 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|                                       EndDate = s.EndDate, | ||||
|                                       IsEnabled = s.IsEnabled, | ||||
|                                       CreatedDate = s.CreatedDate, | ||||
|                                       Status= GetStatus(s.StartDate,s.EndDate), | ||||
|                                       Titles = CreateMultiLanguageObject(GetSurveyTranslations(s.Id, null, language)) | ||||
|                                   }; | ||||
|  | ||||
| @ -126,7 +142,8 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|             try | ||||
|             { | ||||
|                 logger?.LogInformation("Query Survey"); | ||||
|                 var survey = await surveyDbContext.Surveys.SingleOrDefaultAsync(s => s.Id == id && s.IsEnabled == true); | ||||
|                 // removed is enabled becuase we are using it in responses to get response | ||||
|                 var survey = await surveyDbContext.Surveys.SingleOrDefaultAsync(s => s.Id == id); | ||||
|  | ||||
|                 if (survey != null) | ||||
|                 { | ||||
| @ -139,6 +156,7 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|                         EndDate = survey.EndDate, | ||||
|                         IsEnabled = survey.IsEnabled, | ||||
|                         CreatedDate = survey.CreatedDate, | ||||
|                         Status = GetStatus(survey.StartDate, survey.EndDate), | ||||
|                         Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, language)) | ||||
|                     }; | ||||
|                     logger?.LogInformation($"Survey Id: {id} found"); | ||||
| @ -172,6 +190,7 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|                     } | ||||
|                     await surveyDbContext.SaveChangesAsync(); | ||||
|                     var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(_survey); | ||||
|                     result.Status = GetStatus(_survey.StartDate, _survey.EndDate); | ||||
|                     result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, "")); | ||||
|                     return (true, result, "Successful"); | ||||
|                 } | ||||
| @ -205,17 +224,16 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|                         _survey = mapper.Map<Models.Survey, Db.Survey>(survey); | ||||
|                         surveyDbContext.Surveys.Update(_survey); | ||||
|                         await surveyDbContext.SaveChangesAsync(); | ||||
|  | ||||
|                         List<Db.SurveyTranslation> listSurveyTranslation = new List<Db.SurveyTranslation>(); | ||||
|                         Random random = new Random(); | ||||
|                         foreach (var title in survey.Titles) | ||||
|                         { | ||||
|                             listSurveyTranslation.Add(new Db.SurveyTranslation { Id = random.Next(), SurveyId = _survey.Id, Language = title.Language, Title = title.Title }); | ||||
|                             listSurveyTranslation.Add(new Db.SurveyTranslation { SurveyId = _survey.Id, Language = title.Language, Title = title.Title }); | ||||
|                         } | ||||
|                         surveyDbContext.SurveysTranslation.AddRange(listSurveyTranslation); | ||||
|                         await surveyDbContext.SaveChangesAsync(); | ||||
|  | ||||
|                         var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(_survey); | ||||
|                         result.Status = GetStatus(_survey.StartDate, _survey.EndDate); | ||||
|                         result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(_survey.Id, survey.Titles, "")); | ||||
|                         return (true, result, "Successful"); | ||||
|                     } | ||||
| @ -248,6 +266,7 @@ namespace DamageAssesment.Api.Surveys.Providers | ||||
|                 if (survey != null) | ||||
|                 { | ||||
|                     var result = mapper.Map<Db.Survey, Models.MultiLanSurvey>(survey); | ||||
|                     result.Status = GetStatus(survey.StartDate, survey.EndDate); | ||||
|                     result.Titles = CreateMultiLanguageObject(GetSurveyTranslations(survey.Id, null, "")); | ||||
|                     surveyDbContext.Surveys.Remove(survey); | ||||
|                     await surveyDbContext.SaveChangesAsync(); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user