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); }
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); }
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); }
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); }