コード例 #1
0
ファイル: NavigationDAL.cs プロジェクト: mparsin/Elements
        /// <summary>
        /// Updates the navigation group security configuration.
        /// </summary>
        /// <param name="dto">The dto.</param>
        /// <exception cref="System.ArgumentException"></exception>
        /// <exception cref="System.Data.DBConcurrencyException">The entity is out of date on the client. Please update the entity and try again. This could also be thrown if the sql statement failed to execute.</exception>
        public void UpdateNavigationGroupSecurityConfiguration(NavigationGroupSecurityConfigurationDto dto)
        {
            if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
UPDATE [dbo].[NavigationGroupSecurityConfigurations]
SET
     [LastModifiedOn] = GETDATE()
    ,[NavigationGroupId] = @navigationGroupId
    ,[RoleId] = @roleId
    ,[CanView] = @canView
WHERE [Id] = @id;
";

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;

                using (var cmd = new SqlCommand(Sql, cn))
                {
                    cmd.Parameters.AddWithValue("@id", dto.Id);
                    cmd.Parameters.AddWithValue("@navigationGroupId", dto.NavigationGroupId);
                    cmd.Parameters.AddWithValue("@roleId", dto.RoleId);
                    cmd.Parameters.AddWithValue("@canView", dto.CanView);

                    var rowsAffetcted = cmd.ExecuteNonQuery();
                    if (rowsAffetcted == 0)
                        throw new DBConcurrencyException(
                            "The entity is out of date on the client. Please update the entity and try again. This could also be thrown if the sql statement failed to execute.");
                }
            }
        }
コード例 #2
0
ファイル: NavigationDAL.cs プロジェクト: mparsin/Elements
        /// <summary>
        /// Fetches the navigation group security configurations.
        /// </summary>
        /// <param name="connection">The connection.</param>
        /// <param name="dto">The dto.</param>
        private static void FetchNavigationGroupSecurityConfigurations(SqlConnection connection, NavigationGroupEditDto dto)
        {
            const string Sql =
                @"
SELECT
     [Id]
    ,[RoleId]
    ,[CanView]
FROM
    [dbo].[NavigationGroupSecurityConfigurations]
WHERE [NavigationGroupId] = @groupId;
";

            using (var cmd = new SqlCommand(Sql, connection))
            {
                cmd.Parameters.AddWithValue("@groupId", dto.Id);

                using (var reader = new SafeDataReader(cmd.ExecuteReader()))
                {
                    while (reader.Read())
                    {
                        var securityConfigurationDto = new NavigationGroupSecurityConfigurationDto
                                                           {
                                                               Id = reader.GetInt(0),
                                                               RoleId = reader.GetInt(1),
                                                               CanView = reader.GetBoolean(2)
                                                           };

                        dto.SecurityConfigurations.Add(securityConfigurationDto);
                    }
                }
            }
        }
コード例 #3
0
ファイル: NavigationDAL.cs プロジェクト: mparsin/Elements
        /// <summary>
        /// Inserts the navigation group security configuration.
        /// </summary>
        /// <param name="dto">The dto.</param>
        /// <exception cref="System.ArgumentException"></exception>
        public void InsertNavigationGroupSecurityConfiguration(NavigationGroupSecurityConfigurationDto dto)
        {
            if (dto == null) throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.NullArguementException, "dto"));

            const string Sql =
                @"
INSERT INTO [dbo].[NavigationGroupSecurityConfigurations]
(
     [LastModifiedOn]
    ,[NavigationGroupId]
    ,[RoleId]
    ,[CanView]
)
VALUES
(
     GETDATE()
    ,@navigationGroupId
    ,@roleId
    ,@canView
);

SELECT [Id]
FROM   [dbo].[NavigationGroupSecurityConfigurations]
WHERE  [Id] = SCOPE_IDENTITY()";

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                var cn = ctx.Connection;

                using (var cmd = new SqlCommand(Sql, cn))
                {
                    cmd.Parameters.AddWithValue("@navigationGroupId", dto.NavigationGroupId);
                    cmd.Parameters.AddWithValue("@roleId", dto.RoleId);
                    cmd.Parameters.AddWithValue("@canView", dto.CanView);

                    dto.Id = (int)cmd.ExecuteScalar();
                }
            }
        }