/// <summary> /// Gets the authorization attribute. /// </summary> /// <param name="key">The key.</param> /// <returns></returns> public IAzManAttribute<IAzManAuthorization> GetAttribute(string key) { AuthorizationAttributesResult attr; if ((attr = (from t in this.db.AuthorizationAttributes() where t.AuthorizationId == this.authorizationId && t.AttributeKey == key select t).FirstOrDefault()) != null) { IAzManAttribute<IAzManAuthorization> result = new SqlAzManAuthorizationAttribute(this.db, this, attr.AuthorizationAttributeId.Value, attr.AttributeKey, attr.AttributeValue, this.ens); if (this.ens != null) this.ens.AddPublisher(result); return result; } else { throw SqlAzManException.AttributeNotFoundException(key, this, null); } }
/// <summary> /// Gets the authorization attributes. /// </summary> /// <returns></returns> public IAzManAttribute<IAzManAuthorization>[] GetAttributes() { IAzManAttribute<IAzManAuthorization>[] attributes; var attrs = (from a in this.db.AuthorizationAttributes() where a.AuthorizationId == this.authorizationId select a).ToList(); attributes = new SqlAzManAttribute<IAzManAuthorization>[attrs.Count]; int index = 0; foreach (var row in attrs) { attributes[index] = new SqlAzManAuthorizationAttribute(this.db, this, row.AuthorizationAttributeId.Value, row.AttributeKey, row.AttributeValue, this.ens); if (this.ens != null) this.ens.AddPublisher(attributes[index]); index++; } return attributes; }
/// <summary> /// Creates an authorization attribute. /// </summary> /// <param name="key">The key.</param> /// <param name="value">The value.</param> /// <returns></returns> public IAzManAttribute<IAzManAuthorization> CreateAttribute(string key, string value) { try { //db.tAuthorizationattributes.Insert(this.authorizationId, key, value); int authorizationAttributeId = 0; authorizationAttributeId = this.db.AuthorizationAttributeInsert(this.authorizationId, key, value, this.item.Application.ApplicationId); this.db.SubmitChanges(); IAzManAttribute<IAzManAuthorization> result = new SqlAzManAuthorizationAttribute(this.db, this, authorizationAttributeId, key, value, this.ens); this.raiseAuthorizationAttributeCreated(this, result); if (this.ens != null) this.ens.AddPublisher(result); return result; } catch (System.Data.SqlClient.SqlException sqlex) { if (sqlex.Number == 2601) //Index Duplicate Error throw SqlAzManException.AttributeDuplicateException(key, this, sqlex); else throw SqlAzManException.GenericException(sqlex); } }