ixed survey issue in response level, and added logic for start and end date as optional date.
This commit is contained in:
parent
6f10e99627
commit
c80749e292
@ -2,13 +2,20 @@
|
||||
|
||||
namespace DamageAssesment.Api.Responses.Models
|
||||
{
|
||||
public enum SurveyStatus
|
||||
{
|
||||
PENDING,
|
||||
ACTIVE,
|
||||
INACTIVE
|
||||
}
|
||||
public class Survey
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public bool IsEnabled { get; set; }
|
||||
public DateTime StartDate { get; set; }
|
||||
public DateTime EndDate { get; set; }
|
||||
public DateTime? StartDate { get; set; }
|
||||
public DateTime? EndDate { get; set; }
|
||||
public DateTime CreatedDate { get; set; }
|
||||
public string Status { get; set; }
|
||||
public Dictionary<string, string> Titles { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
using DamageAssesment.Api.Responses.Models;
|
||||
using OfficeOpenXml;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace DamageAssesment.Api.Responses.Providers
|
||||
{
|
||||
@ -9,7 +10,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
||||
{
|
||||
public byte[] ExportToExcel<T1>(List<object> responses)
|
||||
{
|
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||
ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;
|
||||
using (var package = new ExcelPackage())
|
||||
{
|
||||
// Create the first worksheet and populate it with responses
|
||||
@ -37,17 +38,22 @@ namespace DamageAssesment.Api.Responses.Providers
|
||||
{
|
||||
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();
|
||||
try
|
||||
{
|
||||
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;
|
||||
}
|
||||
catch { worksheet.Cells[row, col].Value = attachments[1]; }
|
||||
}
|
||||
else
|
||||
worksheet.Cells[row, col].Value = value;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
||||
logger?.LogInformation("Querying to get SurveyResponse object from DB");
|
||||
//get all the survey that already taken by the employee
|
||||
var surveys = await surveyServiceProvider.getSurveysAsync(language);
|
||||
surveys = surveys.Where(s => s.IsEnabled == true && s.StartDate <= DateTime.Now && s.EndDate >= DateTime.Now).ToList();
|
||||
surveys = surveys.Where(s => s.IsEnabled == true && s.Status == SurveyStatus.ACTIVE.ToString()).ToList();
|
||||
if (employeeid == null || employeeid == 0)
|
||||
return (true, surveys, null);
|
||||
List<int> listOfsurveysId = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid.Value).Select(y => y.SurveyId).ToListAsync();
|
||||
@ -143,7 +143,7 @@ namespace DamageAssesment.Api.Responses.Providers
|
||||
|
||||
var surveys = await surveyServiceProvider.getSurveysAsync(language);
|
||||
// returning only historic data: end date is less than current date.
|
||||
surveys = surveys.Where(s => s.EndDate < DateTime.Now).ToList();
|
||||
surveys = surveys.Where(s => s.Status == SurveyStatus.INACTIVE.ToString()).ToList();
|
||||
if (employeeid == null || employeeid == 0)
|
||||
return (true, surveys, null);
|
||||
var surveyResponses = await surveyResponseDbContext.SurveyResponses.Where(x => x.EmployeeId == employeeid).ToListAsync();
|
||||
|
@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace DamageAssesment.Api.Surveys.Db
|
||||
{
|
||||
[Table("Surveys")]
|
||||
public class Survey
|
||||
{
|
||||
[Key]
|
||||
@ -12,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;
|
||||
/*
|
||||
|
@ -21,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; }
|
||||
}
|
||||
}
|
||||
|
@ -85,7 +85,9 @@ namespace DamageAssesment.Api.Surveys.Providers
|
||||
MultiLanguage = dict;
|
||||
return MultiLanguage;
|
||||
}
|
||||
public string GetStatus(DateTime StartDate, DateTime EndDate)
|
||||
public string GetStatus(DateTime? StartDate, DateTime? EndDate)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (StartDate > DateTime.Now)
|
||||
return SurveyStatus.PENDING.ToString();
|
||||
@ -94,6 +96,11 @@ namespace DamageAssesment.Api.Surveys.Providers
|
||||
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)
|
||||
{
|
||||
@ -136,7 +143,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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user