/// <summary>
        /// Gets resource name.
        /// This method will be a little faster than <see cref="Enum.ToString()"/>
        /// </summary>
        /// <param name="resource">Resouce of Webex Teams.</param>
        /// <returns>Name of the resource.</returns>
        public static string GetResourceName(TeamsResource resource)
        {
            string name;

            // This will be a tiny little bit faster than refrection base resource.ToString().
            switch (resource)
            {
            case TeamsResource.Unknown:
                name = "Unknown";
                break;

            case TeamsResource.Message:
                name = "Message";
                break;

            case TeamsResource.Space:
                name = "Space";
                break;

            case TeamsResource.SpaceMembership:
                name = "SpaceMembership";
                break;

            case TeamsResource.Team:
                name = "Team";
                break;

            case TeamsResource.TeamMembership:
                name = "TeamMembership";
                break;

            case TeamsResource.Person:
                name = "Person";
                break;

            case TeamsResource.Webhook:
                name = "Webhook";
                break;

            case TeamsResource.Event:
                name = "Event";
                break;

            case TeamsResource.License:
                name = "License";
                break;

            case TeamsResource.Organization:
                name = "Organization";
                break;

            case TeamsResource.Role:
                name = "Role";
                break;

            case TeamsResource.ResourceGroup:
                name = "ResourceGroup";
                break;

            case TeamsResource.ResourceGroupMembership:
                name = "ResourceGroupMembership";
                break;

            case TeamsResource.AccessToken:
                name = "AccessToken";
                break;

            case TeamsResource.GuestUser:
                name = "GuestUser";
                break;

            case TeamsResource.FileData:
                name = "FileData";
                break;

            case TeamsResource.FileInfo:
                name = "FileInfo";
                break;

            default:
                name = resource.ToString();
                break;
            }

            return(name);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Parse the request into <see cref="TeamsResourceOperation"/>.
        /// </summary>
        /// <returns><see cref="TeamsResourceOperation"/> of the result.</returns>
        public TeamsResourceOperation ParseResourceOperation()
        {
            TeamsResource  resource  = TeamsResource.Unknown;
            TeamsOperation operation = TeamsOperation.Unknown;

            if (this.RequestInfo != null)
            {
                var method = this.RequestInfo.HttpMethod;

                if (method != null)
                {
                    if (method == HttpMethod.Post)
                    {
                        operation = TeamsOperation.Create;
                    }
                    else if (method == HttpMethod.Get)
                    {
                        operation = TeamsOperation.Get;
                    }
                    else if (method == HttpMethod.Put)
                    {
                        operation = TeamsOperation.Update;
                    }
                    else if (method == HttpMethod.Delete)
                    {
                        operation = TeamsOperation.Delete;
                    }
                    else if (method == HttpMethod.Head)
                    {
                        operation = TeamsOperation.GetHeader;
                    }
                }

                string path = this.RequestInfo.Uri?.AbsolutePath;

                if (!String.IsNullOrEmpty(path))
                {
                    foreach (var item in PATH_AND_RESOURCES)
                    {
                        if (path.StartsWith(item.Path))
                        {
                            resource = item.Resouce;

                            if (resource == TeamsResource.AccessToken && operation == TeamsOperation.Create)
                            {
                                operation = TeamsOperation.Get;
                            }
                            else if (operation == TeamsOperation.Get && path.EndsWith(item.Path))
                            {
                                operation = TeamsOperation.List;
                            }

                            break;
                        }
                    }
                }

                if (resource == TeamsResource.FileData && operation == TeamsOperation.GetHeader)
                {
                    operation = TeamsOperation.Get;
                    resource  = TeamsResource.FileInfo;
                }
            }

            return(new TeamsResourceOperation(resource, operation));
        }
 /// <summary>
 /// Creates TeamsResourceOperation.
 /// </summary>
 /// <param name="resource">Resouce of Webex Teams.</param>
 /// <param name="operation">Operation of Webex Teams.</param>
 internal TeamsResourceOperation(TeamsResource resource, TeamsOperation operation)
 {
     this.Resource  = resource;
     this.Operation = operation;
 }