protected void GridView1_Delete(object sender, BXDeleteEventArgs e) { BXGridView grid = (BXGridView)sender; try { BXIBlockCommonCollection elements; if (e.Keys != null) //Delete one element { elements = new BXIBlockCommonCollection(); int tempId; Int32.TryParse(e.Keys["ID"].ToString(), out tempId); string tempKey = e.Keys["CommonElementType"].ToString(); if (tempId <= 0 || (!string.Equals(tempKey, "E", StringComparison.OrdinalIgnoreCase) && !string.Equals(tempKey, "S", StringComparison.OrdinalIgnoreCase))) { throw new PublicException(GetMessageRaw("Error.ElementCodeIsNotFound")); } if (string.Equals(tempKey, "E", StringComparison.OrdinalIgnoreCase)) { BXIBlockElement elem = BXIBlockElement.GetById(tempId); if (elem == null) throw new PublicException(GetMessageRaw("Exception.ElementIsNotFound")); elements.Add(elem); } else { BXIBlockSection sect = BXIBlockSection.GetById(tempId); if (sect == null) throw new PublicException(GetMessageRaw("Exception.SectionIsNotFound")); elements.Add(sect); } } else //All elements { elements = BXIBlockSection.GetMixedList(MakeCurrentFilter(), null); } foreach (BXEntity element in elements) { if (element == null) throw new PublicException(GetMessageRaw("Exception.ElementIsNotFound")); if (element is BXIBlockElement) { BXIBlockElement elem = (BXIBlockElement)element; if (!BXIBlock.IsUserCanOperate(elem.IBlockId, BXIBlock.Operations.IBlockModifyElements)) throw new PublicException(GetMessageRaw("ExceptionText.YouDontHaveRightsToDeleteThisRecord")); elem.Delete(); } else { BXIBlockSection sect = (BXIBlockSection)element; if (!BXIBlock.IsUserCanOperate(sect.IBlockId, BXIBlock.Operations.IBlockModifySections)) throw new PublicException(GetMessageRaw("Exception.YouDontHaveRightsToDeleteThisRecord")); sect.Delete(); //if (!BXInfoBlockSectionManagerOld.Delete(sect.Id)) //throw new Exception(GetMessageRaw("Exception.AnErrorHasOccurredWhileDeletingSection")); } e.DeletedCount++; } successMessage.Visible = true; } catch (Exception ex) { ProcessException(ex, errorMessage.AddErrorText); } grid.MarkAsChanged(); }
private DataTable FillTable(BXIBlockCommonCollection collection, List<string> visibleColumnsList) { if (collection == null) collection = new BXIBlockCommonCollection(); DataTable result = new DataTable(); result.Columns.Add("num", typeof(int)); result.Columns.Add("Name", typeof(string)); result.Columns.Add("Sort", typeof(int)); result.Columns.Add("Code", typeof(string)); result.Columns.Add("XmlId", typeof(string)); result.Columns.Add("Tags", typeof(string)); result.Columns.Add("Active", typeof(bool)); result.Columns.Add("ElementsCount", typeof(int)); result.Columns.Add("SectionsCount", typeof(int)); result.Columns.Add("UpdateDate", typeof(DateTime)); result.Columns.Add("ActiveFromDate", typeof(string)); result.Columns.Add("ActiveToDate", typeof(string)); result.Columns.Add("ModifiedBy", typeof(string)); result.Columns.Add("CreateDate", typeof(DateTime)); result.Columns.Add("CreatedBy", typeof(string)); result.Columns.Add("PreviewText", typeof(string)); result.Columns.Add("PreviewTextType", typeof(char)); result.Columns.Add("PreviewPictureId", typeof(int)); result.Columns.Add("DetailText", typeof(string)); result.Columns.Add("DetailTextType", typeof(char)); result.Columns.Add("DetailPictureId", typeof(int)); result.Columns.Add("ID", typeof(int)); result.Columns.Add("CommonElementType", typeof(string)); AddCustomFieldColumns(result.Columns); bool canViewUsers = this.BXUser.IsCanOperate(BXRoleOperation.Operations.UserView); foreach (BXEntity t in collection) { DataRow r = result.NewRow(); if (t is BXIBlockSection) { BXIBlockSection s = (BXIBlockSection)t; r["Name"] = s.Name; r["Sort"] = s.Sort; r["Code"] = s.Code; r["XmlId"] = s.XmlId; r["Tags"] = ""; r["Active"] = s.Active; r["ElementsCount"] = (visibleColumnsList.Contains("ElementsCount") ? s.ElementsCount : 0); r["SectionsCount"] = (visibleColumnsList.Contains("SectionsCount") ? s.SectionsCount : 0); r["UpdateDate"] = s.UpdateDate; r["ActiveFromDate"] = ""; r["ActiveToDate"] = ""; if (visibleColumnsList.Contains("ModifiedBy") && s.ModifiedByUser != null) { if (canViewUsers) r["ModifiedBy"] = String.Format("(<a href=\"AuthUsersEdit.aspx?id={3}\">{0}</a>) {1} {2}", Encode(s.ModifiedByUser.UserName), Encode(s.ModifiedByUser.FirstName), Encode(s.ModifiedByUser.LastName), s.ModifiedBy); else r["ModifiedBy"] = String.Format("({0}) {1} {2}", Encode(s.ModifiedByUser.UserName), Encode(s.ModifiedByUser.FirstName), Encode(s.ModifiedByUser.LastName)); } else r["ModifiedBy"] = ""; if (visibleColumnsList.Contains("CreatedBy") && s.CreatedByUser != null) { if (canViewUsers) r["CreatedBy"] = String.Format("(<a href=\"AuthUsersEdit.aspx?id={3}\">{0}</a>) {1} {2}", Encode(s.CreatedByUser.UserName), Encode(s.CreatedByUser.FirstName), Encode(s.CreatedByUser.LastName), s.CreatedBy); else r["CreatedBy"] = String.Format("({0}) {1} {2}", Encode(s.CreatedByUser.UserName), Encode(s.CreatedByUser.FirstName), Encode(s.CreatedByUser.LastName)); } else r["CreatedBy"] = ""; r["CreateDate"] = s.CreateDate; r["PreviewText"] = ""; r["PreviewTextType"] = 'H'; r["DetailText"] = s.Description; r["DetailTextType"] = (s.DescriptionType == BXTextType.Html ? 'H' : 'T'); r["DetailPictureId"] = s.DetailImageId; r["PreviewPictureId"] = s.ImageId; r["ID"] = s.Id; r["CommonElementType"] = "S"; } else if (t is BXIBlockElement) { BXIBlockElement s = (BXIBlockElement)t; r["Name"] = s.Name; r["Sort"] = s.Sort; r["Code"] = s.Code; r["XmlId"] = s.XmlId; r["Tags"] = s.Tags; r["Active"] = s.Active; r["ElementsCount"] = 0; r["SectionsCount"] = 0; r["CreateDate"] = s.CreateDate; r["UpdateDate"] = s.UpdateDate; string activeFromDate = String.Empty; if (s.ActiveFromDate != DateTime.MinValue) { if (s.ActiveFromDate.TimeOfDay == TimeSpan.Zero) activeFromDate = s.ActiveFromDate.ToString("d"); else activeFromDate = s.ActiveFromDate.ToString(); } r["ActiveFromDate"] = activeFromDate; string activeToDate = String.Empty; if (s.ActiveToDate != DateTime.MinValue) { if (s.ActiveToDate.TimeOfDay == TimeSpan.Zero) activeToDate = s.ActiveToDate.ToString("d"); else activeToDate = s.ActiveToDate.ToString(); } r["ActiveToDate"] = activeToDate; if (visibleColumnsList.Contains("ModifiedBy") && s.ModifiedByUser != null) { if (canViewUsers) r["ModifiedBy"] = String.Format("(<a href=\"AuthUsersEdit.aspx?id={3}\">{0}</a>) {1} {2}", Encode(s.ModifiedByUser.UserName), Encode(s.ModifiedByUser.FirstName), Encode(s.ModifiedByUser.LastName), s.ModifiedBy); else r["ModifiedBy"] = String.Format("({0}) {1} {2}", Encode(s.ModifiedByUser.UserName), Encode(s.ModifiedByUser.FirstName), Encode(s.ModifiedByUser.LastName)); } else r["ModifiedBy"] = ""; if (visibleColumnsList.Contains("CreatedBy") && s.CreatedByUser != null) { if (canViewUsers) r["CreatedBy"] = String.Format("(<a href=\"AuthUsersEdit.aspx?id={3}\">{0}</a>) {1} {2}", Encode(s.CreatedByUser.UserName), Encode(s.CreatedByUser.FirstName), Encode(s.CreatedByUser.LastName), s.CreatedBy); else r["CreatedBy"] = String.Format("({0}) {1} {2}", Encode(s.CreatedByUser.UserName), Encode(s.CreatedByUser.FirstName), Encode(s.CreatedByUser.LastName)); } else r["CreatedBy"] = ""; r["PreviewText"] = s.PreviewText; r["PreviewTextType"] = (s.PreviewTextType == BXTextType.Html ? 'H' : 'T'); r["DetailText"] = s.DetailText; r["DetailTextType"] = (s.DetailTextType == BXTextType.Html ? 'H' : 'T'); r["DetailPictureId"] = s.DetailImageId; r["PreviewPictureId"] = s.PreviewImageId; r["ID"] = s.Id; r["CommonElementType"] = "E"; AddCustomFieldValues(r, s); } else continue; result.Rows.Add(r); } return result; }