Exemple #1
0
 public MicrostationResources(SignaturesSearching signaturesSearching,
                              string signatureMicrostationFileName, string stampMicrostationFileName)
     : base(signaturesSearching)
 {
     SignatureMicrostationFileName = signatureMicrostationFileName;
     StampMicrostationFileName     = stampMicrostationFileName;
 }
        /// <summary>
        /// Зарегистрировать зависимости
        /// </summary>
        public static void ConfigureContainer(IUnityContainer container, string signatureFolder)
        {
            container.RegisterSingleton <IProjectSignatureSettings, ProjectSignatureSettings>();
            container.RegisterType <ISignaturesToJpeg, SignaturesUpload>();
            container.RegisterType <IConverterDataFileFromDto, ConverterDataFileFromDto>();
            container.RegisterType <ISignatureConverter, SignatureConverter>();

            container.RegisterType <IMessagingService, MessagingService>();
            container.RegisterType <IFilePathOperations, FilePathOperations>();
            container.RegisterType <IFileSystemOperations, FileSystemOperations>();

            GadzhiConvertingLibrary.DependencyInjection.BootStrapUnity.RegisterServices(container);

            var wcfServerServicesFactory   = container.Resolve <IWcfServerServicesFactory>();
            var signatureConverter         = container.Resolve <ISignatureConverter>();
            var signaturesLibrarySearching = new SignaturesSearching(Enumerable.Empty <ISignatureLibraryApp>(),
                                                                     SignaturesFunctionSync.GetSignaturesSync(wcfServerServicesFactory.SignatureServerServiceFactory,
                                                                                                              signatureConverter, signatureFolder));

            container.RegisterFactory <IApplicationMicrostation>(unity =>
            {
                var projectSignatureSettings = unity.Resolve <IProjectSignatureSettings>();
                return(new ApplicationMicrostation(new MicrostationResources(signaturesLibrarySearching,
                                                                             projectSignatureSettings.SignatureMicrostationFileName,
                                                                             projectSignatureSettings.StampMicrostationFileName)));
            });
        }
Exemple #3
0
 protected SignatureCreating(SignaturesSearching signaturesSearching, string personId, bool useDefaultSignature)
 {
     UseDefaultSignature = useDefaultSignature;
     SignaturesSearching = signaturesSearching ?? throw new ArgumentNullException(nameof(signaturesSearching));
     PersonId            = personId ?? throw new ArgumentNullException(nameof(personId));
     UseDefaultSignature = useDefaultSignature;
 }
Exemple #4
0
 /// <summary>
 /// Сформировать строку с подписью согласования согласно идентификатору Microstation
 /// </summary>
 private IResultAppValue <IStampApproval> GetStampApprovalById(IStampTextFieldMicrostation responsiblePerson,
                                                               Func <ISignatureLibraryApp, IResultAppValue <IStampFieldMicrostation> > insertSignatureFunc,
                                                               IStampTextField actionType, IStampTextField dateSignature) =>
 SignaturesSearching.FindByIdOrFullNameOrRandom(responsiblePerson.ElementStamp.AttributePersonId,
                                                responsiblePerson.MaxLengthWord, PersonId).
 ResultValueOk(personSignature => new ApprovalSignatureMicrostation(personSignature, _stampIdentifier, insertSignatureFunc, actionType,
                                                                    responsiblePerson, dateSignature));
 /// <summary>
 /// Найти подпись в базе и вставить
 /// </summary>
 private IResultAppValue <IStampSignature> SearchSignatureToInsert(IStampSignature signature) =>
 SignaturesSearching.
 FindByIdOrFullNameOrRandom(signature.SignatureLibrary.PersonId,
                            signature.SignatureLibrary.PersonInformation.FullName, StampSettings.PersonId).
 ResultValueOk(signatureLibrary => new SignatureFileApp(signatureLibrary.PersonId, signatureLibrary.PersonInformation,
                                                        String.Empty, signature.IsVertical)).
 ResultValueOk(signature.InsertSignature);
 protected StampWord(StampSettingsWord stampSettingsWord, SignaturesSearching signaturesSearching,
                     ITableElementWord tableStamp)
     : base(stampSettingsWord, signaturesSearching)
 {
     TableStamp  = tableStamp;
     PaperSize   = stampSettingsWord.PaperSize;
     Orientation = stampSettingsWord.Orientation;
 }
 public StampFullWord(StampSettingsWord stampSettingsWord, SignaturesSearching signaturesSearching,
                      ITableElementWord tableStamp, IResultAppValue <ITableElementWord> tableApprovalPerformers,
                      IResultAppValue <ITableElementWord> tableApprovalChief)
     : base(stampSettingsWord, signaturesSearching, tableStamp)
 {
     TableApprovalPerformers = tableApprovalPerformers ?? throw new ArgumentNullException(nameof(tableApprovalPerformers));
     TableApprovalChief      = tableApprovalChief ?? throw new ArgumentNullException(nameof(tableApprovalChief));
 }
 /// <summary>
 /// Получить информацию об ответственном лице по имени
 /// </summary>
 private IResultAppValue <ISignatureLibraryApp> GetSignatureInformation(string personName, string personId,
                                                                        PersonDepartmentType personDepartmentType, string actionType) =>
 new ResultAppValue <ISignatureLibraryApp>(SignaturesSearching.FindById(personId),
                                           new ErrorApplication(ErrorApplicationType.SignatureNotFound, $"Подпись {personName} не найдена")).
 ResultValueOk(signature => signature.PersonInformation.DepartmentType).
 ResultValueOk(departmentType => SignaturesSearching.CheckDepartmentAccordingToType(departmentType, personDepartmentType)).
 ResultValueOkBind(departmentChecked => SignaturesSearching.FindByFullNameOrRandom(personName, departmentChecked)).
 ResultValueOk(personAttributeId => SignaturesActionType.GetPersonIdByActionType(personAttributeId.PersonId,
                                                                                 UseDefaultSignature, PersonId, actionType)).
 ResultValueOk(personCheckedId => SignaturesSearching.FindById(personCheckedId));
Exemple #9
0
 /// <summary>
 /// Получить элементы подписей из базы по их идентификационным номерам
 /// </summary>
 private IResultAppCollection <IStampSignature> GetStampSignaturesByIds(IList <IStampSignature> stampSignatures) =>
 new ResultAppCollection <IStampSignature>(stampSignatures).
 ResultValueOk(_ => stampSignatures.Select(signatureStamp => new SignatureFileRequest(signatureStamp.SignatureLibrary.PersonId,
                                                                                      signatureStamp.IsVertical))).
 ResultValueOkBind(personIds => SignaturesSearching.GetSignaturesByIds(personIds)).
 ResultValueContinue(signaturesFile => signaturesFile.Count == stampSignatures.Count,
                     okFunc: signaturesFile => signaturesFile,
                     badFunc: signaturesFile => new ErrorApplication(ErrorApplicationType.SignatureNotFound,
                                                                     "Количество подписей в файле не совпадает с загруженным из базы данных")).
 ResultValueOk(signaturesFile =>
               stampSignatures.Zip(signaturesFile,
                                   (signatureStamp, signatureFile) => signatureStamp.InsertSignature(signatureFile))).
 ToResultCollection();
 public SignatureCreatingWord(ITableElementWord tableStamp, StampIdentifier stampIdentifier, IResultAppValue <ITableElementWord> tableApprovalPerformers,
                              IResultAppValue <ITableElementWord> tableApprovalChief,
                              IStampFieldsWord stampFieldsWord, StampDocumentType stampDocumentType,
                              SignaturesSearching signaturesSearching, string personId, bool useDefaultSignature)
     : base(signaturesSearching, personId, useDefaultSignature)
 {
     _tableStamp              = tableStamp ?? throw new ArgumentNullException(nameof(tableStamp));
     _stampIdentifier         = stampIdentifier;
     _tableApprovalPerformers = tableApprovalPerformers ?? throw new ArgumentNullException(nameof(tableApprovalPerformers));
     _tableApprovalChief      = tableApprovalChief ?? throw new ArgumentNullException(nameof(tableApprovalChief));
     _stampFieldsWord         = stampFieldsWord ?? throw new ArgumentNullException(nameof(stampFieldsWord));
     _stampDocumentType       = stampDocumentType;
 }
Exemple #11
0
        private static void RegisterConvertingApplications(IUnityContainer container)
        {
            var signatureConverter = container.Resolve <ISignatureConverter>();
            var projectSettings    = container.Resolve <IProjectSettings>();

            var convertingResources        = projectSettings.ConvertingResources;
            var signaturesLibrarySearching = new SignaturesSearching(convertingResources.SignatureNames.Value.ToApplication(),
                                                                     SignaturesFunctionSync.GetSignaturesSync(convertingResources.SignatureNames,
                                                                                                              signatureConverter, ProjectSettings.DataSignaturesFolder));

            container.RegisterFactory <IApplicationLibrary <IDocumentMicrostation> >(nameof(ApplicationMicrostation), unity =>
                                                                                     new ApplicationMicrostation(new MicrostationResources(signaturesLibrarySearching,
                                                                                                                                           convertingResources.SignaturesMicrostation.Value,
                                                                                                                                           convertingResources.StampMicrostation.Value)));

            container.RegisterFactory <IApplicationLibrary <IDocumentWord> >(nameof(ApplicationOffice), unity =>
                                                                             new ApplicationOffice(new ResourcesWord(signaturesLibrarySearching)));
        }
Exemple #12
0
 protected Stamp(StampSettings stampSettings, SignaturesSearching signaturesSearching)
 {
     StampSettings       = stampSettings ?? throw new ArgumentNullException(nameof(stampSettings));
     SignaturesSearching = signaturesSearching ?? throw new ArgumentNullException(nameof(signaturesSearching));
 }
Exemple #13
0
 protected StampMicrostation(StampSettings stampSettings, ICellElementMicrostation stampCellElement,
                             SignaturesSearching signaturesSearching)
     : base(stampSettings, signaturesSearching)
 {
     StampCellElement = stampCellElement ?? throw new ArgumentNullException(nameof(stampCellElement));
 }
Exemple #14
0
 /// <summary>
 /// Выбрать главный штамп
 /// </summary>
 public static IStamp GetMainStamp(StampType stampType, ITableElementWord tableWord, StampSettingsWord stampSettings,
                                   SignaturesSearching signaturesSearching, IReadOnlyList <ITableElementWord> tables) =>
 stampType switch
 {
 public ResourcesWord(SignaturesSearching signaturesSearching)
     : base(signaturesSearching)
 {
 }
Exemple #16
0
 public StampShortWord(StampSettingsWord stampSettingsWord, SignaturesSearching signaturesSearching,
                       ITableElementWord tableStamp, ISignatureLibraryApp personShortSignature)
     : base(stampSettingsWord, signaturesSearching, tableStamp)
 {
     _personShortSignature = personShortSignature ?? throw new ArgumentNullException(nameof(personShortSignature));
 }
 public StampFullMicrostation(ICellElementMicrostation stampCellElement, StampSettings stampSettings,
                              SignaturesSearching signaturesSearching)
     : base(stampSettings, stampCellElement, signaturesSearching)
 {
 }
 /// <summary>
 /// Получить стандартную подпись при отсутствии основных строк
 /// </summary>
 private ISignatureLibraryApp GetPersonSignature(IResultAppCollection <IStampPerson> personRows) =>
 personRows.Value?.FirstOrDefault()?.SignatureLibrary
 ?? SignaturesSearching.FindById(StampSettings.PersonId);
Exemple #19
0
 public StampChangeWord(StampSettingsWord stampSettingsWord, SignaturesSearching signaturesSearching, ITableElementWord tableStamp,
                        IResultAppValue <IStampTextField> fullCode)
     : base(stampSettingsWord, signaturesSearching, tableStamp)
 {
     _fullcode = fullCode ?? throw new ArgumentNullException(nameof(fullCode));
 }
 protected ResourcesApplication(SignaturesSearching signaturesSearching)
 {
     SignaturesSearching = signaturesSearching ?? throw new ArgumentNullException(nameof(signaturesSearching));
 }
 public SignatureCreatingMicrostation(IStampFieldsMicrostation stampFields, StampIdentifier stampIdentifier,
                                      InsertSignatureFunc insertSignatureByFields, SignaturesSearching signaturesSearching,
                                      string personId, bool useDefaultSignature)
     : base(signaturesSearching, personId, useDefaultSignature)
 {
     _stampFields             = stampFields ?? throw new ArgumentNullException(nameof(stampFields));
     _stampIdentifier         = stampIdentifier;
     _insertSignatureByFields = insertSignatureByFields ?? throw new ArgumentNullException(nameof(insertSignatureByFields));
 }
Exemple #22
0
 /// <summary>
 /// Получить класс с ответственным лицом и подписью по строке Word для строк согласования тех требований с директорами
 /// </summary>
 private IResultAppValue <IStampApprovalChief> GetStampApprovalChiefFromRow(IRowElementWord approvalChiefRow) =>
 ConverterDepartmentTypeApp.DepartmentParsing(approvalChiefRow.CellsElement[ApprovalChiefRowIndexes.DEPARTMENT].Text).
 Map(departmentType => SignaturesSearching.FindByFullNameOrRandom(approvalChiefRow.CellsElement[ApprovalChiefRowIndexes.RESPONSIBLE_PERSON].MaxLengthWord,
                                                                  departmentType)).
 ResultValueOk(signature => GetStampApprovalChiefFromFields(approvalChiefRow, signature, _stampIdentifier));