Ejemplo n.º 1
0
        private bool ReadGroupStatements(ReadParams p, bool isDefault)
        {
            var body = new GroupBody {
                isDefault = isDefault
            };
            var code = p.Code;

            _groups.Add(body);

            while (!code.EndOfFile && !p.Code.PeekExact("}"))
            {
                var resetPos = code.Position;
                if (code.ReadExactWholeWord("before") || code.ReadExactWholeWord("after"))
                {
                    if (code.ReadExactWholeWord("group"))
                    {
                        code.Position = resetPos;
                        return(true);
                    }
                    code.Position = resetPos;
                }
                else if (code.ReadExactWholeWord("for"))
                {
                    if (code.ReadExactWholeWord("each"))
                    {
                        code.Position = resetPos;
                        return(true);
                    }
                    code.Position = resetPos;
                }
                else if (code.ReadExactWholeWord("default"))
                {
                    code.Position = resetPos;
                    return(true);
                }

                var stmt = Statement.Read(p);
                if (stmt == null)
                {
                    break;
                }
                body.stmts.Add(stmt);
            }

            return(true);
        }
        /// <summary>
        /// Creates a new group where teams will be assigned to.
        /// </summary>
        /// <returns>Group ID</returns>
        public async Task <Group> CreateGroupAsync(TeamResource resource)
        {
            var groupUri = new Uri(baseUri, $"{apiVersion}/groups");

            var requestContent = new GroupBody
            {
                Description = resource.Description,
                DisplayName = resource.DisplayName,
                GroupTypes  = new List <string> {
                    GroupTypes.Unified.ToString()
                },
                MailEnabled     = true,
                MailNickname    = resource.MailNickname ?? $"{resource.DisplayName.ToLowerInvariant().Replace(' ', '-')}-{Guid.NewGuid()}",
                SecurityEnabled = false
            };

            logger.LogInformation($"Creating group using {groupUri} and {JsonConvert.SerializeObject(requestContent)}");
            var response = await httpClient.PostContentAsync(groupUri.AbsoluteUri, requestContent);

            var responseString = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <Group>(responseString));
        }