private void SaveWidgityAttribute() { var attribute = new Rock.Model.Attribute(); edtWidgityAttributes.GetAttributeProperties(attribute); attribute.EntityTypeId = EntityTypeCache.Get(typeof(Widgity)).Id; attribute.EntityTypeQualifierColumn = "WidgityTypeId"; attribute.EntityTypeQualifierValue = PageParameter(PageParameterKey.WidgityTypeId); var existingAttribute = WidgityAttributes.Where(a => a.Guid == attribute.Guid).FirstOrDefault(); if (existingAttribute == null) //new attribute { attribute.Order = WidgityAttributes.Any() ? WidgityAttributes.Max(a => a.Order) + 1 : 0; WidgityAttributes.Add(attribute); } else //existing attribute { foreach (var att in WidgityAttributes) { if (att.Guid == existingAttribute.Guid) { var index = WidgityAttributes.IndexOf(att); WidgityAttributes.Remove(att); WidgityAttributes.Insert(index, attribute); break; } } } SaveState(); }
protected void gWdigityAttributes_Delete(object sender, Rock.Web.UI.Controls.RowEventArgs e) { var toRemove = WidgityAttributes.Where(a => a.Guid == ( Guid )e.RowKeyValue).FirstOrDefault(); if (toRemove != null) { WidgityAttributes.Remove(toRemove); SaveState(); } }