protected bool IsEinsichtsbewilligungNotwendig(ElasticArchiveRecord record, UserAccess access, bool hasBewilligungsDatum) { return(record.HasCustomProperty("zugänglichkeitGemässBga") && record.CustomFields.zugänglichkeitGemässBga == "In Schutzfrist" && !access.HasAnyTokenFor(record.PrimaryDataDownloadAccessTokens) && !hasBewilligungsDatum); }
/// <summary> /// Falls die Methode true zurückgibt, muss der der Benutzer /// A) wählen das keine Personendaten vorhanden sind oder /// B) ein Grund auswählen /// </summary> internal static bool CouldNeedAReason(ElasticArchiveRecord record, UserAccess access) { return(record.HasCustomProperty("zugänglichkeitGemässBga") && access.RolePublicClient == AccessRoles.RoleAS && access.HasAsTokenFor(record.PrimaryDataDownloadAccessTokens) && (record.CustomFields.zugänglichkeitGemässBga == "In Schutzfrist" || record.CustomFields.zugänglichkeitGemässBga == "Prüfung nötig")); }
public static OrderingIndexSnapshot GetOrderingIndexSnapshot(ElasticArchiveRecord entity, string unknowText = "") { var indexSnapShot = new OrderingIndexSnapshot { Darin = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.WithinInfo, Dossiertitel = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.Title, Hierarchiestufe = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.Level, IdentifikationDigitalesMagazin = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.PrimaryDataLink, Signatur = entity.ReferenceCode, VeId = entity.ArchiveRecordId, ZugaenglichkeitGemaessBga = entity.HasCustomProperty("zugänglichkeitGemässBga") ? entity.CustomFields.zugänglichkeitGemässBga : "", ZusaetzlicheInformationen = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.Extent, ZeitraumDossier = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.CreationPeriod?.Text, Schutzfristverzeichnung = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.GetSchutzfristenVerzeichnung(), Publikationsrechte = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.Publikationsrechte(), ZustaendigeStelle = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.ZuständigeStelle(), Aktenzeichen = !string.IsNullOrEmpty(unknowText) ? unknowText : entity.Aktenzeichen() }; if (entity.Containers != null && entity.Containers.Any()) { indexSnapShot.BehaeltnisCode = !string.IsNullOrEmpty(unknowText) ? unknowText : string.Join("; ", entity.Containers.Select(c => c.ContainerCode)); indexSnapShot.Behaeltnistyp = !string.IsNullOrEmpty(unknowText) ? unknowText : string.Join("; ", entity.Containers.Select(c => c.ContainerType)); indexSnapShot.Standort = !string.IsNullOrEmpty(unknowText) ? unknowText : string.Join("; ", entity.Containers.Select(c => c.ContainerLocation)); } return(indexSnapShot); }
public void StoreDownloadReasonInHistory(ElasticArchiveRecord record, User user, UserAccess access, int reasonId) { using (var connection = new SqlConnection(connectionString)) { connection.Open(); using (var cmd = connection.CreateCommand()) { var bestandItem = record.ArchiveplanContext.FirstOrDefault(p => p.Level == "Bestand"); var bestandString = bestandItem == null ? string.Empty : bestandItem.RefCode + " " + bestandItem.Title; var teilbestandItem = record.ArchiveplanContext.FirstOrDefault(p => p.Level == "Teilbestand"); var teilbestandString = teilbestandItem == null ? string.Empty : teilbestandItem.RefCode + " " + teilbestandItem.Title; string zugaenglichkeitGemaessBga = record.HasCustomProperty("zugänglichkeitGemässBga") ? record.CustomFields.zugänglichkeitGemässBga : string.Empty; var asTokens = string.Join(", ", access.AsTokens); var ablieferndeStellen = string.Join(", ", user.AblieferndeStelleList.Select(a => a.Kuerzel)); cmd.CommandText = "INSERT INTO DownloadReasonHistory (UserId, DownloadedAt, ReasonId, VeId, " + "Signatur, Dossiertitel, Aktenzeichen, Entstehungszeitraum, Bestand, Teilbestand, Ablieferung, ZustaendigeStelleVe, " + "Schutzfristverzeichnung, ZugaenglichkeitGemaessBga, " + "FirstName, FamilyName, Organization, EmailAddress, RolePublicClient, AsAccessTokensUser, ZustaendigeStellenUser) " + "VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21)"; cmd.Parameters.Add(new SqlParameter { ParameterName = "p1", Value = access.UserId, SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p2", Value = DateTime.Now, SqlDbType = SqlDbType.DateTime }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p3", Value = reasonId, SqlDbType = SqlDbType.Int }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p4", Value = ToDb(record.ArchiveRecordId), SqlDbType = SqlDbType.Int }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p5", Value = ToDb(record.ReferenceCode), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p6", Value = ToDb(record.Title), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p7", Value = ToDb(record.Aktenzeichen()), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p8", Value = ToDb(record.CreationPeriod.Text), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p9", Value = ToDb(bestandString), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p10", Value = ToDb(teilbestandString), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p11", Value = ToDb(record.Ablieferung()), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p12", Value = ToDb(record.ZuständigeStelle()), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p13", Value = ToDb(record.GetSchutzfristenVerzeichnung()), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p14", Value = ToDb(zugaenglichkeitGemaessBga), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p15", Value = ToDb(user.FirstName), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p16", Value = ToDb(user.FamilyName), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p17", Value = ToDb(user.Organization), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p18", Value = ToDb(user.EmailAddress), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p19", Value = ToDb(user.RolePublicClient), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p20", Value = ToDb(asTokens), SqlDbType = SqlDbType.NVarChar }); cmd.Parameters.Add(new SqlParameter { ParameterName = "p21", Value = ToDb(ablieferndeStellen), SqlDbType = SqlDbType.NVarChar }); cmd.ExecuteScalar(); } } }