예제 #1
0
        internal override async Task <DocumentUnit> MappingInsertAsync(IContentBase entity, IIdentityContext identity)
        {
            DocumentUnit documentUnit = new DocumentUnit();

            try
            {
                UDSBuildModel udsBuildModel = (UDSBuildModel)entity;
                #region [ Base ]

                documentUnit.EntityId         = 0;
                documentUnit.UniqueId         = udsBuildModel.UniqueId;
                documentUnit.Environment      = udsBuildModel.UDSRepository.DSWEnvironment;
                documentUnit.Year             = udsBuildModel.Year.Value;
                documentUnit.Number           = udsBuildModel.Number.Value;
                documentUnit.RegistrationDate = udsBuildModel.RegistrationDate.Value;
                documentUnit.RegistrationUser = udsBuildModel.RegistrationUser;
                documentUnit.LastChangedDate  = null;
                documentUnit.LastChangedUser  = null;
                documentUnit.Subject          = udsBuildModel.Subject;
                documentUnit.Title            = string.Concat(udsBuildModel.Year.Value, "/", udsBuildModel.Number.Value.ToString("0000000"));
                documentUnit.DocumentUnitName = udsBuildModel.Title;
                documentUnit.Status           = DocumentUnitStatus.Active;
                #endregion

                #region [ Navigation Properties ]

                //TODO: Category, Container e Authorizations dovrebbero arrivare già completi di UniqueId. Va modificata l'UDS nella DSW.
                documentUnit.UDSRepository = MapUDSRepositoryModel(new UDSRepository(), udsBuildModel.UDSRepository);
                Category category = await _webApiClient.GetCategoryAsync(udsBuildModel.Category.IdCategory.Value);

                if (category.UniqueId != Guid.Empty)
                {
                    documentUnit.Category = category;
                }

                Container container = await _webApiClient.GetContainerAsync(udsBuildModel.Container.IdContainer.Value);

                if (container.UniqueId != Guid.Empty)
                {
                    documentUnit.Container = container;
                }

                documentUnit.Fascicle = await _webApiClient.GetFascicleAsync(udsBuildModel.UniqueId);

                foreach (RoleModel item in udsBuildModel.Roles)
                {
                    Role role = await _webApiClient.GetRoleAsync(item);

                    documentUnit.DocumentUnitRoles.Add(new DocumentUnitRole()
                    {
                        UniqueIdRole          = role.UniqueId,
                        RoleLabel             = item.RoleLabel,
                        RegistrationDate      = DateTimeOffset.UtcNow,
                        RegistrationUser      = identity.User,
                        AuthorizationRoleType = GetRoleType(string.Empty)
                    });
                }
                foreach (UserModel item in udsBuildModel.Users)
                {
                    documentUnit.DocumentUnitUsers.Add(new DocumentUnitUser()
                    {
                        Account           = item.Account,
                        RegistrationDate  = DateTimeOffset.UtcNow,
                        RegistrationUser  = identity.User,
                        AuthorizationType = AuthorizationRoleType.Accounted
                    });
                }

                foreach (UDSDocumentModel document in udsBuildModel.Documents)
                {
                    switch (document.DocumentType)
                    {
                    case UDSDocumentType.Document:
                        AddUDSDocumentUnitChain(documentUnit, document, ChainType.MainChain, identity);
                        break;

                    case UDSDocumentType.DocumentAttachment:
                        AddUDSDocumentUnitChain(documentUnit, document, ChainType.AttachmentsChain, identity);
                        break;

                    case UDSDocumentType.DocumentAnnexed:
                        AddUDSDocumentUnitChain(documentUnit, document, ChainType.AnnexedChain, identity);
                        break;

                    case UDSDocumentType.DocumentDematerialisation:
                        AddUDSDocumentUnitChain(documentUnit, document, ChainType.DematerialisationChain, identity);
                        break;
                    }
                }

                #endregion
            }
            catch (Exception ex)
            {
                _logger.WriteError(new LogMessage("UDS, MappingInsertAsync Error: "), ex, LogCategories);
                throw ex;
            }

            return(documentUnit);
        }
예제 #2
0
        internal override async Task <DocumentUnit> MappingInsertAsync(IContentBase entity, IIdentityContext identity)
        {
            DocumentUnit documentUnit = new DocumentUnit();

            try
            {
                ResolutionModel resolutionModel = (ResolutionModel)entity;

                #region [ Base ]

                documentUnit.EntityId         = resolutionModel.IdResolution.HasValue ? resolutionModel.IdResolution.Value : 0;
                documentUnit.Environment      = (int)DocSuiteWeb.Entity.Commons.DSWEnvironmentType.Resolution;
                documentUnit.LastChangedDate  = null;
                documentUnit.LastChangedUser  = null;
                documentUnit.Number           = resolutionModel.Number.Value;
                documentUnit.RegistrationDate = resolutionModel.AdoptionDate.Value;
                documentUnit.RegistrationUser = resolutionModel.RegistrationUser;
                documentUnit.Subject          = resolutionModel.Subject;
                documentUnit.Title            = string.Concat(resolutionModel.Year.Value, "/", string.IsNullOrEmpty(resolutionModel.ServiceNumber) ? resolutionModel.Number.Value.ToString("0000000") : resolutionModel.ServiceNumber);
                documentUnit.UniqueId         = resolutionModel.UniqueId;
                documentUnit.Year             = resolutionModel.Year.Value;
                documentUnit.DocumentUnitName = resolutionModel.DocumentUnitName;
                documentUnit.Status           = DocumentUnitStatus.Active;
                #endregion

                #region [ Navigation Properties ]

                documentUnit.UDSRepository = null;
                documentUnit.Category      = MapCategoryModel(new Category(), resolutionModel.Category);
                documentUnit.Container     = MapContainerModel(new Container(), resolutionModel.Container);
                documentUnit.Fascicle      = await _webAPIClient.GetFascicleAsync(resolutionModel.UniqueId);

                foreach (ResolutionRoleModel item in resolutionModel.ResolutionRoles)
                {
                    documentUnit.DocumentUnitRoles.Add(new DocumentUnitRole()
                    {
                        UniqueIdRole          = item.Role.UniqueId.Value,
                        RegistrationDate      = DateTimeOffset.UtcNow,
                        RegistrationUser      = identity.User,
                        AuthorizationRoleType = GetRoleType(string.Empty)
                    });
                }

                if (resolutionModel.FileResolution.IdAnnexes.HasValue && resolutionModel.FileResolution.IdAnnexes.Value != Guid.Empty)
                {
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, resolutionModel.FileResolution.IdAnnexes.Value, ChainType.AnnexedChain, identity);
                }

                if (resolutionModel.FileResolution.IdResolutionFile.HasValue && resolutionModel.FileResolution.IdResolutionFile.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdResolutionFile.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.MainChain, identity);
                }

                if (resolutionModel.FileResolution.IdAttachments.HasValue && resolutionModel.FileResolution.IdAttachments.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdAttachments.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.AttachmentsChain, identity);
                }

                if (resolutionModel.FileResolution.IdControllerFile.HasValue && resolutionModel.FileResolution.IdControllerFile.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdControllerFile.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.ControllerChain, identity);
                }

                if (resolutionModel.FileResolution.IdFrontespizio.HasValue && resolutionModel.FileResolution.IdFrontespizio.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdFrontespizio.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.FrontespizioChain, identity);
                }

                if (resolutionModel.FileResolution.IdAssumedProposal.HasValue && resolutionModel.FileResolution.IdAssumedProposal.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdAssumedProposal.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.AssumedProposalChain, identity);
                }

                if (resolutionModel.FileResolution.IdPrivacyAttachments.HasValue && resolutionModel.FileResolution.IdPrivacyAttachments.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdPrivacyAttachments.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.PrivacyAttachmentChain, identity);
                }

                if (resolutionModel.FileResolution.IdFrontalinoRitiro.HasValue && resolutionModel.FileResolution.IdFrontalinoRitiro.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdFrontalinoRitiro.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.FrontalinoRitiroChain, identity);
                }

                if (resolutionModel.FileResolution.IdPrivacyPublicationDocument.HasValue && resolutionModel.FileResolution.IdPrivacyPublicationDocument.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdPrivacyPublicationDocument.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.PrivacyPublicationDocumentChain, identity);
                }

                if (resolutionModel.FileResolution.IdUltimaPaginaFile.HasValue && resolutionModel.FileResolution.IdUltimaPaginaFile.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdUltimaPaginaFile.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.UltimaPaginaChain, identity);
                }

                if (resolutionModel.FileResolution.IdSupervisoryBoardFile.HasValue && resolutionModel.FileResolution.IdSupervisoryBoardFile.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(resolutionModel.Container.ReslLocation.ResolutionArchive, resolutionModel.FileResolution.IdSupervisoryBoardFile.Value);
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, chainId, ChainType.SupervisoryBoardChain, identity);
                }

                if (resolutionModel.FileResolution.IdMainDocumentsOmissis.HasValue && resolutionModel.FileResolution.IdMainDocumentsOmissis.Value != Guid.Empty)
                {
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, resolutionModel.FileResolution.IdMainDocumentsOmissis.Value, ChainType.MainOmissisChain, identity);
                }

                if (resolutionModel.FileResolution.IdAttachmentsOmissis.HasValue && resolutionModel.FileResolution.IdAttachmentsOmissis.Value != Guid.Empty)
                {
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, resolutionModel.FileResolution.IdAttachmentsOmissis.Value, ChainType.AttachmentOmissisChain, identity);
                }

                if (resolutionModel.FileResolution.DematerialisationChainId.HasValue && resolutionModel.FileResolution.DematerialisationChainId.Value != Guid.Empty)
                {
                    AddResolutionDocumentUnitChain(documentUnit, resolutionModel, resolutionModel.FileResolution.DematerialisationChainId.Value, ChainType.DematerialisationChain, identity);
                }

                #endregion
            }
            catch (Exception ex)
            {
                _logger.WriteError(new LogMessage("Resolution, MappingInsertAsync Error: "), ex, LogCategories);
                throw ex;
            }


            return(documentUnit);
        }
예제 #3
0
        internal override async Task <DocumentUnit> MappingInsertAsync(IContentBase entity, IIdentityContext identity)
        {
            DocumentUnit documentUnit = new DocumentUnit();

            try
            {
                Protocol protocol = (Protocol)entity;

                #region [ Base ]

                documentUnit.EntityId         = 0;
                documentUnit.Environment      = (int)DSWEnvironmentType.Protocol;
                documentUnit.LastChangedDate  = null;
                documentUnit.LastChangedUser  = null;
                documentUnit.Number           = protocol.Number;
                documentUnit.RegistrationDate = protocol.RegistrationDate;
                documentUnit.RegistrationUser = protocol.RegistrationUser;
                documentUnit.Subject          = protocol.Object;
                documentUnit.Title            = string.Concat(protocol.Year, "/", protocol.Number.ToString("0000000"));
                documentUnit.UniqueId         = protocol.UniqueId;
                documentUnit.Year             = protocol.Year;
                documentUnit.DocumentUnitName = "Protocollo";
                documentUnit.Status           = protocol.IdStatus == 0 ? DocumentUnitStatus.Active : DocumentUnitStatus.Inactive;
                #endregion

                #region [ Navigation Properties ]

                documentUnit.UDSRepository = null;
                documentUnit.Category      = protocol.Category;
                documentUnit.Container     = protocol.Container;
                documentUnit.Fascicle      = await _webApiClient.GetFascicleAsync(protocol.UniqueId);

                foreach (ProtocolRole item in protocol.ProtocolRoles)
                {
                    documentUnit.DocumentUnitRoles.Add(new DocumentUnitRole()
                    {
                        UniqueIdRole          = item.Role.UniqueId,
                        RegistrationDate      = DateTimeOffset.UtcNow,
                        RegistrationUser      = identity.User,
                        AuthorizationRoleType = GetRoleType(item.Type)
                    });
                }

                foreach (ProtocolUser user in protocol.ProtocolUsers)
                {
                    documentUnit.DocumentUnitUsers.Add(new DocumentUnitUser()
                    {
                        UniqueId          = user.UniqueId,
                        Account           = user.Account,
                        RegistrationDate  = DateTimeOffset.UtcNow,
                        RegistrationUser  = identity.User,
                        AuthorizationType = AuthorizationRoleType.Accounted
                    });
                }
                if (protocol.IdAnnexed.HasValue && protocol.IdAnnexed.Value != Guid.Empty)
                {
                    AddDocumentUnitChain(documentUnit, protocol.IdAnnexed.Value, ChainType.AnnexedChain, identity, protocol.Container.ProtLocation.ProtocolArchive);
                }

                if (protocol.IdAttachments.HasValue && protocol.IdAttachments.Value != 0)
                {
                    string attachmentArchiveName = protocol.Container.ProtLocation.ProtocolArchive;
                    if (protocol.AttachLocation != null && protocol.Container.ProtLocation.EntityShortId != protocol.AttachLocation.EntityShortId)
                    {
                        attachmentArchiveName = protocol.AttachLocation?.ProtocolArchive;
                    }
                    AddDocumentUnitChain(documentUnit, _biblosClient.Document.GetDocumentId(attachmentArchiveName, protocol.IdAttachments.Value), ChainType.AttachmentsChain, identity, attachmentArchiveName);
                }

                if (protocol.IdDocument.HasValue && protocol.IdDocument.Value != 0)
                {
                    Guid chainId = _biblosClient.Document.GetDocumentId(protocol.Container.ProtLocation.ProtocolArchive, protocol.IdDocument.Value);
                    BiblosDS.BiblosDS.Document document = _biblosClient.Document.GetDocumentChildren(chainId).FirstOrDefault();
                    AddDocumentUnitChain(documentUnit, chainId, ChainType.MainChain, identity, protocol.Container.ProtLocation.ProtocolArchive, documentName: document?.Name);
                }

                if (protocol.DematerialisationChainId.HasValue && protocol.DematerialisationChainId != Guid.Empty)
                {
                    AddDocumentUnitChain(documentUnit, protocol.DematerialisationChainId.Value, ChainType.DematerialisationChain, identity, protocol.Container.ProtLocation.ProtocolArchive);
                }
                #endregion
            }
            catch (Exception ex)
            {
                _logger.WriteError(new LogMessage("Protocol, MappingInsertAsync Error: "), ex, LogCategories);
                throw ex;
            }


            return(documentUnit);
        }
예제 #4
0
        internal override async Task <DocumentUnit> MappingInsertAsync(IContentBase entity, IIdentityContext identity)
        {
            DocumentUnit documentUnit = new DocumentUnit();

            try
            {
                DocumentSeriesItem documentSeriesItem = (DocumentSeriesItem)entity;

                #region [ Base ]

                documentUnit.EntityId         = documentSeriesItem.EntityId;
                documentUnit.Environment      = (int)DocSuiteWeb.Entity.Commons.DSWEnvironmentType.DocumentSeries;
                documentUnit.LastChangedDate  = null;
                documentUnit.LastChangedUser  = null;
                documentUnit.Number           = documentSeriesItem.Number.Value;
                documentUnit.RegistrationDate = documentSeriesItem.RegistrationDate;
                documentUnit.RegistrationUser = documentSeriesItem.RegistrationUser;
                documentUnit.Subject          = documentSeriesItem.Subject;
                documentUnit.Title            = string.Concat(documentSeriesItem.Year.Value, "/", documentSeriesItem.Number.Value.ToString("0000000"));
                documentUnit.UniqueId         = documentSeriesItem.UniqueId;
                documentUnit.Year             = (short)(documentSeriesItem.Year.Value);
                documentUnit.DocumentUnitName = documentSeriesItem.DocumentSeries.Name;
                documentUnit.Status           = documentSeriesItem.Status == DocumentSeriesItemStatus.Active ? DocumentUnitStatus.Active : DocumentUnitStatus.Inactive;
                #endregion

                #region [ Navigation Properties ]

                documentUnit.UDSRepository = null;
                documentUnit.Category      = documentSeriesItem.Category;
                documentUnit.Container     = documentSeriesItem.DocumentSeries.Container;
                documentUnit.Fascicle      = await _webApiClient.GetFascicleAsync(documentSeriesItem.UniqueId);

                foreach (DocumentSeriesItemRole item in documentSeriesItem.DocumentSeriesItemRoles)
                {
                    documentUnit.DocumentUnitRoles.Add(new DocumentUnitRole()
                    {
                        UniqueIdRole          = item.Role.UniqueId,
                        RegistrationDate      = DateTimeOffset.UtcNow,
                        RegistrationUser      = identity.User,
                        AuthorizationRoleType = GetRoleType(string.Empty)
                    });
                }

                if (documentSeriesItem.IdAnnexed.HasValue && documentSeriesItem.IdAnnexed.Value != Guid.Empty)
                {
                    AddDocumentUnitChain(documentUnit, documentSeriesItem.IdAnnexed.Value, ChainType.AnnexedChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesAnnexedLocation.ProtocolArchive);
                }

                if (documentSeriesItem.IdUnpublishedAnnexed.HasValue && documentSeriesItem.IdUnpublishedAnnexed.Value != Guid.Empty)
                {
                    AddDocumentUnitChain(documentUnit, documentSeriesItem.IdUnpublishedAnnexed.Value, ChainType.UnpublishedAnnexedChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesUnpublishedAnnexedLocation.ProtocolArchive);
                }

                if (documentSeriesItem.IdMain.HasValue && documentSeriesItem.IdMain.Value != Guid.Empty)
                {
                    BiblosDS.BiblosDS.Document document = _biblosClient.Document.GetDocumentChildren(documentSeriesItem.IdMain.Value).FirstOrDefault();
                    AddDocumentUnitChain(documentUnit, documentSeriesItem.IdMain.Value, ChainType.MainChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesLocation.ProtocolArchive, document != null ? document.Name : null);
                }

                if (documentSeriesItem.DematerialisationChainId.HasValue && documentSeriesItem.DematerialisationChainId.Value != Guid.Empty)
                {
                    AddDocumentUnitChain(documentUnit, documentSeriesItem.DematerialisationChainId.Value, ChainType.DematerialisationChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesAnnexedLocation.ProtocolArchive);
                }

                #endregion
            }
            catch (Exception ex)
            {
                _logger.WriteError(new LogMessage("DocumentSeriesItem, MappingInsertAsync Error: "), ex, LogCategories);
                throw ex;
            }

            return(documentUnit);
        }