Пример #1
0
        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];
                    }));
                }
            }
        }
Пример #2
0
 private void bgwCaculate_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (e.Result != null)
     {
         FormOutput.AppendLog(e.Result.ToString());
     }
 }
Пример #3
0
        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",
                };
            }
                       ));
        }
Пример #4
0
        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.");
            }
        }
Пример #5
0
        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);
            }
        }
Пример #7
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;
            }
        }
Пример #8
0
        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);
                    }));
                }
            }
        }
Пример #10
0
        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);
            }
        }
Пример #12
0
        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();
        }
Пример #13
0
        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;
 }
Пример #15
0
        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.");
            }
        }
Пример #16
0
        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
        }
Пример #18
0
 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);
     }
 }
Пример #19
0
        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));
        }
Пример #20
0
        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("当前后台正在计算...");
     }
 }
Пример #22
0
 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",
         };
     }
                ));
 }
Пример #23
0
 public async Task <ActionResult> UpdateTeamAction(FormOutput data)
 {
     return(await WithExceptionHandlingAsync(
                async token =>
     {
         await graphService.UpdateTeam(data.SelectedTeam, token);
         return new FormOutput()
         {
             SuccessMessage = "Done",
         };
     }
                ));
 }
Пример #24
0
        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",
         };
     }
                ));
 }
Пример #26
0
 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
         };
     }
                ));
 }
Пример #28
0
 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
         };
     }
                ));
 }
Пример #29
0
        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));
        }
Пример #30
0
 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
         };
     }
                ));
 }