BlogEngine.Core.Providers.DbBlogProvider.SaveRights C# (CSharp) Method

SaveRights() public method

public SaveRights ( IEnumerable rights ) : void
rights IEnumerable
return void
        public override void SaveRights(IEnumerable<Right> rights)
        {
            if (rights == null)
            {
                throw new ArgumentNullException("rights");
            }

            using (var conn = this.CreateConnection())
            {
                if (conn.HasConnection)
                {
                    using (var cmd = conn.CreateTextCommand(string.Format("DELETE FROM {0}Rights WHERE BlogId = {1}blogid ", this.tablePrefix, this.parmPrefix)))
                    {
                        cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString()));
                        cmd.ExecuteNonQuery();

                        cmd.CommandText = string.Format("DELETE FROM {0}RightRoles WHERE BlogId = {1}blogid ", this.tablePrefix, this.parmPrefix);
                        cmd.ExecuteNonQuery();

                        foreach (var right in rights)
                        {
                            cmd.CommandText = string.Format("INSERT INTO {0}Rights (BlogId, RightName) VALUES ({1}BlogId, {1}RightName)", this.tablePrefix, this.parmPrefix);

                            cmd.Parameters.Clear();
                            cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), Blog.CurrentInstance.Id.ToString()));
                            cmd.Parameters.Add(conn.CreateParameter(FormatParamName("RightName"), right.Name));

                            cmd.ExecuteNonQuery();

                            foreach (var role in right.Roles)
                            {
                                cmd.CommandText = string.Format("INSERT INTO {0}RightRoles (BlogId, RightName, Role) VALUES ({1}BlogId, {1}RightName, {1}Role)", this.tablePrefix, this.parmPrefix);

                                cmd.Parameters.Clear();
                                cmd.Parameters.Add(conn.CreateParameter(FormatParamName("BlogId"), Blog.CurrentInstance.Id.ToString()));
                                cmd.Parameters.Add(conn.CreateParameter(FormatParamName("RightName"), right.Name));
                                cmd.Parameters.Add(conn.CreateParameter(FormatParamName("Role"), role));

                                cmd.ExecuteNonQuery();
                            }
                        }
                    }
                }
            }
        }