public override ResponseContext Post(Dictionary <string, object> param)
        {
            RequestContext request        = (RequestContext)param["request"];
            MtcgClient     client         = (MtcgClient)param["client"];
            PackageTypeDto packageTypeDto = null;

            if (request.Payload.Length > 0)
            {
                if (!request.Headers.ContainsKey("Content-Type") ||
                    request.Headers["Content-Type"] != "application/json")
                {
                    return(new ResponseContext(request,
                                               new KeyValuePair <StatusCode, object>(StatusCode.UnsupportedMediaType, "")));
                }

                packageTypeDto = JsonSerializer.Deserialize <PackageTypeDto>(request.Payload);
            }

            PackageType packageType = packageTypeDto?.ToObject() ?? PackageType.Basic;

            return(new ResponseContext(request, _userController.AcquirePackage(ref client, packageType)));
        }