Exemplo n.º 1
0
        public void AddUDSDocumentUnitChain(DocumentUnit documentUnit, UDSDocumentModel udsDocument, ChainType chainType, IIdentityContext identity)
        {
            string documentName = string.Empty;

            BiblosDS.BiblosDS.Document document = _biblosClient.Document.GetDocumentChildren(udsDocument.IdChain).FirstOrDefault();

            if (document != null)
            {
                AddDocumentUnitChain(documentUnit, udsDocument.IdChain, chainType, identity, document.Archive.Name, chainType == ChainType.MainChain ? document.Name : null, udsDocument.DocumentLabel);
            }
        }
Exemplo n.º 2
0
        internal void AddResolutionDocumentUnitChain(DocumentUnit documentUnit, ResolutionModel resolution, Guid chainId, ChainType chainType, IIdentityContext identity)
        {
            string documentName = string.Empty;

            if (chainType == ChainType.MainChain)
            {
                BiblosDS.BiblosDS.Document document = _biblosClient.Document.GetDocumentChildren(chainId).FirstOrDefault();
                documentName = document != null ? document.Name : string.Empty;
            }

            AddDocumentUnitChain(documentUnit, chainId, chainType, identity, resolution.Container.ReslLocation.ResolutionArchive, documentName);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 5
0
        internal override async Task <DocumentUnit> MappingUpdateAsync(IContentBase entity, DocumentUnit documentUnit, IIdentityContext identity)
        {
            try
            {
                DocumentSeriesItem documentSeriesItem = (DocumentSeriesItem)entity;

                #region [ Base ]

                documentUnit.LastChangedDate = documentSeriesItem.LastChangedDate;
                documentUnit.LastChangedUser = documentSeriesItem.LastChangedUser;
                documentUnit.Subject         = documentSeriesItem.Subject;
                documentUnit.Title           = documentUnit.Title;
                documentUnit.Status          = documentSeriesItem.Status == DocumentSeriesItemStatus.Active ? DocumentUnitStatus.Active : DocumentUnitStatus.Inactive;

                #endregion

                #region [ Navigation Properties ]

                if (documentUnit.Category.UniqueId != documentSeriesItem.Category.UniqueId)
                {
                    documentUnit.Category = documentSeriesItem.Category;
                }

                if (documentUnit.Container.UniqueId != documentSeriesItem.DocumentSeries.Container.UniqueId)
                {
                    documentUnit.Container = documentSeriesItem.DocumentSeries.Container;
                }

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

                if (documentSeriesItem.DocumentSeriesItemRoles == null || !documentSeriesItem.DocumentSeriesItemRoles.Any())
                {
                    documentSeriesItem.DocumentSeriesItemRoles.Clear();
                }
                if (documentSeriesItem.DocumentSeriesItemRoles != null)
                {
                    foreach (DocumentSeriesItemRole item in documentSeriesItem.DocumentSeriesItemRoles.Where(t => !documentUnit.DocumentUnitRoles.Any(x => x.UniqueIdRole == t.Role.UniqueId)).ToList())
                    {
                        documentUnit.DocumentUnitRoles.Add(new DocumentUnitRole()
                        {
                            UniqueIdRole          = item.Role.UniqueId,
                            RegistrationDate      = DateTimeOffset.UtcNow,
                            RegistrationUser      = identity.User,
                            AuthorizationRoleType = GetRoleType(string.Empty)
                        });
                    }

                    foreach (DocumentUnitRole item in documentUnit.DocumentUnitRoles.Where(t => !documentSeriesItem.DocumentSeriesItemRoles.Any(x => x.Role.UniqueId == t.UniqueIdRole)).ToList())
                    {
                        documentUnit.DocumentUnitRoles.Remove(item);
                    }
                }


                if (documentSeriesItem.IdAnnexed.HasValue && documentSeriesItem.IdAnnexed.Value != Guid.Empty)
                {
                    DocumentUnitChain annexed = documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.AnnexedChain).FirstOrDefault();
                    if (annexed != null)
                    {
                        if (annexed.IdArchiveChain != documentSeriesItem.IdAnnexed.Value)
                        {
                            documentUnit.DocumentUnitChains.Remove(annexed);
                            AddDocumentUnitChain(documentUnit, documentSeriesItem.IdAnnexed.Value, ChainType.AnnexedChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesAnnexedLocation.ProtocolArchive);
                        }
                    }
                    else
                    {
                        AddDocumentUnitChain(documentUnit, documentSeriesItem.IdAnnexed.Value, ChainType.AnnexedChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesAnnexedLocation.ProtocolArchive);
                    }
                }
                else
                {
                    foreach (DocumentUnitChain chain in documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.AnnexedChain).ToList())
                    {
                        documentUnit.DocumentUnitChains.Remove(chain);
                    }
                }

                if (documentSeriesItem.IdUnpublishedAnnexed.HasValue && documentSeriesItem.IdUnpublishedAnnexed.Value != Guid.Empty)
                {
                    DocumentUnitChain unpublishedAnnexed = documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.UnpublishedAnnexedChain).FirstOrDefault();
                    if (unpublishedAnnexed != null)
                    {
                        if (unpublishedAnnexed.IdArchiveChain != documentSeriesItem.IdUnpublishedAnnexed.Value)
                        {
                            documentUnit.DocumentUnitChains.Remove(unpublishedAnnexed);
                            AddDocumentUnitChain(documentUnit, documentSeriesItem.IdUnpublishedAnnexed.Value, ChainType.UnpublishedAnnexedChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesUnpublishedAnnexedLocation.ProtocolArchive);
                        }
                    }
                    else
                    {
                        AddDocumentUnitChain(documentUnit, documentSeriesItem.IdUnpublishedAnnexed.Value, ChainType.UnpublishedAnnexedChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesUnpublishedAnnexedLocation.ProtocolArchive);
                    }
                }
                else
                {
                    foreach (DocumentUnitChain chain in documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.UnpublishedAnnexedChain).ToList())
                    {
                        documentUnit.DocumentUnitChains.Remove(chain);
                    }
                }

                if (documentSeriesItem.IdMain.HasValue && documentSeriesItem.IdMain.Value != Guid.Empty)
                {
                    DocumentUnitChain main = documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.MainChain).FirstOrDefault();
                    if (main != null)
                    {
                        if (main.IdArchiveChain != documentSeriesItem.IdMain.Value)
                        {
                            documentUnit.DocumentUnitChains.Remove(main);
                            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);
                        }
                    }
                    else
                    {
                        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);
                    }
                }
                else
                {
                    foreach (DocumentUnitChain chain in documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.MainChain).ToList())
                    {
                        documentUnit.DocumentUnitChains.Remove(chain);
                    }
                }

                if (documentSeriesItem.DematerialisationChainId.HasValue && documentSeriesItem.DematerialisationChainId.Value != Guid.Empty)
                {
                    DocumentUnitChain dematerialisation = documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.DematerialisationChain).FirstOrDefault();
                    if (dematerialisation != null)
                    {
                        if (dematerialisation.IdArchiveChain != documentSeriesItem.DematerialisationChainId.Value)
                        {
                            documentUnit.DocumentUnitChains.Remove(dematerialisation);
                            AddDocumentUnitChain(documentUnit, documentSeriesItem.DematerialisationChainId.Value, ChainType.DematerialisationChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesAnnexedLocation.ProtocolArchive);
                        }
                    }
                    else
                    {
                        AddDocumentUnitChain(documentUnit, documentSeriesItem.DematerialisationChainId.Value, ChainType.DematerialisationChain, identity, documentSeriesItem.DocumentSeries.Container.DocumentSeriesAnnexedLocation.ProtocolArchive);
                    }
                }
                else
                {
                    foreach (DocumentUnitChain chain in documentUnit.DocumentUnitChains.Where(t => t.ChainType == ChainType.DematerialisationChain).ToList())
                    {
                        documentUnit.DocumentUnitChains.Remove(chain);
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                _logger.WriteError(new LogMessage("DocumentSeriesItem, MappingUpdateAsync Error: "), ex, LogCategories);
                throw ex;
            }

            return(documentUnit);
        }