/// <summary> /// Init OrderBy block /// </summary> /// <param name="orderBy"></param> /// <param name="fields"></param> private void InitSortBlock(List <ViewMetadataField> viewFiedls, List <ListMetadataField> listFields) { ddlSortColumn.DataSource = listFields; ddlSortColumn.DataBind(); ViewMetadataField orderByField = viewFiedls.FirstOrDefault(x => x.OrderCriteria != 0); if (orderByField != null) { ddlSortColumn.SelectedValue = orderByField.ListMetadataFieldId.ToString(); radioSortOrder.Items.FindByValue("ASC").Selected = orderByField.OrderCriteria == 1; radioSortOrder.Items.FindByValue("DESC").Selected = orderByField.OrderCriteria == 2; } }
protected void btnSave_Click(object sender, EventArgs e) { try { ViewMetadata currentView = this.View; currentView.Name = txtViewName.Text; if (!currentView.IsDefault) { currentView.IsDefault = this.IsDefault; // user cannot remove 'IsDefault' flag from Default view } // Filters currentView.ViewMetadataWhereCriteries.Clear(); if (this.Filters.Any()) { foreach (var filterCrit in this.Filters) { filterCrit.ViewMetadataId = currentView.Id; currentView.ViewMetadataWhereCriteries.Add(filterCrit); } } if (currentView.IsCalendarView()) { currentView.ViewData = this.ViewData; currentView.CalendarScope = this.Scope; currentView.StaticColourCodingSettings = this.StaticColourCodingSettings; currentView.DynamicColourCodingSettings = this.DynamicColourCodingSettings; // collect info about ViewFields for CALENDAR view currentView.ViewMetadataFields.Clear(); List <ViewMetadataField> calendarViewFields = this.CalendarViewFields; if (calendarViewFields.Any()) { foreach (var vmf in calendarViewFields) { vmf.ViewMetadataId = currentView.Id; currentView.ViewMetadataFields.Add(vmf); } } // collect info about Tooltips columns currentView.ViewMetadataPopupSettings.Clear(); foreach (GridViewRow gvRow in TooltipColumnsGrid.Rows) { if (((System.Web.UI.WebControls.CheckBox)gvRow.FindControl("chIsSelected")).Checked) { Guid fldId = new Guid(TooltipColumnsGrid.DataKeys[gvRow.RowIndex].Value.ToString()); currentView.ViewMetadataPopupSettings.Add(new ViewMetadataPopupSetting() { Id = Guid.NewGuid(), ListMetadataFieldId = fldId, ViewMetadataId = currentView.Id, Position = Int32.Parse(((System.Web.UI.WebControls.DropDownList)gvRow.FindControl("ddlColumnPosition")).SelectedValue) }); } } } else { currentView.ItemLimit = this.ItemLimit; // get sort FieldId Guid orderFieldId = Guid.Empty; Guid.TryParse(ddlSortColumn.SelectedValue, out orderFieldId); // collect info about ViewFields currentView.ViewMetadataFields.Clear(); List <string> additionalFields = new List <string>(); foreach (GridViewRow gvRow in ViewColumnsGrid.Rows) { // Find checkbox if (((System.Web.UI.WebControls.CheckBox)gvRow.FindControl("chIsSelected")).Checked) { string key = ViewColumnsGrid.DataKeys[gvRow.RowIndex].Value.ToString(); Guid fldId = Guid.Empty; if (Guid.TryParse(key, out fldId)) { ViewMetadataField _viewField = new ViewMetadataField() { Id = Guid.NewGuid(), ViewMetadataId = currentView.Id, ListMetadataFieldId = fldId, DisplayName = this.ListFields.Where(x => x.Id == fldId).FirstOrDefault().FieldName, Position = Int32.Parse(((System.Web.UI.WebControls.DropDownList)gvRow.FindControl("ddlColumnPosition")).SelectedValue), OrderCriteria = (orderFieldId != fldId) ? 0 : (int)this.SortDir }; currentView.ViewMetadataFields.Add(_viewField); } else { additionalFields.Add(key); } } } currentView.ExcludeFields = String.Join(";#", additionalFields); } // UPDATE VIEW new RosterConfigService().SaveView(currentView); // REMOVE IsDefault flag from other views if (chIsDefault.Visible && this.IsDefault) { // chIsDefault.Visible == true means that on PageLoad view was NOT Default this.RemoveDefaultFlagsFromOtherViews(currentView.Id); } // close form Utils.GoBackOnSuccess(this, this.Context); } catch (Exception ex) { errorHolder.Controls.Add(new Label() { Text = ex.Message, ForeColor = System.Drawing.Color.Red }); } }