private async Task <User> GetUser(UserDraft userDraft) { var existingUser = await _userDataService.FirstOrDefault(u => u.Email == userDraft.Email); if (!(existingUser is null)) { return(existingUser); } var user = new User { FirstName = userDraft.FirstName, LastName = userDraft.LastName, Email = userDraft.Email, }; return(await _userDataService.Create(user)); }
private string FillAndSavePdf(UserDraft userDraft, InstructionDraft instructionDraft, string instructionPath) { try { using var reader = new PdfReader(_templateFilePath); using var writer = new PdfWriter(instructionPath); using var pdf = new PdfDocument(reader, writer); var form = PdfAcroForm.GetAcroForm(pdf, true); var doc = new Document(pdf); form.SetGenerateAppearance(true); form.GetField("deviceName").SetValue(instructionDraft.Device.Name); form.GetField("deviceChief").SetValue(instructionDraft.Device.Chief?.FullName ?? string.Empty); form.GetField("onlyFor").SetValue(instructionDraft.OnlyFor ?? string.Empty); form.GetField("notFor").SetValue(instructionDraft.ExceptFor ?? string.Empty); form.GetField("instructor").SetValue(instructionDraft.Instructor.FullName); form.GetField("instructed").SetValue(userDraft.FullName); form.GetField("instructionDate").SetValue(DateTime.Today.ToString("d", CultureInfo.CurrentCulture)); //var signatureImage = PositionImage(form, "instructorSignature", instructionDraft.Instructor.Signature); //var instructedImage = PositionImage(form, "instructedSignature", userDraft.Signature); //doc.Add(signatureImage); //doc.Add(instructedImage); form.RemoveField("instructorSignature"); form.RemoveField("instructedSignature"); doc.Close(); pdf.Close(); } catch (Exception e) { _logger.Error(e, "Instruction pdf could not be filled or saved."); if (File.Exists(instructionPath)) { File.Delete(instructionPath); } return(null); } return(instructionPath); }
public SignatureBundle(UserDraft userDraft, SignatureCause cause) { UserDraft = userDraft; Cause = cause; }