public ActionResult RemoveMetaColumn(long metaReportId, long metaColumnId, Models.ViewType viewType) { ViewBag.MenuItem = CurrentMenuItem; var metaReport = _unitOfWork.Repository <MetaReport>() .Queryable() .SingleOrDefault(r => r.Id == metaReportId); var model = new MetaReportAttributeModel() { MetaReportId = metaReport.Id, ReportDefinition = metaReport.ReportDefinition, ReportName = metaReport.ReportName, ViewType = viewType }; ExtractMetaDataForAttribute(metaReport, model); XmlDocument meta = new XmlDocument(); meta.LoadXml(metaReport.MetaDefinition); // Get node to be removed XmlNode rootNode = meta.SelectSingleNode("//MetaReport"); XmlNode typeNode = null; XmlNode removeNode = null; switch (viewType) { case Models.ViewType.List: typeNode = rootNode.SelectSingleNode("//List"); removeNode = typeNode.SelectSingleNode(String.Format("ListItem[@MetaColumnId='{0}']", metaColumnId)); typeNode.RemoveChild(removeNode); break; case Models.ViewType.Summary: typeNode = rootNode.SelectSingleNode("//Summary"); removeNode = typeNode.SelectSingleNode(String.Format("SummaryItem[@MetaColumnId='{0}']", metaColumnId)); typeNode.RemoveChild(removeNode); break; case Models.ViewType.Filter: typeNode = rootNode.SelectSingleNode("//Filter"); removeNode = typeNode.SelectSingleNode(String.Format("FilterItem[@MetaColumnId='{0}']", metaColumnId)); typeNode.RemoveChild(removeNode); break; default: break; } metaReport.MetaDefinition = meta.InnerXml; string sql = string.Empty; if (model.ReportType == 2) { sql = PrepareSummaryQueryForPublication(model); } else { sql = PrepareListQueryForPublication(model); } metaReport.SQLDefinition = sql; _unitOfWork.Repository <MetaReport>().Update(metaReport); _unitOfWork.Complete(); HttpCookie cookie = new HttpCookie("PopUpMessage"); cookie.Value = "Column removed successfully"; Response.Cookies.Add(cookie); return(Redirect("/Reports/ReportAttributeItem?metaReportId=" + metaReportId.ToString() + "&viewType=" + viewType.ToString())); }
public ActionResult ReportAttributeItem(long metaReportId, Models.ViewType viewType) { ViewBag.MenuItem = CurrentMenuItem; ViewBag.PopUpMessage = PreparePopUpMessage(); var metaReport = _unitOfWork.Repository <MetaReport>() .Queryable() .SingleOrDefault(r => r.Id == metaReportId); var model = new MetaReportAttributeModel() { MetaReportId = metaReport.Id, ReportDefinition = metaReport.ReportDefinition, ReportName = metaReport.ReportName, ViewType = viewType }; if (metaReport != null) { ExtractMetaDataForAttribute(metaReport, model); IOrderedQueryable <MetaColumn> metaColumns = _unitOfWork.Repository <MetaColumn>().Queryable() .Where(mc => mc.Table.Id == model.CoreEntity) .OrderBy(mc => mc.ColumnName); List <SelectListItem> listMetaColumns = new List <SelectListItem>(); // Add new item to relevant list switch (model.ViewType) { case Models.ViewType.List: foreach (MetaColumn metaColumn in metaColumns) { // ensure not selected if (!model.ListItems.Any(li => li.MetaColumnId == metaColumn.Id)) { listMetaColumns.Add(new SelectListItem() { Text = metaColumn.ColumnName, Value = metaColumn.Id.ToString() }); } } if (listMetaColumns.Count == 0) { listMetaColumns.Add(new SelectListItem() { Text = "-- ALL COLUMNS ASSIGNED --", Value = "0" }); } break; case Models.ViewType.Summary: foreach (MetaColumn metaColumn in metaColumns) { // ensure not selected if (!model.StratifyItems.Any(li => li.MetaColumnId == metaColumn.Id)) { listMetaColumns.Add(new SelectListItem() { Text = metaColumn.ColumnName, Value = metaColumn.Id.ToString() }); } } if (listMetaColumns.Count == 0) { listMetaColumns.Add(new SelectListItem() { Text = "-- ALL COLUMNS ASSIGNED --", Value = "0" }); } break; case Models.ViewType.Filter: if (metaColumns.Count() > 0) { listMetaColumns.Add(new SelectListItem() { Text = "-- Please select a column --", Value = "0" }); foreach (MetaColumn metaColumn in metaColumns) { // ensure not selected if (!model.FilterItems.Any(li => li.MetaColumnId == metaColumn.Id)) { listMetaColumns.Add(new SelectListItem() { Text = metaColumn.ColumnName, Value = metaColumn.Id.ToString() }); } } } if (listMetaColumns.Count == 0) { listMetaColumns.Add(new SelectListItem() { Text = "-- ALL COLUMNS ASSIGNED --", Value = "0" }); } break; default: break; } ViewBag.MetaColumns = listMetaColumns; } ViewBag.Relationships = new[] { new SelectListItem { Value = "And", Text = "And", Selected = true }, new SelectListItem { Value = "Or", Text = "Or" } }; ViewBag.Operators = new[] { new SelectListItem { Value = "", Text = "-- Please select an operator --", Selected = true } }; ViewData.Model = model; return(View()); }