public void AddAlertToUser(string message, string user, AlertType type, PositionClass positionClass = PositionClass.TopRight, string Timeout = "5000") { var notificationHub = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); if (NotificationHub.Connections.TryGetValue(user, out ConnectionHandler connId)) { foreach (string s in connId.ConnectionId) { notificationHub.Clients.Client(s).displayStatus(message, type.ToString(), Alert.GetStringValue(positionClass), Timeout); } } }
public override void Open(string fileName) { Close(); sr = new StreamReader(fileName); this.FileName = fileName; iter = new MascotGenericFormatIterator <Peak>(sr); string line; int scan = 1; long position = 0; while ((line = sr.ReadLine()) != null) { if (line.StartsWith(MascotGenericFormatConstants.MSMS_SCAN_TAG)) { Match m = scanRegex.Match(line); scan = Convert.ToInt32(m.Groups[1].Value); positions[scan] = new PositionClass() { Position = position }; } else if (line.StartsWith(MascotGenericFormatConstants.RETENTION_TIME_TAG)) { positions[scan].RetentionTimeInSecond = MyConvert.ToDouble(line.Substring(MascotGenericFormatConstants.RETENTION_TIME_TAG.Length + 1)); } else if (line.StartsWith(MascotGenericFormatConstants.END_PEAK_LIST_TAG)) { position = StreamUtils.GetCharpos(sr); } } List <int> scans = new List <int>(positions.Keys); if (scans.Count > 0) { firstScan = scans[0]; lastScan = scans[scans.Count - 1]; } else { firstScan = 0; lastScan = -1; } }
/// <summary> /// 基本消息,但不包含键盘的预处理消息(Del enter 上下左右) /// </summary> /// <param name="m"></param> protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_CHAR: base.WndProc(ref m); // 输入 //Tiptimer.Enabled = false;//时间片停转 string curRow = GetCaretString(0, 0); if (curRow.Contains(":")) { //取标号 curRow = curRow.Split(':')[1]; } string[] rowInfo = curRow.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (rowInfo.Length != 0) {//非空 且并不是操作指令刚结束 也不是按清空键 AutoAttribute(rowInfo); } SetTipFloating(GetWordPosition(), 0); // 提示 return; case WM_LBUTTONDOWN://鼠标左键 // 打断点 base.WndProc(ref m);//点两次光标才有效 this.commandTipSet.HideALL(); //SetTipFloating(GetWordPosition()); //this.commandTipSetting1.ShowTipText(GetCaretString(0)); ///20090709点击不显示提示 //if (this.commandTipSetting1 != null) //{ // this.commandTipSetting1.Items.Clear(); // this.commandTipSetting1.Hide(); //} //int x = (int)m.LParam & (0xFFFF); //int y = ((int)m.LParam >> 16); //PositionClass maxPc = new PositionClass(); //maxPc.LineNo = this.LineCount - 1; // 最大行号 //maxPc.ColNo = 0; //RectClass maxRc = (RectClass)PosFromChar(maxPc); // 最大行号的位置 //if (x < 25 && y < Rc.bottom) //{// 单击有效边距处 // //if(slBreakPoints.ContainsKey( // PositionClass ps = (PositionClass)GetSelFromPoint(x + 25, y); // 点击边距是获得不到位置,必须在内容里 // if (alBreakPoints.Contains(ps.LineNo)) // { // RemoveBreakPoint(ps.LineNo); // } // else // { // if (ps.LineNo < this.LineCount) // { // if (this.Code.editingOperator != null) // { // if (!this.Code.editingOperator[ps.LineNo].Equals("MPS") && !this.Code.editingOperator[ps.LineNo].Equals("MPP") // && !this.Code.editingOperator[ps.LineNo].Equals("MRD") // && !this.Code.editingOperator[ps.LineNo].Equals("ANB") && !this.Code.editingOperator[ps.LineNo].Equals("ORB")) // { // AddBreakPoint(ps.LineNo); // } // else // { // //CassMessageBox.CassMessageBox.Information("该位置未能插入断点!"); // } // } // else // { // //CassMessageBox.CassMessageBox.Information("请先编译再新建断点!"); // } // //AddBreakPoint(ps.LineNo); // //SetRunLine(ps.LineNo); // } // } //} break; case WM_NCPAINT: base.WndProc(ref m); //this.CreateGraphics().FillEllipse(Brushes.Red, new Rectangle(0, 0, 10, 10)); //SetTipFloating(GetWordPosition()); //GetWordPosition(); //this.commandTipSetting1.ShowTipText(GetCaretString(0)); return; case WM_PAINT: base.WndProc(ref m); foreach (int lineNo in alBreakPoints) { PositionClass pc = new PositionClass(); pc.ColNo = 0; pc.LineNo = lineNo; //RectClass rc = (RectClass)PosFromChar(pc); //Bitmap imageBreakPoint = global::SystemConfiguration.Properties.Resources.BreakPoint; //this.CreateGraphics().FillEllipse(Brushes.Red, new Rectangle(8, rc.top, 15, 15)); //this.CreateGraphics().DrawImage(imageBreakPoint, new Point(8, rc.top)); //imageBreakPoint.Dispose(); } if (iRunLineNo > -1 && iRunLineNo < LineCount) { PositionClass pc = new PositionClass(); pc.ColNo = 0; pc.LineNo = iRunLineNo; //RectClass rc = (RectClass)PosFromChar(pc); //Bitmap imageBreakPoint = global::SystemConfiguration.Properties.Resources.RUN; //if (alBreakPoints.Contains(iRunLineNo)) //imageBreakPoint = global::SystemConfiguration.Properties.Resources.Break_Run; //this.CreateGraphics().DrawImage(imageBreakPoint, new Point(8, rc.top)); //imageBreakPoint.Dispose(); } return; case MS_MOVE: //GetChildAtPoint(Control.MousePosition); //this.commandTipSet.Location = Control.MousePosition; //if (Tiptimer.Enabled == false) //{ // Tiptimer.Start(); //} //else //{//时间片已经启动,则重启 // Tiptimer.Stop(); // Tiptimer.Start(); //} break; case WM_LBUTTONMID: //if (commandTipSet.Items.Count != 0) //{ commandTipSet.HideALL(); //} break; default: break; } base.WndProc(ref m); }
public Player() { Position = new PositionClass(); }
private void ShowFlowDirect(IFeatureLayerPickResult pr) { if (pr == null) { return; } IRowBuffer row = null; IFdeCursor cursor = null; try { int fid = pr.FeatureId; DF3DFeatureClass dffc = DF3DFeatureClassManager.Instance.GetFeatureClassByID(pr.FeatureLayer.FeatureClassId.ToString()); if (dffc == null) { return; } IFeatureClass fc = dffc.GetFeatureClass(); FacilityClass fac = dffc.GetFacilityClass(); if (fc == null || fac == null || fac.Name != "PipeLine") { return; } DFDataConfig.Class.FieldInfo fi = fac.GetFieldInfoBySystemName("FlowDirect"); if (fi == null) { return; } IFieldInfoCollection fiCol = fc.GetFields(); int index = fiCol.IndexOf(fi.Name); if (index == -1) { return; } int indexShape = fiCol.IndexOf("Shape"); IQueryFilter filter = new QueryFilter(); filter.WhereClause = "oid=" + fid; cursor = fc.Search(filter, false); row = cursor.NextRow(); if (row == null) { return; } IPolyline line = null; if (indexShape != -1 && !row.IsNull(indexShape)) { object obj = row.GetValue(indexShape); if (obj != null && obj is IPolyline) { line = obj as IPolyline; } } string flowDirectValue = "0"; int type = 1;// 1表示具有流向字段;2表示从高到低 if (!row.IsNull(index)) { flowDirectValue = row.GetValue(index).ToString(); if (flowDirectValue != "0" && flowDirectValue != "1") { flowDirectValue = "0"; } type = 1; } else if (line != null) { if (line.StartPoint.Z > line.EndPoint.Z) { flowDirectValue = "0"; } else { flowDirectValue = "1"; } type = 2; } if (line == null) { return; } if (this._isAuth) { #region 流向渲染1 FacClassReg reg = FacilityInfoService.GetFacClassRegByFeatureClassID(fc.Guid.ToString()); if (reg == null) { return; } TopoClass tc = FacilityInfoService.GetTopoClassByFacClassCode(reg.FacClassCode); if (tc == null) { return; } FacStyleClass style = null; List <FacStyleClass> facilityStyles = FacilityInfoService.GetFacStyleByFacClassCode(reg.FacClassCode); if ((facilityStyles != null) && (facilityStyles.Count > 0)) { style = facilityStyles[0]; } PipeLineFac plfac = new PipeLineFac(reg, style, row, tc); IRenderModelPoint rmp = null; DrawGeometry.Ocx = DF3DApplication.Application.Current3DMapControl; plfac.ShowFlowDirection(int.Parse(flowDirectValue), out rmp); if (rmp != null) { this._listRender.Add(rmp.Guid); } #endregion } else { #region 流向渲染2 IEulerAngle angle = DF3DApplication.Application.Current3DMapControl.Camera.GetAimingAngles2(line.StartPoint, line.EndPoint); double dia = 0.0; string diaField = fac.GetFieldInfoNameBySystemName("Diameter"); int indexDia = fiCol.IndexOf(diaField); if (indexDia != -1 && !row.IsNull(indexDia)) { string diaStr = row.GetValue(indexDia).ToString(); int indexDia1 = diaStr.ToString().IndexOf('*'); if (indexDia1 != -1) { var dia1 = int.Parse(diaStr.ToString().Substring(0, indexDia1)); var dia2 = int.Parse(diaStr.ToString().Substring(indexDia1 + 1, diaStr.ToString().Length)); dia = ((dia1 > dia2) ? dia1 : dia2) * 0.001; } else { dia = int.Parse(diaStr) * 0.001; } } List <IPoint> points = new List <IPoint>(); if (flowDirectValue == "0") { for (int i = 0; i < line.PointCount; i++) { IPoint pt = line.GetPoint(i); pt.Z += dia / 2; points.Add(pt); } } else if (flowDirectValue == "1") { for (int i = line.PointCount - 1; i >= 0; i--) { IPoint pt = line.GetPoint(i); pt.Z += dia / 2; points.Add(pt); } } for (int i = 0; i < points.Count - 1; i++) { IPoint pt1 = points[i]; var pt2 = points[i + 1]; double delt = 0; double _rate, _distance; if (!(Math.Abs(dia) < 0.0000001)) { delt = 2.0 * dia; if (dia <= 0.5 && dia >= 0.3) { _rate = 7 * dia; _distance = 3 * dia / 0.4; } else if (dia < 0.3 && dia > 0.1) { _rate = 12 * dia; _distance = 6 * dia / 0.4; } else if (dia <= 0.1) { _rate = 22 * dia; _distance = 9 * dia / 0.4; } else { _rate = 3.5 * dia; _distance = 1.5 * dia / 0.4; } } else { _rate = 2.0; _distance = 3.0; //z = maxZ + 0.2; delt = 0.2; } List <IPoint> list = DisPerseLine(pt1, pt2, _distance); if (list.Count < 2) { return; } List <IPoint> list1 = new List <IPoint>(); IGeometryFactory geoFact = new GeometryFactoryClass(); for (int j = 0; j < list.Count - 1; j++) { IPoint p = geoFact.CreatePoint(gviVertexAttribute.gviVertexAttributeZ); p.X = (list[j].X + list[j + 1].X) / 2; p.Y = (list[j].Y + list[j + 1].Y) / 2; p.Z = (list[j].Z + list[j + 1].Z) / 2; list1.Add(p); } for (var m = 0; m < list1.Count; m++) { IPosition pos = new PositionClass(); pos.X = list1[m].X; pos.Y = list1[m].Y; pos.Altitude = list1[m].Z + delt; pos.AltitudeType = gviAltitudeType.gviAltitudeTerrainAbsolute; pos.Heading = angle.Heading; pos.Tilt = angle.Tilt; pos.Roll = angle.Roll; UInt32 color; if (type == 1) { color = 0xFFFFFF00; } else { color = 0xFF00FFFF; } ITerrainArrow rArrow = DF3DApplication.Application.Current3DMapControl.ObjectManager.CreateArrow(pos, 0.8 * _rate, 3, color, color, DF3DApplication.Application.Current3DMapControl.ProjectTree.RootID); this._listRender.Add(rArrow.Guid); } } #endregion } } catch (Exception ex) { } finally { if (cursor != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(cursor); cursor = null; } if (row != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(row); row = null; } } }
public void AddAlert(string message, string CallerMethod, string CallerClass, AlertType type, Exception ex, PositionClass positionClass = PositionClass.TopRight, string Timeout = "5000") { var notificationHub = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); if (NotificationHub.Connections.TryGetValue(User.Identity.Name, out ConnectionHandler connId)) { foreach (string s in connId.ConnectionId) { notificationHub.Clients.Client(s).displayStatus(message, type.ToString(), Alert.GetStringValue(positionClass)); } } log.Error($"[{CallerMethod}] {ex.Message}", ex); }
public void Initialize() { _position = new PositionClass(); _target = new PrivateObject(_position); }