Exemplo n.º 1
0
        internal static IOperation AsOperation <T>(this OperationInfo <T> operation, IApiDocumentation apiDocumentation, EntityId id = null)
        {
            var methodId = id ?? operation.CreateId(apiDocumentation.Context.BaseUriSelector.SelectBaseUri(new EntityId(new Uri("/", UriKind.Relative))));

            if (operation.IsWriteControllerOperation())
            {
                switch (operation.UnderlyingMethod.Name)
                {
                case "Delete":
                    return(apiDocumentation.Context.Create <IDeleteResourceOperation>(methodId));

                case "Update":
                    return(apiDocumentation.Context.Create <IReplaceResourceOperation>(methodId));

                case "Create":
                    return(apiDocumentation.Context.Create <ICreateResourceOperation>(methodId));
                }
            }

            return(apiDocumentation.Context.Create <IOperation>(methodId));
        }