public async Task <Tuple <IEnumerable <Tuple <Person, Face, Candidate> >, string> > CheckNameFromImage(Stream stream) { var count = _services.Count(); var faceServer = _services.ToArray()[NameIdentityFromServiceGroup.selected++ % count]; var identitier = new NameIdentity(faceServer); var detail = await identitier.CheckNameFromImage(stream); return(Tuple.Create(detail, faceServer.SubKey)); }
private OrdersControllerTestContext(Guid primaryOrganisationId) { Name = "Test User"; NameIdentity = Guid.NewGuid(); PrimaryOrganisationId = primaryOrganisationId; OrderRepositoryMock = new Mock <IOrderRepository>(); CreateOrderServiceMock = new Mock <ICreateOrderService>(); CreateOrderServiceMock.Setup(x => x.CreateAsync(It.IsAny <CreateOrderRequest>())) .ReturnsAsync(() => CreateOrderResult); Orders = new List <Order>(); OrderRepositoryMock.Setup(x => x.ListOrdersByOrganisationIdAsync(It.IsAny <Guid>())) .ReturnsAsync(() => Orders); OrderRepositoryMock.Setup(x => x.GetOrderByIdAsync(It.IsAny <string>())).ReturnsAsync(() => Order); ServiceRecipientRepositoryMock = new Mock <IServiceRecipientRepository>(); ServiceRecipientRepositoryMock .Setup(x => x.GetCountByOrderIdAsync(It.IsNotNull <string>())) .ReturnsAsync(() => ServiceRecipientListCount); ClaimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity( new[] { new Claim("Ordering", "Manage"), new Claim("primaryOrganisationId", PrimaryOrganisationId.ToString()), new Claim(ClaimTypes.Name, Name), new Claim(ClaimTypes.NameIdentifier, NameIdentity.ToString()) }, "mock")); OrdersController = OrdersControllerBuilder .Create() .WithOrderRepository(OrderRepositoryMock.Object) .WithServiceRecipientRepository(ServiceRecipientRepositoryMock.Object) .WithCreateOrderService(CreateOrderServiceMock.Object) .Build(); OrdersController.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext { User = ClaimsPrincipal } }; }
public AccountsController(OpgContext db, FaceApiService faceApiService, NameIdentity service, NameIdentityFromServiceGroup nameIdentityFromServiceGroup, NameRegisterFromServiceGroup nameRegisterFromServiceGroup, PersonGroupCreateFromServiceGroup personGroupCreateFromServiceGroup, PersonGroupTrainFromServiceGroup personGroupTrainFromServiceGroup, BlobClient blobClient, TableClient tableClient ) { _opgContext = db; _faceApiService = faceApiService; _nameIdentity = service; _nameIdentityFromServiceGroup = nameIdentityFromServiceGroup; _nameRegisterFromServiceGroup = nameRegisterFromServiceGroup; _personGroupCreateFromServiceGroup = personGroupCreateFromServiceGroup; _personGroupTrainFromServiceGroup = personGroupTrainFromServiceGroup; _blobClient = blobClient; _tableClient = tableClient; }
//CPS012 Add first or middle names for ambiguous last names v5.0 //Version 5.0 Completely re-written for Citavi 6.4 (> Citavi 6.3.16) //Berücksichtigt die 3 neuen Werte: NameIdentity.LastNamePrefix, NameIdentity.LastNameFirstNameInitialMiddleNameInitial & NameIdentity.LastNameFirstNameInitialMiddleNameFull //Version 4.2 Added first name font style parameter //Version 4.1 Built-in option to insert non-breaking spaces and hyphens //Version 4.0 Completely re-written for Citavi 6 (6.2 or higher) //Disambiguation of identical person names by successively adding first name initials, full first names, middle name initals and full middle names (if available) public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { //Should only the primary authors be considered in checking last names for ambiguity? bool checkAmbiguityForPrimaryAuthorsOnly = false; //When a first and/or middle name is added for disambiguation, should that be before or after the last name? PersonNameOrder nameOrderForAmbiguityResolution = PersonNameOrder.FirstNameLastName; //Formatting of the first name; combine several styles with a pipe character //FontStyle firstNameFontStyle = FontStyle.Bold | FontStyle.Italic; FontStyle firstNameFontStyle = FontStyle.Neutral; //In case of ambiguous last names, should the first attempt to disambigutate be the addition of full first names or just the initials? NameFormat firstNameFormatForAmbiguityResolution = NameFormat.Abbreviated; //NameFormat.Full John Mike //NameFormat.Abbreviated J. M. //NameFormat.AbbreviatedNoPeriod J M //NameFormat.AbbreviatedCompact J.M. //NameFormat.Compact JM //Insert non-breaking spaces and hyphens - geschütztes Leerzeichen und geschützten Bindestrich einfügen var useNonBreakingSpacesInAndBetweenFirstAndMiddleNames = true; //if true, then e.g. Meyers, J.°R. var useNonBreakingSpaceBetweenLastAndFirstName = true; //if true, then e.g. Meyers,°John Richard var useNonBreakingSpaceBetweenPrefixAndName = true; //if true, then e.g. von°Bülow, V. var useNonBreakingHyphenInFirstAndMiddleName = true; //if true, then e.g. Ewing, J.-R. handled = false; if (citation == null || citation.Reference == null) { return(null); } if (componentPart == null || componentPart.Elements == null || !componentPart.Elements.Any()) { return(null); } CitationManager citationManager = citation.CitationManager; if (citationManager == null) { return(null); } PersonFieldElement personFieldElement = componentPart.Elements.OfType <PersonFieldElement>().FirstOrDefault(); if (personFieldElement == null) { return(null); } if (personFieldElement.SuppressOutput) { return(null); } #region Insert non-breaking spaces and hyphens IEnumerable <PersonFieldElement> personFieldElements = componentPart.Elements.OfType <PersonFieldElement>(); if (personFieldElements == null || personFieldElements.Count() == 0) { return(null); } foreach (PersonFieldElement element in personFieldElements) { if (useNonBreakingSpacesInAndBetweenFirstAndMiddleNames) { element.FirstGroupUseNonBreakingSpaceInAndBetweenFirstAndMiddleNames = true; element.SecondGroupUseNonBreakingSpaceInAndBetweenFirstAndMiddleNames = true; element.LastPersonUseNonBreakingSpaceInAndBetweenFirstAndMiddleNames = true; } if (useNonBreakingSpaceBetweenLastAndFirstName) { element.FirstGroupUseNonBreakingSpaceBetweenLastAndFirstName = true; element.SecondGroupUseNonBreakingSpaceBetweenLastAndFirstName = true; element.LastPersonUseNonBreakingSpaceBetweenLastAndFirstName = true; } if (useNonBreakingSpaceBetweenPrefixAndName) { element.FirstGroupUseNonBreakingSpaceBetweenPrefixAndName = true; element.SecondGroupUseNonBreakingSpaceBetweenPrefixAndName = true; element.LastPersonUseNonBreakingSpaceBetweenPrefixAndName = true; } if (useNonBreakingHyphenInFirstAndMiddleName) { element.FirstGroupUseNonBreakingHyphenInFirstAndMiddleNames = true; element.SecondGroupUseNonBreakingHyphenInFirstAndMiddleNames = true; element.LastPersonUseNonBreakingHyphenInFirstAndMiddleNames = true; } } #endregion #region BeforeFormatPerson: Resolve last name ambiguity BeforeFormatPersonEventArgs bfp; personFieldElement.PersonFormatter.BeforeFormatPerson += (sender, e) => { bfp = (BeforeFormatPersonEventArgs)e; if (bfp.Person == null) { return; } if (checkAmbiguityForPrimaryAuthorsOnly && bfp.Index > 1) { return; } bool isLastNameAmbiguous = checkAmbiguityForPrimaryAuthorsOnly ? citationManager.IsFirstCitedPersonLastnameAmbiguous(bfp.Person.LastName) : citationManager.IsCitedPersonLastNameAmbiguous(bfp.Person.LastName); if (!isLastNameAmbiguous) { return; } NameIdentity nameIdentity = checkAmbiguityForPrimaryAuthorsOnly ? citationManager.GetFirstPersonNameIdentity(bfp.Person) : citationManager.GetPersonNameIdentity(bfp.Person); /* PERSON A PERSON B * NameIdentity.None Müller, Gerd Jakob Meier, Konrad Martin * NameIdentity.LastName Müller, Gerd Jakob Müller, Konrad Martin * NameIdentity.LastNamePrefix Müller, Gerd Jakob von Müller, Konrad Martin von * NameIdentity.LastNameFirstNameInitial Müller, Gerd Jakob Müller, Gustav Martin * NameIdentity.LastNameFirstNameFull Müller, Gerd Jakob Müller, Gerd Martin * NameIdentity.LastNameFirstNameFullMiddleNameInitial Müller, Gerd Jakob Müller, Gerd Johann * NameIdentity.LastNameFirstNameFullMiddleNameFull Müller, Gerd Jakob Müller, Gerd Jakob [der Ältere] */ switch (nameIdentity) { case NameIdentity.LastName: { if (!string.IsNullOrEmpty(bfp.Person.Prefix)) { bfp.FirstNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameUsage = MiddleNameUsage.None; break; } else { bfp.FirstNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameUsage = MiddleNameUsage.All; break; } } case NameIdentity.LastNamePrefix: { bfp.FirstNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameUsage = MiddleNameUsage.All; bfp.NamePrefixFontStyle = firstNameFontStyle; break; } case NameIdentity.LastNameFirstNameInitial: { if (!string.IsNullOrEmpty(bfp.Person.MiddleName)) { bfp.FirstNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameUsage = MiddleNameUsage.All; break; } else { bfp.FirstNameFormat = NameFormat.Full; bfp.MiddleNameFormat = NameFormat.Full; bfp.MiddleNameUsage = MiddleNameUsage.All; break; } } case NameIdentity.LastNameFirstNameInitialMiddleNameInitial: { bfp.FirstNameFormat = NameFormat.Full; bfp.MiddleNameFormat = NameFormat.Full; bfp.MiddleNameUsage = MiddleNameUsage.All; break; } case NameIdentity.LastNameFirstNameInitialMiddleNameFull: { bfp.FirstNameFormat = NameFormat.Full; bfp.MiddleNameFormat = NameFormat.Full; bfp.MiddleNameUsage = MiddleNameUsage.All; break; } case NameIdentity.LastNameFirstNameFull: { bfp.FirstNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameFormat = firstNameFormatForAmbiguityResolution; bfp.MiddleNameUsage = MiddleNameUsage.All; break; } case NameIdentity.LastNameFirstNameFullMiddleNameInitial: { bfp.FirstNameFormat = NameFormat.Full; bfp.MiddleNameFormat = NameFormat.Full; bfp.MiddleNameUsage = MiddleNameUsage.All; break; } case NameIdentity.LastNameFirstNameFullMiddleNameFull: { //we can safely assume, that they have a different title or name addendum, like Jr. Sr. etc. bfp.SuppressNameSuffix = false; bfp.MiddleNameUsage = MiddleNameUsage.None; break; } case NameIdentity.None: default: { return; } } bfp.NameOrder = nameOrderForAmbiguityResolution; }; #endregion return(null); }