public async Task <HttpResponseMessage> PlayQuakeSound([FromUri] string fileName, [FromUri] SoundVariation variation = SoundVariation.Male)
        {
            var model = new QuakeSoundModel(fileName, "Quake", StaticFileType.QuakeSound, variation);

            var result = await Get <QuakeSoundModel>(model, ActionType.Play);

            result.Content.Headers.ContentType = new MediaTypeHeaderValue("audio/mp3");

            return(result);
        }
        public async Task <HttpResponseMessage> DownloadQuakeSound([FromQuery] string fileName, [FromQuery] SoundVariation variation = SoundVariation.Male)
        {
            var model = new QuakeSoundModel(fileName, "QuakeSounds", "wav", variation);

            var result = await Get <QuakeSoundModel>(model);

            if (result.StatusCode != HttpStatusCode.OK)
            {
                return(result);
            }

            result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = model.FileName + "." + model.Extension
            };
            result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

            return(result);
        }
        public async Task <HttpResponseMessage> PlayQuakeSound([FromQuery] string fileName, [FromQuery] SoundVariation variation = SoundVariation.Male)
        {
            var model = new QuakeSoundModel(fileName, "QuakeSounds", "wav", variation);

            return(await Get <QuakeSoundModel>(model));
        }