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