// Signging the PDF for the integration public async Task <bool> SignFicheIntegrationAsync(string currentUserId, string builderId) { Builder builder = await GetBuilderFromBuilderId(builderId); if (builder == null) { throw new Exception("The builder doesn't exist"); } if (builder.UserId != currentUserId) { throw new UnauthorizedAccessException("You are not the builder you want to sign for"); } User user = await GetUserFromId(builder.UserId); if (user == null) { throw new Exception("The user doesn't exist..."); } Project project = await _projectsService.GetProjectAsync(builderId); if (project == null) { throw new Exception("The builder doesn't have project..."); } PdfIntegrationBuilder pdfIntegrationBuilder = new PdfIntegrationBuilder() { FirstName = user.FirstName, LastName = user.LastName, Birthdate = user.Birthdate, BirthPlace = user.BirthPlace, Email = user.Email, Phone = user.Phone, DiscordTag = user.DiscordTag, LinkedIn = user.LinkedIn, City = user.City, PostalCode = user.PostalCode, Address = user.Address, Situation = builder.Situation, Expectation = await _formsService.GetAnswerForQuestionAsync(currentUserId, "Pourquoi souhaites-tu intégrer le programme Build Up ?"), ProjectDomaine = project.Categorie, ProjectName = project.Name, ProjectLaunchDate = project.LaunchDate, ProjectDescription = project.Description, ProjectTeam = project.Team }; if (_pdfService.SignBuilderIntegration(builderId, pdfIntegrationBuilder)) { var update = Builders <Builder> .Update .Set(dbBuilder => dbBuilder.HasSignedFicheIntegration, true); var builderCard = _pdfService.GenerateBuilderCard(builderId, new PdfBuilderCard() { FirstName = user.FirstName, LastName = user.LastName, Birthdate = user.Birthdate, ValidityDate = builder.CandidatingDate.AddMonths(3) }); var fileId = await _filesService.UploadFile($"buildercard_{builderId}", builderCard); update = update.Set(dbBuilder => dbBuilder.BuilderCardId, fileId); await _builders.UpdateOneAsync(databaseBuilder => databaseBuilder.Id == builderId, update ); await _notificationService.NotifySignedIntegrationPaperBuilder(builderId, user.Email, user.FirstName); return(true); } return(false); }