/// <summary> /// Получить сохраненные подписи /// </summary> private static IResultAppCollection <ISignatureFileApp> GetSignaturesFileApp(IResultAppValue <IReadOnlyCollection <ISignatureFileData> > signatures, IList <SignatureFileRequest> signaturesFileRequest, ISignatureConverter signatureConverter, string signatureFolder) => signatures. ResultValueOk(signaturesFileData => signaturesFileRequest. Join(signaturesFileData, signatureFileRequest => signatureFileRequest.PersonId, signatureFileData => signatureFileData.PersonId, (signatureFileRequest, signatureFileData) => RotateSignature(signatureFileData, signatureFileRequest))). ResultValueOkBind(signaturesFileData => signatureConverter.ToSignaturesFile(signaturesFileData, signatureFolder). ResultValueOk(signatureFiles => signatureFiles.ToApplication()). ToResultValueApplication()). ToResultCollection();
public static Func <IList <SignatureFileRequest>, IResultAppCollection <ISignatureFileApp> > GetSignaturesSync(IResultCollection <ISignatureFile> signatureFile, ISignatureConverter signatureConverter, string signatureFolder) => signaturesFileRequest => signaturesFileRequest. Select(signatureRequest => signatureRequest.PersonId). Map(ids => signatureFile.ResultValueOk(signatures => signatures.Where(signature => ids.Contains(signature.PersonId)))). ResultValueOk(signatureConverter.FromSignaturesFile). ToResultValueApplication(). Map(signatures => GetSignaturesFileApp(signatures, signaturesFileRequest, signatureConverter, signatureFolder));
/// <summary> /// Получить подписи по идентификаторам синхронно /// </summary> private static Func <IList <SignatureFileRequest>, IResultAppCollection <ISignatureFileApp> > GetSignaturesSyncList(SignatureServerServiceFactory signatureServerServiceFactory, ISignatureConverter signatureConverter, string signatureFolder) => signaturesFileRequest => signaturesFileRequest. Select(signatureRequest => signatureRequest.PersonId). Map(ids => signatureServerServiceFactory.UsingServiceRetry(service => service.Operations.GetSignatures(ids.ToList()))). WaitAndUnwrapException(). ToResultValueApplication(). ResultValueOk(ConverterDataFileFromDto.SignaturesFileDataFromDto). Map(signatures => GetSignaturesFileApp(signatures, signaturesFileRequest, signatureConverter, signatureFolder));
public static Func <IList <SignatureFileRequest>, IResultAppCollection <ISignatureFileApp> > GetSignaturesSync(SignatureServerServiceFactory signatureServerServiceFactory, ISignatureConverter signatureConverter, string signatureFolder) => signatureFileRequest => GetSignaturesSyncList(signatureServerServiceFactory, signatureConverter, signatureFolder). Map(getSignaturesFunc => getSignaturesFunc(signatureFileRequest.ToList()));