Multilingual support for survey and Questions

This commit is contained in:
Reginald Cherenfant Jasmin
2023-08-25 09:17:53 -04:00
31 changed files with 360 additions and 81 deletions

View File

@ -14,7 +14,10 @@ namespace DamageAssesment.Api.Answers.Controllers
public AnswersController(IAnswersProvider answersProvider) {
this.answerProvider=answersProvider;
}
//get all answers
/// <summary>
/// Get all answers
/// </summary>
[HttpGet("Answers")]
public async Task<ActionResult> GetAnswersAsync() {
@ -26,7 +29,11 @@ namespace DamageAssesment.Api.Answers.Controllers
return NoContent();
}
//get answer based on answerid
/// <summary>
/// Get an answer based on answerId.
/// </summary>
[HttpGet("Answers/{Id}")]
public async Task<ActionResult> GetAnswerByIdAsync(int Id)
{
@ -39,7 +46,9 @@ namespace DamageAssesment.Api.Answers.Controllers
return NotFound();
}
// get all answers based on response id
/// <summary>
/// Get all answers based on responseId.
/// </summary>
[HttpGet("AnswersByResponse/{ResponseId}")]
public async Task<IActionResult> GetAnswersByResponseId(int ResponseId)
{
@ -50,7 +59,10 @@ namespace DamageAssesment.Api.Answers.Controllers
}
return NoContent();
}
// get all answers based on question id
/// <summary>
/// Get all answers based on questionId.
/// </summary>
[HttpGet("AnswersByQuestion/{QuestionId}")]
public async Task<IActionResult> AnswersByQuestionId(int QuestionId)
{
@ -61,14 +73,16 @@ namespace DamageAssesment.Api.Answers.Controllers
}
return NotFound();
}
//update existing answer
/// <summary>
/// Update an existing answer.
/// </summary>
[HttpPut("Answers")]
public async Task<IActionResult> UpdateAnswer(Db.Answer answer)
public IActionResult UpdateAnswer(Db.Answer answer)
{
if (answer != null)
{
var result = await this.answerProvider.UpdateAnswerAsync(answer);
var result = this.answerProvider.UpdateAnswerAsync(answer);
if (result.IsSuccess)
{
return Ok(result.Answer);
@ -80,13 +94,16 @@ namespace DamageAssesment.Api.Answers.Controllers
}
return NotFound();
}
//save new answer
/// <summary>
/// Save a new answer.
/// </summary>
[HttpPost("Answers")]
public async Task<IActionResult> CreateAnswer(Db.Answer answer)
public IActionResult CreateAnswer(Db.Answer answer)
{
if (answer != null)
{
var result = await this.answerProvider.PostAnswerAsync(answer);
var result = this.answerProvider.PostAnswerAsync(answer);
if (result.IsSuccess)
{
return Ok(result.Answer);
@ -95,7 +112,10 @@ namespace DamageAssesment.Api.Answers.Controllers
}
return CreatedAtRoute("DefaultApi", new { id = answer.Id }, answer);
}
//delete existing answer
/// <summary>
/// Delete an existing answer.
/// </summary>
[HttpDelete("Answers/{id}")]
public async Task<IActionResult> DeleteAnswer(int id)
{

View File

@ -4,6 +4,7 @@
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>

View File

@ -6,8 +6,8 @@
Task<(bool IsSuccess, IEnumerable<Models.Answer> Answers, string ErrorMessage)> GetAnswersByQuestionAsync(int questionId);
Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> GetAnswerByIdAsync(int Id);
Task<(bool IsSuccess, IEnumerable<Models.Answer> Answers, string ErrorMessage)> GetAnswersAsync(int responseId);
Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> PostAnswerAsync(Db.Answer Answer);
Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> UpdateAnswerAsync(Db.Answer Answer);
(bool IsSuccess, Models.Answer Answer, string ErrorMessage) PostAnswerAsync(Db.Answer Answer);
(bool IsSuccess, Models.Answer Answer, string ErrorMessage) UpdateAnswerAsync(Db.Answer Answer);
Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> DeleteAnswerAsync(int Id);
}
}

View File

@ -2,6 +2,7 @@ using DamageAssesment.Api.Answers.Db;
using DamageAssesment.Api.Answers.Interfaces;
using DamageAssesment.Api.Answers.Providers;
using Microsoft.EntityFrameworkCore;
using System.Reflection;
var builder = WebApplication.CreateBuilder(args);
@ -10,7 +11,14 @@ var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
//builder.Services.AddSwaggerGen();
builder.Services.AddSwaggerGen(c =>
{
// Include XML comments from your assembly
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
});
builder.Services.AddScoped<IAnswersProvider, AnswersProvider>();
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); //4/30
builder.Services.AddDbContext<AnswerDbContext>(option =>

View File

@ -108,7 +108,7 @@ namespace DamageAssesment.Api.Answers.Providers
return (false, null, ex.Message);
}
}
public async Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> PostAnswerAsync(Db.Answer Answer)
public (bool IsSuccess, Models.Answer Answer, string ErrorMessage) PostAnswerAsync(Db.Answer Answer)
{
try
{
@ -128,7 +128,7 @@ namespace DamageAssesment.Api.Answers.Providers
return (false, null, ex.Message);
}
}
public async Task<(bool IsSuccess, Models.Answer Answer, string ErrorMessage)> UpdateAnswerAsync(Db.Answer Answer)
public (bool IsSuccess, Models.Answer Answer, string ErrorMessage) UpdateAnswerAsync(Db.Answer Answer)
{
try
{