Skip to content

Commit af9c63b

Browse files
committed
TD-480 Implements create assessment controller and service
1 parent e0c17fd commit af9c63b

File tree

20 files changed

+140
-185
lines changed

20 files changed

+140
-185
lines changed

DigitalLearningSolutions.Data/DataServices/CompetencyAssessmentDataService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,8 @@ public bool UpdateCompetencyAssessmentDescription(int competencyAssessmentId, in
295295
public bool InsertSelfAssessmentFramework(int adminId, int selfAssessmentId, int frameworkId)
296296
{
297297
var numberOfAffectedRows = connection.Execute(
298-
@"Insert SelfAssessmentFrameworks (SelfAssessmentId, FrameworkId, CreatedByAdminId)
299-
VALUES (@selfAssessmentId, @frameworkId, @adminId)
298+
@"INSERT INTO SelfAssessmentFrameworks (SelfAssessmentId, FrameworkId, CreatedByAdminId)
299+
SELECT @selfAssessmentId, @frameworkId, @adminId
300300
WHERE NOT EXISTS (SELECT 1 FROM SelfAssessmentFrameworks WHERE SelfAssessmentId = @selfAssessmentId AND FrameworkId = @frameworkId)"
301301
,
302302
new { adminId, selfAssessmentId, frameworkId }

DigitalLearningSolutions.Web/Controllers/CompetencyAssessmentsController/CompetencyAssessments.cs

Lines changed: 28 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -92,66 +92,15 @@ public IActionResult ViewCompetencyAssessments(string tabname, string? searchStr
9292
);
9393
return View("Index", model);
9494
}
95-
public IActionResult StartNewCompetencyAssessmentSession()
96-
{
97-
var adminId = GetAdminID();
98-
TempData.Clear();
99-
var sessionNewCompetencyAssessment = new SessionNewCompetencyAssessment();
100-
if (!Request.Cookies.ContainsKey(CookieName))
101-
{
102-
var id = Guid.NewGuid();
103-
104-
Response.Cookies.Append(
105-
CookieName,
106-
id.ToString(),
107-
new CookieOptions
108-
{
109-
Expires = DateTimeOffset.UtcNow.AddDays(30)
110-
});
111-
112-
sessionNewCompetencyAssessment.Id = id;
113-
}
114-
else
115-
{
116-
if (Request.Cookies.TryGetValue(CookieName, out string idString))
117-
{
118-
sessionNewCompetencyAssessment.Id = Guid.Parse(idString);
119-
}
120-
else
121-
{
122-
var id = Guid.NewGuid();
12395

124-
Response.Cookies.Append(
125-
CookieName,
126-
id.ToString(),
127-
new CookieOptions
128-
{
129-
Expires = DateTimeOffset.UtcNow.AddDays(30)
130-
});
131-
sessionNewCompetencyAssessment.Id = id;
132-
}
133-
}
134-
CompetencyAssessmentBase competencyAssessmentBase = new CompetencyAssessmentBase()
135-
{
136-
BrandID = 6,
137-
OwnerAdminID = adminId,
138-
National = true,
139-
Public = true,
140-
PublishStatusID = 1,
141-
UserRole = 3
142-
};
143-
sessionNewCompetencyAssessment.CompetencyAssessmentBase = competencyAssessmentBase;
144-
TempData.Set(sessionNewCompetencyAssessment);
145-
return RedirectToAction("CompetencyAssessmentName", "CompetencyAssessments", new { actionname = "New" });
146-
}
147-
148-
[Route("/CompetencyAssessments/Name/{actionname}/{competencyAssessmentId}")]
149-
[Route("/CompetencyAssessments/Name/{actionname}")]
96+
[Route("/CompetencyAssessments/{actionName}/Name/{competencyAssessmentId}")]
97+
[Route("/CompetencyAssessments/Framework/{frameworkId}/{actionName}/Name")]
98+
[Route("/CompetencyAssessments/{actionName}/Name")]
15099
[SetSelectedTab(nameof(NavMenuTab.CompetencyAssessments))]
151-
public IActionResult CompetencyAssessmentName(string actionname, int competencyAssessmentId = 0)
100+
public IActionResult CompetencyAssessmentName(string actionName, int competencyAssessmentId = 0, int? frameworkId = null)
152101
{
153102
var adminId = GetAdminID();
154-
CompetencyAssessmentBase? competencyAssessmentBase;
103+
var competencyAssessmentBase = new CompetencyAssessmentBase();
155104
if (competencyAssessmentId > 0)
156105
{
157106
competencyAssessmentBase = competencyAssessmentService.GetCompetencyAssessmentBaseById(competencyAssessmentId, adminId);
@@ -165,21 +114,23 @@ public IActionResult CompetencyAssessmentName(string actionname, int competencyA
165114
return StatusCode(403);
166115
}
167116
}
168-
else
117+
else if( frameworkId != null )
169118
{
170-
SessionNewCompetencyAssessment sessionNewCompetencyAssessment = TempData.Peek<SessionNewCompetencyAssessment>();
171-
TempData.Set(sessionNewCompetencyAssessment);
172-
competencyAssessmentBase = sessionNewCompetencyAssessment.CompetencyAssessmentBase;
173-
TempData.Set(sessionNewCompetencyAssessment);
119+
var framework = frameworkService.GetBaseFrameworkByFrameworkId((int)frameworkId, adminId);
120+
if ( framework != null )
121+
{
122+
competencyAssessmentBase.CompetencyAssessmentName = framework.FrameworkName;
123+
}
174124
}
175125
return View("Name", competencyAssessmentBase);
176126
}
177127

178128
[HttpPost]
179-
[Route("/CompetencyAssessments/Name/{actionname}/{competencyAssessmentId}")]
180-
[Route("/CompetencyAssessments/Name/{actionname}")]
129+
[Route("/CompetencyAssessments/{actionName}/Name/{competencyAssessmentId}")]
130+
[Route("/CompetencyAssessments/Framework/{frameworkId}/{actionName}/Name")]
131+
[Route("/CompetencyAssessments/{actionName}/Name")]
181132
[SetSelectedTab(nameof(NavMenuTab.CompetencyAssessments))]
182-
public IActionResult SaveProfileName(CompetencyAssessmentBase competencyAssessmentBase, string actionname, int competencyAssessmentId = 0, int? frameworkId = null)
133+
public IActionResult SaveProfileName(CompetencyAssessmentBase competencyAssessmentBase, string actionName, int competencyAssessmentId = 0, int? frameworkId = null)
183134
{
184135
if (!ModelState.IsValid)
185136
{
@@ -191,7 +142,7 @@ public IActionResult SaveProfileName(CompetencyAssessmentBase competencyAssessme
191142
{
192143
var userCentreId = (int)GetCentreId();
193144
var adminId = GetAdminID();
194-
if (actionname == "New")
145+
if (actionName == "New")
195146
{
196147
var sameItems = competencyAssessmentService.GetCompetencyAssessmentByName(competencyAssessmentBase.CompetencyAssessmentName, GetAdminID());
197148
if (sameItems != null)
@@ -216,10 +167,10 @@ public IActionResult SaveProfileName(CompetencyAssessmentBase competencyAssessme
216167
}
217168
}
218169

219-
[Route("/CompetencyAssessments/ProfessionalGroup/{actionname}/{competencyAssessmentId}")]
220-
[Route("/CompetencyAssessments/ProfessionalGroup/{actionname}")]
170+
[Route("/CompetencyAssessments/ProfessionalGroup/{actionName}/{competencyAssessmentId}")]
171+
[Route("/CompetencyAssessments/ProfessionalGroup/{actionName}")]
221172
[SetSelectedTab(nameof(NavMenuTab.CompetencyAssessments))]
222-
public IActionResult CompetencyAssessmentProfessionalGroup(string actionname, int competencyAssessmentId = 0)
173+
public IActionResult CompetencyAssessmentProfessionalGroup(string actionName, int competencyAssessmentId = 0)
223174
{
224175
var adminId = GetAdminID();
225176
CompetencyAssessmentBase? competencyAssessmentBase;
@@ -253,10 +204,10 @@ public IActionResult CompetencyAssessmentProfessionalGroup(string actionname, in
253204
}
254205

255206
[HttpPost]
256-
[Route("/CompetencyAssessments/ProfessionalGroup/{actionname}/{competencyAssessmentId}")]
257-
[Route("/CompetencyAssessments/ProfessionalGroup/{actionname}")]
207+
[Route("/CompetencyAssessments/ProfessionalGroup/{actionName}/{competencyAssessmentId}")]
208+
[Route("/CompetencyAssessments/ProfessionalGroup/{actionName}")]
258209
[SetSelectedTab(nameof(NavMenuTab.CompetencyAssessments))]
259-
public IActionResult SaveProfessionalGroup(CompetencyAssessmentBase competencyAssessmentBase, string actionname, int competencyAssessmentId = 0)
210+
public IActionResult SaveProfessionalGroup(CompetencyAssessmentBase competencyAssessmentBase, string actionName, int competencyAssessmentId = 0)
260211
{
261212
if (competencyAssessmentBase.NRPProfessionalGroupID == null)
262213
{
@@ -265,20 +216,20 @@ public IActionResult SaveProfessionalGroup(CompetencyAssessmentBase competencyAs
265216
// do something
266217
return View("Name", competencyAssessmentBase);
267218
}
268-
if (actionname == "New")
219+
if (actionName == "New")
269220
{
270221
SessionNewCompetencyAssessment sessionNewCompetencyAssessment = TempData.Peek<SessionNewCompetencyAssessment>();
271222
sessionNewCompetencyAssessment.CompetencyAssessmentBase = competencyAssessmentBase;
272223
TempData.Set(sessionNewCompetencyAssessment);
273-
return RedirectToAction("CompetencyAssessmentSubGroup", "CompetencyAssessments", new { actionname });
224+
return RedirectToAction("CompetencyAssessmentSubGroup", "CompetencyAssessments", new { actionName });
274225
}
275226
else
276227
{
277228
var adminId = GetAdminID();
278229
var isUpdated = competencyAssessmentService.UpdateCompetencyAssessmentProfessionalGroup(competencyAssessmentBase.ID, adminId, competencyAssessmentBase.NRPProfessionalGroupID);
279230
if (isUpdated)
280231
{
281-
return RedirectToAction("CompetencyAssessmentSubGroup", "CompetencyAssessments", new { actionname, competencyAssessmentId });
232+
return RedirectToAction("CompetencyAssessmentSubGroup", "CompetencyAssessments", new { actionName, competencyAssessmentId });
282233
}
283234
else
284235
{
@@ -287,10 +238,10 @@ public IActionResult SaveProfessionalGroup(CompetencyAssessmentBase competencyAs
287238
}
288239
}
289240

290-
[Route("/CompetencyAssessments/SubGroup/{actionname}/{competencyAssessmentId}")]
291-
[Route("/CompetencyAssessments/SubGroup/{actionname}")]
241+
[Route("/CompetencyAssessments/SubGroup/{actionName}/{competencyAssessmentId}")]
242+
[Route("/CompetencyAssessments/SubGroup/{actionName}")]
292243
[SetSelectedTab(nameof(NavMenuTab.CompetencyAssessments))]
293-
public IActionResult CompetencyAssessmentSubGroup(string actionname, int competencyAssessmentId = 0)
244+
public IActionResult CompetencyAssessmentSubGroup(string actionName, int competencyAssessmentId = 0)
294245
{
295246
return View("SubGroup");
296247
}

DigitalLearningSolutions.Web/Controllers/CompetencyAssessmentsController/CompetencyAssessmentsController.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,21 @@
1111
public partial class CompetencyAssessmentsController : Controller
1212
{
1313
private readonly ICompetencyAssessmentService competencyAssessmentService;
14+
private readonly IFrameworkService frameworkService;
1415
private readonly ICommonService commonService;
1516
private readonly IFrameworkNotificationService frameworkNotificationService;
1617
private readonly ILogger<CompetencyAssessmentsController> logger;
1718
private readonly IConfiguration config;
1819
public CompetencyAssessmentsController(
1920
ICompetencyAssessmentService competencyAssessmentService,
21+
IFrameworkService frameworkService,
2022
ICommonService commonService,
2123
IFrameworkNotificationService frameworkNotificationService,
2224
ILogger<CompetencyAssessmentsController> logger,
2325
IConfiguration config)
2426
{
2527
this.competencyAssessmentService = competencyAssessmentService;
28+
this.frameworkService = frameworkService;
2629
this.commonService = commonService;
2730
this.frameworkNotificationService = frameworkNotificationService;
2831
this.logger = logger;

0 commit comments

Comments
 (0)