/// <summary> /// Gets the items. /// </summary> /// <param name="itemType">Type of the itemName.</param> /// <returns></returns> public IAzManItem[] GetItems(ItemType itemType) { IAzManItem[] items; var ds = (from tf in this.db.Items() where tf.ApplicationId == this.applicationId && tf.ItemType.Value == (byte)itemType orderby tf.Name select tf).ToList(); items = new SqlAzManItem[ds.Count]; int index = 0; foreach (var row in ds) { string bizRule = String.Empty; NetSqlAzMan.BizRuleSourceLanguage? bizRuleScriptLanguage = null; if (row.BizRuleId.HasValue) { var bizrule = (from tf in this.db.BizRules() where tf.BizRuleId == row.BizRuleId.Value select tf).First(); bizRule = bizrule.BizRuleSource; bizRuleScriptLanguage = (NetSqlAzMan.BizRuleSourceLanguage)bizrule.BizRuleLanguage.Value; } items[index] = new SqlAzManItem(this.db, this, row.ItemId.Value, row.Name, row.Description, (ItemType)row.ItemType, bizRule, bizRuleScriptLanguage, this.ens); if (this.ens != null) this.ens.AddPublisher(items[index]); index++; } return items; }
/// <summary> /// Gets the <see cref="T:IAzManItem"/> with the specified itemName name. /// </summary> /// <value></value> public IAzManItem GetItem(string itemName) { ItemsResult items; if ((items = (from t in this.db.Items() where t.Name == itemName && t.ApplicationId == this.applicationId select t).FirstOrDefault()) != null) { int itemId = items.ItemId.Value; string name = items.Name; string description = items.Description; ItemType itemType = (ItemType)items.ItemType.Value; string bizRule = String.Empty; NetSqlAzMan.BizRuleSourceLanguage? bizRuleScriptLanguage = null; if (items.BizRuleId.HasValue) { var bizrule = (from br in this.db.BizRules() where br.BizRuleId == items.BizRuleId.Value select br).First(); bizRule = bizrule.BizRuleSource; bizRuleScriptLanguage = (NetSqlAzMan.BizRuleSourceLanguage)bizrule.BizRuleLanguage.Value; } IAzManItem result = new SqlAzManItem(this.db, this, itemId, name, description, itemType, bizRule, bizRuleScriptLanguage, this.ens); if (this.ens != null) this.ens.AddPublisher(result); return result; } else { throw SqlAzManException.ItemNotFoundException(itemName, this, null); } }
/// <summary> /// Gets the items. /// </summary> /// <returns></returns> public IAzManItem[] GetItems() { IAzManItem[] items; var ds = (from tf in this.db.Items() where tf.ApplicationId == this.applicationId orderby tf.Name select tf).ToList(); items = new SqlAzManItem[ds.Count]; int index = 0; this.items = new Dictionary<string, IAzManItem>(); foreach (var row in ds) { string bizRule = String.Empty; NetSqlAzMan.BizRuleSourceLanguage? bizRuleScriptLanguage = null; if (row.BizRuleId.HasValue) { var bizrule = (from tf in this.db.BizRules() where tf.BizRuleId == row.BizRuleId select tf).First(); bizRule = bizrule.BizRuleSource; bizRuleScriptLanguage = (NetSqlAzMan.BizRuleSourceLanguage)bizrule.BizRuleLanguage.Value; } items[index] = new SqlAzManItem(this.db, this, row.ItemId.Value, row.Name, row.Description, (ItemType)row.ItemType.Value, bizRule, bizRuleScriptLanguage, this.ens); this.items.Add(items[index].Name, items[index]); if (this.ens != null) this.ens.AddPublisher(items[index]); index++; } //Members var dt = (from v in this.db.ItemsHierarchyView where v.ApplicationId == this.applicationId select v).ToList(); foreach (IAzManItem item in this.items.Values) { ((SqlAzManItem)item).members = new Dictionary<string, IAzManItem>(); foreach (var row in dt.Where<ItemsHierarchyView>(p => p.Name == item.Name)) { IAzManItem member = this.items[row.MemberName]; ((SqlAzManItem)item).members.Add(member.Name, member); //Items Where Im a member if (((SqlAzManItem)member).itemsWhereIAmAMember == null) { ((SqlAzManItem)member).itemsWhereIAmAMember = new Dictionary<string, IAzManItem>(); } if (!(((SqlAzManItem)member).itemsWhereIAmAMember.ContainsKey(item.Name))) { ((SqlAzManItem)member).itemsWhereIAmAMember.Add(item.Name, item); } } } return items; }
/// <summary> /// Creates the itemName. /// </summary> /// <param name="itemName">Name of the itemName.</param> /// <param name="itemDescription">The itemName description.</param> /// <param name="itemType">Type of the itemName.</param> /// <returns></returns> public IAzManItem CreateItem(string itemName, string itemDescription, ItemType itemType) { try { int id = this.db.ItemInsert(itemName, itemDescription, (byte)itemType, null, this.applicationId); IAzManItem itemCreated = new SqlAzManItem(this.db, this, id, itemName, itemDescription, itemType, String.Empty, null, this.ens); this.raiseItemCreated(this, itemCreated); if (this.ens != null) this.ens.AddPublisher(itemCreated); //Update cached items if (this.items != null && !this.items.ContainsKey(itemCreated.Name)) this.items.Add(itemCreated.Name, itemCreated); ((SqlAzManItem)itemCreated).members = new Dictionary<string, IAzManItem>(); return itemCreated; } catch (System.Data.SqlClient.SqlException sqlex) { if (sqlex.Number == 2601) //Index Duplicate Error throw SqlAzManException.ItemDuplicateException(itemName, this, sqlex); else throw SqlAzManException.GenericException(sqlex); } }