private TableQueryResult BuildOnCallTableQueryResult(IList <OnCall> onCalls)
        {
            var result = new TableQueryResult
            {
                type    = "table",
                columns = new List <TableQueryColumn>
                {
                    new TableQueryColumn()
                    {
                        text = "Escalation Policy"
                    },
                    new TableQueryColumn()
                    {
                        text = "Username"
                    },
                    new TableQueryColumn()
                    {
                        text = "First Name"
                    },
                    new TableQueryColumn()
                    {
                        text = "Last Name"
                    }
                },
                rows = new List <ICollection <string> >()
            };

            var escalationPolicy = "";

            foreach (var onCall in onCalls.Reverse())
            {
                escalationPolicy = onCall.EscalationPolicyName;
                foreach (var userOnCall in onCall.Users.Reverse())
                {
                    result.rows.Add(new List <string>()
                    {
                        escalationPolicy, userOnCall.User.Username, userOnCall.User.FirstName,
                        userOnCall.User.LastName
                    });
                }
            }

            return(result);
        }
        private async Task <TableQueryResult> BuildTeamsTableQueryResult(QueryRequest request, CancellationToken cancellationToken)
        {
            var teams = await _teamRepository.GetAll(cancellationToken);

            var result = new TableQueryResult
            {
                type    = "table",
                columns = new List <TableQueryColumn>
                {
                    new TableQueryColumn()
                    {
                        text = "Id"
                    },
                    new TableQueryColumn()
                    {
                        text = "Name"
                    },
                    new TableQueryColumn()
                    {
                        text = "MemberCount"
                    },
                    new TableQueryColumn()
                    {
                        text = "Version"
                    },
                    new TableQueryColumn()
                    {
                        text = "IsDefaultTeam"
                    }
                },
                rows = new List <ICollection <string> >()
            };

            foreach (var team in teams)
            {
                result.rows.Add(new List <string>()
                {
                    team.Id, team.Name, team.MemberCount.ToString(), team.Version.ToString(),
                    team.IsDefaultTeam.ToString()
                });
            }

            return(result);
        }
        private TableQueryResult BuildUsersTableQueryResult(IEnumerable <VictorOpsBackendApi.Repositories.User> users)
        {
            var result = new TableQueryResult
            {
                type    = "table",
                columns = new List <TableQueryColumn>
                {
                    new TableQueryColumn()
                    {
                        text = "Username"
                    },
                    new TableQueryColumn()
                    {
                        text = "FirstName"
                    },
                    new TableQueryColumn()
                    {
                        text = "LastName"
                    },
                    new TableQueryColumn()
                    {
                        text = "Email"
                    },
                    new TableQueryColumn()
                    {
                        text = "CreatedAt"
                    }
                },
                rows = new List <ICollection <string> >()
            };

            foreach (var user in users)
            {
                result.rows.Add(new List <string>()
                {
                    user.Username, user.FirstName, user.LastName, user.Email,
                    user.CreatedAt.ToString()
                });
            }

            return(result);
        }