protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                ListMetadataContentType contentType = this.ContentType;

                foreach (GridViewRow gvRow in listColumnsGrid.Rows)
                {
                    Guid fldId = new Guid(listColumnsGrid.DataKeys[gvRow.RowIndex].Value.ToString());
                    var  fld   = contentType.ListMetadataFieldContentTypes.FirstOrDefault(f => f.Id == fldId);
                    if (fld != null)
                    {
                        fld.ItemPosition = Int32.Parse(((System.Web.UI.WebControls.DropDownList)gvRow.FindControl("ddlColumnPosition")).SelectedValue);
                    }
                }
                new RosterConfigService().SaveContentType(contentType);

                // close form
                Utils.GoBackOnSuccess(this, Context);
            }
            catch (Exception ex)
            {
                panelError.Controls.Add(new Label {
                    Text = ex.Message, ForeColor = System.Drawing.Color.Red
                });
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                string newContentTypeName = txtContentTypeName.Text;
                if (this.List.ListMetadataContentTypes.Any(ct => ct.Name.ToLower().Equals(newContentTypeName.ToLower())))
                {
                    throw new Exception("Content type with name '" + newContentTypeName + "' already exists!");
                }

                ListMetadataContentType newContentType = configProvider.CreateContentType(this.List.Id);
                newContentType.Name          = newContentTypeName;
                newContentType.IsDefault     = false;
                newContentType.IsOnNewAction = true;
                newContentType.DispItemUrl  += "&ContentTypeId=" + newContentType.Id;
                newContentType.EditItemUrl  += "&ContentTypeId=" + newContentType.Id;
                newContentType.NewItemUrl   += "&ContentTypeId=" + newContentType.Id;
                newContentType.ListMetadataFieldContentTypes.Add(new ListMetadataFieldContentType {
                    Id                  = Guid.NewGuid(),
                    ContentTypeId       = newContentType.Id,
                    ListMetadataFieldId = this.List.ListMetadataFields.FirstOrDefault(f => f.InternalName == Common.FieldNames.CONTENT_TYPE_ID).Id
                });

                // save
                configProvider.SaveContentType(newContentType);

                // close form
                Utils.GoBackOnSuccess(this, this.Context);
            }
            catch (Exception ex)
            {
                errorHolder.Controls.Add(new Label()
                {
                    Text = ex.Message, ForeColor = System.Drawing.Color.Red
                });
            }
        }