fixes
This commit is contained in:
parent
a06991a318
commit
7b7998f408
@ -44,7 +44,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
|
|
||||||
[HttpGet("loginEdition")]
|
[HttpGet("loginEdition")]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<ActionResult> LoginIntoEdition(Guid editionId, User user, CancellationToken token)
|
public async Task<ActionResult> LoginIntoEdition(Guid editionId, [FromServices] User user, CancellationToken token)
|
||||||
{
|
{
|
||||||
var edition = await _context.Editions.FindAsync(editionId);
|
var edition = await _context.Editions.FindAsync(editionId);
|
||||||
|
|
||||||
|
@ -35,7 +35,8 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||||
[Authorize(Policy = Policies.RegisteredOnly)]
|
[Authorize(Policy = Policies.RegisteredOnly)]
|
||||||
public async Task<ActionResult> AddDocumentToInternship([FromBody] DocumentPublishRequest documentRequest, CancellationToken cancellationToken)
|
public async Task<ActionResult> AddDocumentToInternship([FromBody] DocumentPublishRequest documentRequest,
|
||||||
|
[FromServices] User user, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var validator = new DocumentPublishRequest.Validator();
|
var validator = new DocumentPublishRequest.Validator();
|
||||||
var validationResult = await validator.ValidateAsync(documentRequest, cancellationToken);
|
var validationResult = await validator.ValidateAsync(documentRequest, cancellationToken);
|
||||||
@ -45,9 +46,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
return BadRequest(validationResult.ToString());
|
return BadRequest(validationResult.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
var personNumber = long.Parse(User.FindFirst(InternshipClaims.PersonNumber).Value);
|
return await _internshipService.AddDocumentToInternship(documentRequest, user.PersonNumber, cancellationToken);
|
||||||
|
|
||||||
return await _internshipService.AddDocumentToInternship(documentRequest, personNumber, cancellationToken);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -38,15 +38,13 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<ActionResult<IList<EditionResult>>> GetAvailableEditions(CancellationToken token)
|
public async Task<ActionResult<IList<EditionResult>>> GetAvailableEditions([FromServices] User user, CancellationToken token)
|
||||||
{
|
{
|
||||||
var personNumber = long.Parse(User.FindFirst(InternshipClaims.PersonNumber).Value);
|
|
||||||
|
|
||||||
var editions =
|
var editions =
|
||||||
await Context.Editions
|
await Context.Editions
|
||||||
.Where(edition =>
|
.Where(edition =>
|
||||||
edition.Internships
|
edition.Internships
|
||||||
.Any(internship => internship.Student.Id == personNumber))
|
.Any(internship => internship.Student.Id == user.PersonNumber))
|
||||||
.ProjectTo<EditionResult>(Mapper.ConfigurationProvider)
|
.ProjectTo<EditionResult>(Mapper.ConfigurationProvider)
|
||||||
.ToListAsync(token);
|
.ToListAsync(token);
|
||||||
|
|
||||||
@ -74,7 +72,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
var edition =
|
var edition =
|
||||||
await Context.Editions
|
await Context.Editions
|
||||||
.Include(e => e.AvailableSubjects)
|
.Include(e => e.AvailableSubjects)
|
||||||
.Where(e => e.Id == id)
|
.Where(e => e.Id.Equals(id))
|
||||||
.ProjectTo<EditionConfigurationResult>(Mapper.ConfigurationProvider)
|
.ProjectTo<EditionConfigurationResult>(Mapper.ConfigurationProvider)
|
||||||
.FirstOrDefaultAsync(token);
|
.FirstOrDefaultAsync(token);
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<ActionResult> SubmitRegistrationForm([FromBody] RegistrationFormQuery registrationQuery,
|
public async Task<ActionResult> SubmitRegistrationForm([FromBody] RegistrationFormQuery registrationQuery,
|
||||||
CancellationToken cancellationToken)
|
[FromServices] User user, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var validator = new RegistrationFormQuery.Validator();
|
var validator = new RegistrationFormQuery.Validator();
|
||||||
var validationResult = await validator.ValidateAsync(registrationQuery, cancellationToken);
|
var validationResult = await validator.ValidateAsync(registrationQuery, cancellationToken);
|
||||||
@ -42,9 +42,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
return BadRequest(validationResult.ToString());
|
return BadRequest(validationResult.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
var personNumber = long.Parse(User.FindFirst(InternshipClaims.PersonNumber).Value);
|
return await _internshipService.SubmitRegistration(registrationQuery, user.PersonNumber, cancellationToken);
|
||||||
|
|
||||||
return await _internshipService.SubmitRegistration(registrationQuery, personNumber, cancellationToken);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -41,7 +42,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
[Authorize]
|
[Authorize(Policy = Policies.RegisteredOnly)]
|
||||||
public async Task<ActionResult<IList<InternshipType>>> GetInternshipTypesForEdition([FromServices] User user, CancellationToken cancellationToken)
|
public async Task<ActionResult<IList<InternshipType>>> GetInternshipTypesForEdition([FromServices] User user, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var edition =
|
var edition =
|
||||||
|
@ -33,7 +33,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<IActionResult> RegisterStudentForEdition([FromBody] Guid registrationCode, CancellationToken token)
|
public async Task<IActionResult> RegisterStudentForEdition([FromBody] Guid registrationCode, [FromServices] User user, CancellationToken token)
|
||||||
{
|
{
|
||||||
var edition = await _context.Editions.FindAsync(registrationCode, token);
|
var edition = await _context.Editions.FindAsync(registrationCode, token);
|
||||||
|
|
||||||
@ -42,9 +42,7 @@ namespace InternshipSystem.Api.Controllers
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
var personNumber = long.Parse(User.FindFirst(InternshipClaims.PersonNumber).Value);
|
var student = await _context.Students.FindAsync(user.PersonNumber, token);
|
||||||
|
|
||||||
var student = await _context.Students.FindAsync(personNumber, token);
|
|
||||||
|
|
||||||
edition.RegisterInternship(student);
|
edition.RegisterInternship(student);
|
||||||
await _context.SaveChangesAsync(token);
|
await _context.SaveChangesAsync(token);
|
||||||
|
@ -23,11 +23,18 @@ namespace InternshipSystem.Api.ModelBinders
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Guid? editionGuid = null;
|
||||||
|
if (principal.FindFirst(InternshipClaims.Edition) != null
|
||||||
|
&& Guid.TryParse(principal.FindFirst(InternshipClaims.Edition).Value, out var edition))
|
||||||
|
{
|
||||||
|
editionGuid = edition;
|
||||||
|
}
|
||||||
|
|
||||||
var user = new User
|
var user = new User
|
||||||
{
|
{
|
||||||
Name = principal.FindFirst(ClaimTypes.Name).Value,
|
Name = principal.FindFirst(ClaimTypes.Name).Value,
|
||||||
PersonNumber = long.Parse(principal.FindFirst(InternshipClaims.PersonNumber).Value),
|
PersonNumber = long.Parse(principal.FindFirst(InternshipClaims.PersonNumber).Value),
|
||||||
EditionId = Guid.TryParse(principal.FindFirst(InternshipClaims.Edition).Value, out var edition) ? edition : (Guid?) null
|
EditionId = editionGuid
|
||||||
};
|
};
|
||||||
|
|
||||||
bindingContext.Result = ModelBindingResult.Success(user);
|
bindingContext.Result = ModelBindingResult.Success(user);
|
||||||
|
Loading…
Reference in New Issue
Block a user