/// <summary> /// 执行请求 /// </summary> /// <param name="httpContext"></param> public void Invoke(HttpContext httpContext) { // 1、加载Controller endpointRouteBuilder.MapController();//扫描所有controller //路由匹配endpoint Endpoint endpoint = endpointRoute.Match("/index"); //执行endpoint object result = endpointHandler.HandlerEndpoint(endpoint, new object[] { "原理解析" }); //处理结果 ViewResult viewResult = (ViewResult)result; //输出到页面 if (viewResult.ViewType.Equals("Razor")) { AbstractView razorView = new RazorView(); razorView.Render(viewResult.ViewData, httpContext); } else if (viewResult.ViewType.Equals("Xml")) { AbstractView xmlView = new XMLView(); xmlView.Render(viewResult.ViewData, httpContext); } }
//https://stackoverflow.com/questions/24083959/using-linq-to-get-datagridview-row-index-where-first-column-has-specific-value private void SearchButton_Click(object sender, EventArgs e) { string searchValue = SearchBar.Text; XMLView.ClearSelection(); XMLView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; bool valueResult = false; try { int index = 0; var item = XMLView.Rows.Cast <DataGridViewRow>().FirstOrDefault(r => r.Cells[0].Value.ToString().Contains(searchValue, StringComparison.InvariantCultureIgnoreCase)); if (item != null) { index = item.Index; XMLView.Rows[index].Selected = true; XMLView.FirstDisplayedScrollingRowIndex = index; valueResult = true; } } catch (Exception ex) { GlobalFuncs.LogExceptions(ex); } finally { if (!valueResult) { MessageBox.Show("The item, '" + SearchBar.Text + "', was not found. Please try another term.", "XML Content Editor - Item Not Found"); } } }
//https://stackoverflow.com/questions/14431936/how-to-force-datagridviewcell-to-end-edit-when-row-header-is-clicked/14498870 private void XMLView_MouseClick(object sender, MouseEventArgs e) { if (XMLView.HitTest(e.X, e.Y).Type == DataGridViewHitTestType.RowHeader) { XMLView.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2; XMLView.EndEdit(); } else { XMLView.EditMode = DataGridViewEditMode.EditOnEnter; } }
public WBXMLInspector() { wbxmlDoc = new WBXMLDocument(); wbxmlDoc.VersionNumber = 1.3; wbxmlDoc.TagCodeSpace = new ActiveSyncCodeSpace(); wbxmlDoc.AttributeCodeSpace = new ActiveSyncAttributeCodeSpace(); wbxmlDoc.Encoding = Encoding.UTF8; xmlView = new XMLView(); textView = new RawView(this); rawBody = null; validHeader = false; tagPageControl = null; }
private void SaveXML(bool noReload = false) { XMLView.EndEdit(); //https://stackoverflow.com/questions/37145086/datagridview-remove-empty-rows-button for (int i = XMLView.Rows.Count - 1; i > -1; i--) { DataGridViewRow row = XMLView.Rows[i]; if (!row.IsNewRow && row.Cells[0].Value == null) { XMLView.Rows.RemoveAt(i); } } List <Provider> providerList = new List <Provider>(); List <PartColor> partColorList = new List <PartColor>(); foreach (DataGridViewRow data in XMLView.Rows) { if (data.IsNewRow) { continue; } switch (ListType) { case XMLContentType.ContentProviders: Provider pro = new Provider(); pro.Name = data.Cells[0].Value.ToString(); pro.URL = data.Cells[1].Value.ToString(); pro.Icon = data.Cells[2].Value.ToString(); providerList.Add(pro); break; case XMLContentType.PartColors: PartColor pc = new PartColor(); pc.ColorRawName = data.Cells[0].Value.ToString(); pc.ColorID = Convert.ToInt32(data.Cells[1].Value); pc.ColorRGB = data.Cells[2].Value.ToString(); partColorList.Add(pc); break; default: break; } } //https://stackoverflow.com/questions/2129414/how-to-insert-xml-comments-in-xml-serialization switch (ListType) { case XMLContentType.ContentProviders: ContentProviders providers = new ContentProviders(); providers.Providers = providerList.ToArray(); XmlSerializer ser = new XmlSerializer(typeof(ContentProviders)); using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName, FileMode.Create)) { XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings { Indent = true }); writer.WriteStartDocument(); writer.WriteComment(GenerateComment("content providers")); ser.Serialize(writer, providers); writer.WriteEndDocument(); writer.Flush(); } break; case XMLContentType.PartColors: PartColors partColors = new PartColors(); partColors.ColorList = partColorList.ToArray(); XmlSerializer ser2 = new XmlSerializer(typeof(PartColors)); using (FileStream fs = new FileStream(GlobalPaths.ConfigDir + "\\" + GlobalPaths.PartColorXMLName, FileMode.Create)) { XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings { Indent = true }); writer.WriteStartDocument(); writer.WriteComment(GenerateComment("part colors")); ser2.Serialize(writer, partColors); writer.WriteEndDocument(); writer.Flush(); } break; default: break; } providerList.Clear(); partColorList.Clear(); string fileName = ""; switch (ListType) { case XMLContentType.ContentProviders: fileName = GlobalPaths.ContentProviderXMLName; break; case XMLContentType.PartColors: fileName = GlobalPaths.PartColorXMLName; break; default: break; } if (!noReload) { MessageBox.Show(fileName + " has been saved! The list will now reload.", "XML Content Editor - File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information); LoadXML(ListType); } else { MessageBox.Show(fileName + " has been saved!", "XML Content Editor - File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information); } }