/// <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); }
/// <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; }