From 96e644a4ab9cc09a69ad88507f2114e224cddd9d Mon Sep 17 00:00:00 2001
From: esantangelo <enzo020895@gmail.com>
Date: Sun, 15 Nov 2020 16:28:13 -0300
Subject: [PATCH] add endpoint GetAnswerOptions

---
 Tsi1.Api/Tsi1.Api/Controllers/SurveyController.cs    |  9 +++++++++
 .../Tsi1.BusinessLayer/Dtos/AnswerOptionDetailDto.cs | 12 ++++++++++++
 .../Tsi1.BusinessLayer/Helpers/MappingProfile.cs     |  2 ++
 .../Tsi1.BusinessLayer/Interfaces/ISurveyService.cs  |  1 +
 .../Tsi1.BusinessLayer/Services/SurveyService.cs     | 11 +++++++++++
 5 files changed, 35 insertions(+)
 create mode 100644 Tsi1.Api/Tsi1.BusinessLayer/Dtos/AnswerOptionDetailDto.cs

diff --git a/Tsi1.Api/Tsi1.Api/Controllers/SurveyController.cs b/Tsi1.Api/Tsi1.Api/Controllers/SurveyController.cs
index 48ae7c4..990851a 100644
--- a/Tsi1.Api/Tsi1.Api/Controllers/SurveyController.cs
+++ b/Tsi1.Api/Tsi1.Api/Controllers/SurveyController.cs
@@ -132,5 +132,14 @@ namespace Tsi1.Api.Controllers
             return Ok(result.Data);
         }
 
+        [Authorize(Roles = UserTypes.FacultyAdmin + ", " + UserTypes.UdelarAdmin + ", " + UserTypes.Professor + ", " + UserTypes.Student)]
+        [HttpGet("GetAnswerOptions")]
+        public async Task<IActionResult> GetAnswerOptions()
+        {
+            var result = await _surveyService.GetAnswerOptions();
+
+            return Ok(result.Data);
+        }
+
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Dtos/AnswerOptionDetailDto.cs b/Tsi1.Api/Tsi1.BusinessLayer/Dtos/AnswerOptionDetailDto.cs
new file mode 100644
index 0000000..0acb224
--- /dev/null
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Dtos/AnswerOptionDetailDto.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Tsi1.BusinessLayer.Dtos
+{
+    public class AnswerOptionDetailDto
+    {
+        public int Id { get; set; }
+        public string Name { get; set; }
+    }
+}
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Helpers/MappingProfile.cs b/Tsi1.Api/Tsi1.BusinessLayer/Helpers/MappingProfile.cs
index d7f378c..a3e0c6d 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Helpers/MappingProfile.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Helpers/MappingProfile.cs
@@ -49,6 +49,7 @@ namespace Tsi1.BusinessLayer.Helpers
             CreateMap<SurveyResponse, SurveyResponseDetailDto>();
             CreateMap<SurveyAnswer, SurveyAnswerDetailDto>();
             CreateMap<SurveyAnswer, SurveyAnswerCreateDto>();
+            CreateMap<AnswerOption, AnswerOptionDetailDto>();
 
             CreateMap<ForumCreateDto, Forum>();
             CreateMap<ForumPreviewDto, Forum>();
@@ -87,6 +88,7 @@ namespace Tsi1.BusinessLayer.Helpers
             CreateMap<SurveyResponseDetailDto, SurveyResponse>();
             CreateMap<SurveyAnswerDetailDto, SurveyAnswer>();
             CreateMap<SurveyAnswerCreateDto, SurveyAnswer>();
+            CreateMap<AnswerOptionDetailDto, AnswerOption>();
         }
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ISurveyService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ISurveyService.cs
index 166da72..b521e5a 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ISurveyService.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/ISurveyService.cs
@@ -15,5 +15,6 @@ namespace Tsi1.BusinessLayer.Interfaces
         Task<ServiceResult<SurveyDetailDto>> GetMySurvey(int surveyId, int userId);
         Task<ServiceResult<bool>> Complete(SurveyResponseCreateDto surveyResponse);
         Task<ServiceResult<List<SurveyResponseDetailDto>>> GetAllResponses(int surveyId, string userType, int tenantId);
+        Task<ServiceResult<List<AnswerOptionDetailDto>>> GetAnswerOptions();
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/SurveyService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/SurveyService.cs
index 51beed6..88f08b2 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Services/SurveyService.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/SurveyService.cs
@@ -206,5 +206,16 @@ namespace Tsi1.BusinessLayer.Services
 
             return result;
         }
+
+        public async Task<ServiceResult<List<AnswerOptionDetailDto>>> GetAnswerOptions()
+        {
+            var result = new ServiceResult<List<AnswerOptionDetailDto>>();
+
+            var answerOptions = await _context.AnswerOptions.AsNoTracking().ToListAsync();
+
+            result.Data = _mapper.Map<List<AnswerOptionDetailDto>>(answerOptions);
+
+            return result;
+        }
     }
 }
-- 
GitLab