コード例 #1
0
        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();
        }