private void ShowResult0(IntPtr windowPtr) { SubCure cv = XmlHelper.Deserialize <SubCure>(Path.Combine(Application.StartupPath, ConfigNames.SubCure0)); if (cv != null) { if (this.InvokeRequired) { this.Invoke(new Action(() => { this.DockFigure(windowPtr); _currentPtr = windowPtr; StringBuilder build = new StringBuilder(); build.AppendLine("计算结果:"); build.AppendLine("暴雨雨力Sd = " + cv.Sd); build.AppendLine("衰减指数nd = " + cv.nd); build.AppendLine("斜率n = " + cv.n1); build.AppendLine("截距s = " + cv.j1); FormOutput.AppendLog(build.ToString()); SdData2.Text = cv.Sd.ToString(); ndData2.Text = cv.nd.ToString(); Jieju.Text = cv.j1.ToString(); Xielv.Text = cv.n1.ToString(); tabControl1.SelectedTab = tabControl1.Tabs[2]; })); } } }
private void bgwCaculate_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Result != null) { FormOutput.AppendLog(e.Result.ToString()); } }
public async Task <ActionResult> StartLOBFlowAction(FormOutput data) { // Obtain and then encrypt the JWT access token var accessToken = await AuthProvider.Instance.GetUserAccessTokenAsync(); // Create a Message Card var messageCard = await CreateMessageCard(data); // Create a LOB message var lobData = new LOBData { Id = Guid.NewGuid().ToString(), Status = "New", DueDate = DateTime.UtcNow.AddDays(7), AssignedTo = "Unassigned", Task = messageCard, Token = accessToken }; return(await WithExceptionHandlingAsync( async token => { await graphService.PostMessage(_logicAppUrl, messageCard, token); return new FormOutput() { SuccessMessage = "Sent", }; } )); }
public void generalReport(object sender, EventArgs e) { DataTable general = addColumns(); string thisSql = moduleRoads.GetSelectAllSQL(); try { DataTable resultsTable = Database.GetDataByQuery(Project.conn, thisSql); foreach (DataRow row in resultsTable.Rows) { DataRow nr = general.NewRow(); addRows(nr, row); general.Rows.Add(nr); } general.DefaultView.Sort = "Name asc, Treatment asc, From Address asc"; general = general.DefaultView.ToTable(); FormOutput report = new FormOutput(Project, moduleRoads); report.dataGridViewReport.DataSource = general; report.Text = "Treatment Report"; report.Show(); } catch (Exception err) { Log.Error("Could not get database values for " + ModuleName + " module.\n" + err.ToString()); MessageBox.Show("An error has occured while trying to consolidate data."); } }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { string[] args = e.Argument as string[]; double avgLength = 0; double avgSlope = 0; if (File.Exists(args[0]) && File.Exists(args[1])) { FormOutput.AppendLog("开始获取线的交点..."); RasterReader reader = new RasterReader(args[1]); List <Point3d> pts = CalPoints(args[0], reader); FormOutput.AppendLog("开始计算平均坡度和坡长..."); CalAvgSlopeLength(pts, reader, ref avgLength, ref avgSlope); reader.Dispose(); FormOutput.AppendLog("平均坡长:" + avgLength.ToString("f3")); FormOutput.AppendLog("平均坡度:" + avgSlope.ToString("f3")); } double?r = null; if (File.Exists(args[1]) && File.Exists(args[2])) { FormOutput.AppendLog("开始计算坡面流速系数..."); r = RasterCoefficientReader.ReadCoeficient(args[2], args[1]); if (r.HasValue) { FormOutput.AppendLog("结果--坡面流速系数为:" + r.Value.ToString()); } } e.Result = new double[] { avgLength, avgSlope, r.GetValueOrDefault(0) }; }
/// <summary> /// 计算影像数据单元格的投影面积 /// (区分了文件为投影坐标还是地理坐标) /// </summary> /// <param name="reader"></param> /// <param name="_widthNum"></param> /// <param name="_heightNum"></param> /// <returns></returns> private double CaculateCellAera(RasterReader reader, int _widthNum, int _heightNum) { try { int ti, tj; ti = _widthNum / 2; tj = _heightNum / 2; iTelluro.GlobeEngine.DataSource.Geometry.Point3d p00, p01, p10; if (reader.IsProjected) { p00 = new Point3d(_terrainTile[ti, tj].Longitude, _terrainTile[ti, tj].Latitude, _terrainTile[ti, tj].Altitude); p01 = new Point3d(_terrainTile[ti, tj + 1].Longitude, _terrainTile[ti, tj + 1].Latitude, _terrainTile[ti, tj + 1].Altitude); p10 = new Point3d(_terrainTile[ti + 1, tj].Longitude, _terrainTile[ti + 1, tj].Latitude, _terrainTile[ti + 1, tj].Altitude); } else { double r = _globeView.GlobeViewSetting.EquatorialRadius + _terrainTile[ti, tj].Altitude; p00 = MathEngine.SphericalToCartesianD(Angle.FromDegrees(_terrainTile[ti, tj].Latitude), Angle.FromDegrees(_terrainTile[ti, tj].Longitude), r); p01 = MathEngine.SphericalToCartesianD(Angle.FromDegrees(_terrainTile[ti, tj + 1].Latitude), Angle.FromDegrees(_terrainTile[ti, tj + 1].Longitude), r); p10 = MathEngine.SphericalToCartesianD(Angle.FromDegrees(_terrainTile[ti + 1, tj].Latitude), Angle.FromDegrees(_terrainTile[ti + 1, tj].Longitude), r); } double area = (p00 - p01).Length * (p00 - p10).Length; return(area); } catch (Exception ex) { FormOutput.AppendLog(ex.Message); return(0); } }
/// <summary> /// 计算平均坡度和坡长 /// </summary> /// <param name="point"></param> /// <param name="reader"></param> /// <param name="avglength"></param> /// <param name="avgslope"></param> public void CalAvgSlopeLength(List <Point3d> points, RasterReader reader, ref double avglength, ref double avgslope) { double totalLength = 0; double totalSlope = 0; if (points != null && points.Count > 0) { int count = 0; for (int i = 0; i < points.Count; i++) { Point3d startpt = points[i]; List <Point3d> resultPt = GetMaxSlopePoints(points[i], reader); double singleLength = 0; double singleSlope = 0; for (int j = 0; j < resultPt.Count; j++) { Point3d point1 = resultPt[i]; Point3d point2 = resultPt[resultPt.Count - 1]; singleLength += RasterCoefficientReader.Length(point1, point2); } singleSlope = Math.Abs((startpt.Z - resultPt[resultPt.Count - 1].Z) / (RasterCoefficientReader.Length(startpt, resultPt[resultPt.Count - 1]))); totalSlope += singleSlope; totalLength += singleLength; count = points.Count * resultPt.Count; FormOutput.AppendProress(((i + 1) * 100) / points.Count); } avglength = totalLength / (1000 * count); avgslope = totalSlope * 1000 / points.Count; } }
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e) { Dictionary <int, double[]> dicArgs = e.Argument as Dictionary <int, double[]>; //将数据按照大于一小时和小于一小时来分类 string minHour = string.Empty; string minHourValue = string.Empty; string maxHour = string.Empty; string maxHourValue = string.Empty; StringBuilder builder = new StringBuilder(); builder.AppendLine("*******************计算参数***********************"); foreach (var item in dicArgs) { double during = item.Value[0]; //范围-值 double value = item.Value[1]; minHour += during; minHourValue += value; minHour += ","; minHourValue += ","; builder.AppendLine(string.Format("a{0} = {1}", item.Key, value)); builder.AppendLine(string.Format("t{0} = {1}", item.Key, during)); } builder.AppendLine("***************************************************"); builder.AppendLine("开始计算暴雨衰减参数..."); FormOutput.AppendLog(builder.ToString()); builder = new StringBuilder(); builder.Append(MethodName.RainStormSub0); builder.Append(" "); builder.Append(minHour.Substring(0, minHour.Length - 1)); builder.Append(" "); builder.Append(minHourValue.Substring(0, minHourValue.Length - 1)); RunExeHelper.RunMethod(builder.ToString()); e.Result = "1"; }
private void ShowResult(IntPtr windowPtr) { CvCure cv = XmlHelper.Deserialize <CvCure>(Path.Combine(Application.StartupPath, ConfigNames.SvCure)); StringBuilder builder = new StringBuilder(); builder.AppendLine("计算结果:"); builder.AppendLine("统计样本平均值X = " + cv.X); builder.AppendLine("变差系数Cv = " + cv.Cv); builder.AppendLine("偏态系数Cs = " + cv.Cs); builder.AppendLine("拟合度N = " + cv.Nihe); FormOutput.AppendLog(builder.ToString()); if (cv != null) { if (_parent.InvokeRequired) { _parent.Invoke(new Action(() => { if (_resutUI == null) { _resutUI = new CaculatePercentUI(); _resutUI.Dock = DockStyle.Fill; _parent.ShowDock("暴雨频率计算", _resutUI); } cv.State = txtState.Text; cv.Time = cmbPercent.SelectedValue.ToString(); _resutUI.BindResult(cv, windowPtr); })); } } }
public async Task <ActionResult> PostMessageAction(FormOutput data) { _channelProvider.CurrentTeamId = data.SelectedTeam; await _channelProvider.SendMessageAsync(data.SelectedChannel, data.MessageBodyInput); return(View("Graph", _channelProvider.LastResult)); }
private void WatershedArea(string shppath, string rasterpath, ref double _resultProjectArea, ref double?_resultSurfaceArea) { //获取流域面积形状以及它的外接矩形 GeoRect _analysisRect = new GeoRect(-90, 90, 180, -180); //外接矩形 iTelluroLib.GeoTools.Geometries.Polygon _analysisPolygon = _hydrology.CalLimitAreaPolygon(shppath, ref _analysisRect); //流域面形状 //在存在流域面积界定的情况下要进行裁剪筛选,不存在默认全部计算 RasterReader raster = new RasterReader(rasterpath); double _widthStep = raster.CellSizeX; double _heightStep = raster.CellSizeY; // 网格大小:行、列数 int _widthNum = (int)((_analysisRect.East - _analysisRect.West) / _widthStep); int _heightNum = (int)((_analysisRect.North - _analysisRect.South) / _heightStep); _terrainTile = new TerrainPoint[_widthNum, _heightNum]; //构建高程矩阵 for (int i = 0; i < _widthNum; i++) { for (int j = 0; j < _heightNum; j++) { TerrainPoint tp = new TerrainPoint(); tp.Longitude = _analysisRect.West + i * _widthStep; tp.Latitude = _analysisRect.South + j * _heightStep; tp.Altitude = ReadBand(raster, i, j); tp.col = i; tp.row = j; _terrainTile[i, j] = tp; } } double _cellArea = CaculateCellAera(raster, _widthNum, _heightNum); //坡度计算 if (_resultSurfaceArea == null) { _resultSurfaceArea = 0; } for (int i = 0; i < _widthNum; i++) { for (int j = 0; j < _heightNum; j++) { TerrainPoint tp = _terrainTile[i, j]; iTelluroLib.GeoTools.Geometries.Point currentPoint = new iTelluroLib.GeoTools.Geometries.Point(tp.Longitude, tp.Latitude); if ((_analysisPolygon != null && _analysisPolygon.Contains(currentPoint)) || _analysisPolygon == null) { _resultProjectArea += _cellArea; //计算坡度 double slope = GetSlope(raster, tp); double currentCellArea = _cellArea / Math.Cos(slope); _resultSurfaceArea += currentCellArea; } } FormOutput.AppendProress(((i + 1) * 100) / _widthNum); } }
private void showReport(DataTable data, string name) { data.DefaultView.Sort = "Support ID asc"; FormOutput report = new FormOutput(Project, null, name); report.dataGridViewReport.DataSource = data.DefaultView.ToTable(); report.Text = name; report.Show(); }
public async Task <ActionResult> PostChannelsAction(FormOutput data) { _channelProvider.CurrentTeamId = data.SelectedTeam; // Create channel // TODO: add users await _channelProvider.CreateChannelAsync(data.NameInput, new List <string>() { }); return(View("Graph", _channelProvider.LastResult)); }
private void backgroundWorker2_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Result != null) { FormOutput.AppendLog(string.Format("提取结束,共耗时{0}秒..", (DateTime.Now - _currentTime).TotalSeconds)); System.Diagnostics.Process.Start("Explorer.exe", Path.GetDirectoryName(e.Result.ToString())); } FormOutput.AppendProress(false); currentDem = fileChooseControl1.FilePath; }
public void potholeReport(object sender, EventArgs e) { string[] pd = { "less than 1\"", "less than 2\"", "more than 2\"" }; string[] pq = { "less than 2", "less than 5", "more than 5" }; int Integer = 0; Type typeInt = Integer.GetType(); DataTable potholes = new DataTable("Potholes"); potholes.Columns.Add("ID", typeInt); potholes.Columns.Add("Name"); potholes.Columns.Add("From Address"); potholes.Columns.Add("To Address"); potholes.Columns.Add("Depth"); potholes.Columns.Add("Quantity"); potholes.Columns.Add("Treatment"); potholes.Columns.Add("Photo"); string thisSql = moduleRoads.GetSelectAllSQL(); try { DataTable resultsTable = Database.GetDataByQuery(Project.conn, thisSql); if (resultsTable.Rows.Count == 0) { MessageBox.Show("No list could be generated because no roads with potholes where found."); return; } foreach (DataRow row in resultsTable.Rows) { if (Util.ToInt(row["distress5"].ToString()) <= 0) { continue; } DataRow nr = potholes.NewRow(); nr["ID"] = row["TAMSID"]; nr["Name"] = row["name"]; nr["From Address"] = row["from_address"]; nr["To Address"] = row["to_address"]; nr["Depth"] = (Util.ToInt(row["distress5"].ToString()) > 0 ? pd[(Util.ToInt(row["distress5"].ToString()) - 1) / 3] : "None"); nr["Quantity"] = (Util.ToInt(row["distress5"].ToString()) > 0 ? pq[(Util.ToInt(row["distress5"].ToString()) - 1) % 3] : "None"); nr["Treatment"] = row["suggested_treatment"]; nr["Photo"] = row["photo"]; potholes.Rows.InsertAt(nr, potholes.Rows.Count); } potholes.DefaultView.Sort = "Name asc, From Address asc"; FormOutput report = new FormOutput(Project, moduleRoads); report.dataGridViewReport.DataSource = potholes.DefaultView.ToTable(); report.Text = "Potholes Report"; report.Show(); } catch (Exception err) { Log.Error("Could not get database values for " + ModuleName + " module.\n" + err.ToString()); MessageBox.Show("An error has occured while trying to consolidate data."); } }
private void customRoadReport(FormQueryBuilder tableFilters) { bool selectResults = false; string surfaceType = tableFilters.getSurface(); string query = tableFilters.getQuery(); if (tableFilters.checkBoxSelectResults.Checked && query != "SELECT * FROM road") { selectResults = true; } query += " GROUP BY TAMSID ORDER BY TAMSID ASC, survey_date DESC;"; DataTable results = Database.GetDataByQuery(Project.conn, query); if (results.Rows.Count == 0) { MessageBox.Show("No roads matching the given description were found."); return; } DataTable outputTable = roadReports.addColumns(surfaceType); FormOutput report = new FormOutput(Project, moduleRoads); FeatureLayer selectionLayer = (FeatureLayer)moduleRoads.Layer; selectionLayer.ClearSelection(); foreach (DataRow row in results.Rows) { if (selectResults) { String tamsidcolumn = Project.settings.GetValue("road_f_TAMSID"); selectionLayer.SelectByAttribute(tamsidcolumn + " = " + row["TAMSID"], ModifySelectionMode.Append); } DataRow nr = outputTable.NewRow(); string note = row["notes"].ToString().Split(new[] { '\r', '\n' }).FirstOrDefault(); //retrive most recent note int oldNoteLength = note.Length; int maxLength = 17; if (!string.IsNullOrEmpty(note)) { note = note.Substring(0, Math.Min(oldNoteLength, maxLength)); if (note.Length == maxLength) { note += "..."; } } roadReports.addRows(nr, row, surfaceType); outputTable.Rows.Add(nr); } report.dataGridViewReport.DataSource = outputTable; report.Text = "Treatment Report"; report.Show(); if (selectResults) { moduleRoads.selectionChanged(); } }
// See also: AuthProvider\Startup.Auth.cs public async Task ConnectAsync() { LastResult = await WithExceptionHandling( func => new FormOutput() { ShowTeamDropdown = true, } ); CurrentTeamId = LastResult.Teams?.FirstOrDefault()?.id; // NOTE: select first team on connection }
private void backgroundWorker2_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { FormOutput.AppendLog("计算期间发生异常:" + e.Error.Message); return; } if (e.Result != null) { RunExeHelper.FindFigureAndTodo(ShowResult0); } }
public async Task <ActionResult> GetChannelsAction(FormOutput data) { _channelProvider.CurrentTeamId = data.SelectedTeam; var output = new FormOutput() { Channels = await _channelProvider.GetChannels(), ShowChannelOutput = true }; return(View("Graph", output)); }
private void createReport(string query, Dictionary <string, string> mapping, string sortKey = "ID", string name = "") { DataTable outputTable = new DataTable(); foreach (string key in mapping.Keys) { if (key == "ID") { int Integer = 0; Type typeInt = Integer.GetType(); outputTable.Columns.Add(key, typeInt); } else { outputTable.Columns.Add(key); } } try { DataTable results = Database.GetDataByQuery(Project.conn, query); if (results.Rows.Count == 0) { MessageBox.Show("No list could be generated because no " + name + " were found."); return; } foreach (DataRow row in results.Rows) { DataRow nr = outputTable.NewRow(); foreach (string key in mapping.Keys) { if (key == "Notes") { nr[key] = truncateNote(row[mapping[key]]); } else { nr[key] = row[mapping[key]]; } } outputTable.Rows.Add(nr); } outputTable.DefaultView.Sort = sortKey + " asc"; FormOutput report = new FormOutput(Project, null, name); report.dataGridViewReport.DataSource = outputTable.DefaultView.ToTable(); report.Text = name + " Report"; report.Show(); } catch (Exception e) { Log.Error("Could not get data from database " + Environment.NewLine + e.ToString()); } }
private void button1_Click(object sender, EventArgs e) { if (!backgroundWorker1.IsBusy) { string state = txtState.Text; string level = cmbLevel.SelectedValue.ToString(); backgroundWorker1.RunWorkerAsync(new string[] { state, level }); } else { FormOutput.AppendLog("当前后台正在计算..."); } }
public async Task <ActionResult> AddMemberAction(FormOutput data) { return(await WithExceptionHandlingAsync( async token => { await graphService.AddMember(data.SelectedTeam, data.UpnInput, isOwner: false); return new FormOutput() { SuccessMessage = "Done", }; } )); }
public async Task <ActionResult> UpdateTeamAction(FormOutput data) { return(await WithExceptionHandlingAsync( async token => { await graphService.UpdateTeam(data.SelectedTeam, token); return new FormOutput() { SuccessMessage = "Done", }; } )); }
private async Task <ActionResult> WithExceptionHandlingAsync(Func <string, Task <FormOutput> > f, [CallerMemberName] string callerName = "") { try { if (ConfigurationManager.AppSettings["ida:AppId"] == null || ConfigurationManager.AppSettings["ida:AppSecret"] == null) { return(RedirectToAction("Index", "Error", new { message = "You need to put your appid and appsecret in Web.config.secrets. See CSharp\\README.md for details." })); } // Get an access token. string accessToken = await AuthProvider.Instance.GetUserAccessTokenAsync(); graphService.accessToken = accessToken; FormOutput output = await f(accessToken); output.Action = callerName.Replace("Form", "Action"); output.UserUpn = await graphService.GetMyId(accessToken); // todo: cache ViewBag.DisplayName = await graphService.GetMyDisplayName(accessToken); System.Web.HttpContext.Current.Session.Add("displayName", ViewBag.DisplayName); ViewBag.LoggedUserMail = await graphService.GetMyMail(accessToken); System.Web.HttpContext.Current.Session.Add("LoggedUserMail", ViewBag.LoggedUserMail); if (output.ShowTeamDropdown) { output.Teams = (await graphService.GetMyTeams(accessToken)).ToArray(); } if (output.ShowGroupDropdown) { output.Groups = (await graphService.GetMyGroups(accessToken)).ToArray(); } //results.Items = await graphService.GetMyTeams(accessToken, Convert.ToString(Resource.Prop_ID)); return(View("Graph", output)); } catch (Exception e) { if (e.Message == Resource.Error_AuthChallengeNeeded) { return(new EmptyResult()); } return(RedirectToAction("Index", "Error", new { message = Resource.Error_Message + Request.RawUrl + ": " + e.Message })); } }
public async Task <ActionResult> PostMessageAction(FormOutput data) { return(await WithExceptionHandlingAsync( async token => { await graphService.PostMessage(token, data.SelectedTeam, data.SelectedChannel, data.MessageBodyInput); return new FormOutput() { SuccessMessage = "Done", }; } )); }
public async Task <ActionResult> GetMessagesAction(FormOutput data) { return(await WithExceptionHandlingAsync( async token => { var messages = (await graphService.GetChannelMessages(token, data.SelectedTeam, data.SelectedChannel)).ToArray(); return new FormOutput() { Messages = messages, ShowMessagesOutput = true }; } )); }
public async Task <ActionResult> GetChannelsAction(FormOutput data) { return(await WithExceptionHandlingAsync( async token => { var channels = (await graphService.NewGetChannels(token, data.SelectedTeam)).ToArray(); return new FormOutput() { Channels = channels, ShowChannelOutput = true }; } )); }
public async Task <ActionResult> GetAppsAction(FormOutput data) { return(await WithExceptionHandlingAsync( async token => { var apps = (await graphService.GetApps(token, data.SelectedTeam)).ToArray(); return new FormOutput() { Apps = apps, ShowAppOutput = true }; } )); }
public async Task <ActionResult> GetUsersAction() { var output = new FormOutput() { Users = (await _channelProvider.GetAllUsersAsync()).Select(u => new User() { displayName = u.FullName, id = u.UserId }).ToArray(), ShowUsersOutput = true }; return(View("Graph", output)); }
public async Task <ActionResult> GetTeamsAction(FormOutput data) { return(await WithExceptionHandlingAsync( async token => { var teams = (await graphService.GetMyTeams(token)).ToArray(); return new FormOutput() { Teams = teams, ShowTeamOutput = true }; } )); }