コード例 #1
0
 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);
 }
コード例 #2
0
 /// <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"));
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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();
                }
            }
        }