OdessaGUIProject.Workers.FacebookShareWorker.facebookClient_PostCompleted C# (CSharp) Method

facebookClient_PostCompleted() private method

private facebookClient_PostCompleted ( object sender, Facebook.FacebookApiEventArgs e ) : void
sender object
e Facebook.FacebookApiEventArgs
return void
        private void facebookClient_PostCompleted(object sender, FacebookApiEventArgs e)
        {
            Logger.Info("Called");

            if (e.Cancelled)
            {
                Logger.Info("Cancelled");
                PublishWorkerResult = PublishWorkerResults.Cancelled;
            }
            else if (e.Error != null)
            {
                Logger.Error("Error uploading: " + e.Error);
                ErrorMessage = e.Error.ToString();
                PublishWorkerResult = PublishWorkerResults.UnableToShare;
            }
            else
            {
                /* format:
                {
                    "id": "xxxxx19208xxxxx"
                }
                 */
                string jsonResponse = e.GetResultData().ToString();

                Logger.Info("Response from Facebook: " + jsonResponse);

                var structuredResponse = (FacebookJSONResponse)facebookClient.DeserializeJson(jsonResponse, typeof(FacebookJSONResponse));

                /* This works, but it requires extra assemblies
                var ser = new DataContractJsonSerializer(typeof(FacebookJSONResponse));
                var stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonResponse));
                var structuredResponse = (FacebookJSONResponse)ser.ReadObject(stream);
                stream.Close();
                 */

                Logger.Info("FacebookActivityId = " + structuredResponse.id);

                HighlightObject.FacebookActivityId = structuredResponse.id;

                PublishWorkerResult = PublishWorkerResults.Success;
            }

            uploadCompleted = true;
        }