void Awake()
 {
     w_schedule = GameObject.FindGameObjectWithTag("Schedule");
     Debug.Log(w_schedule.name);
     s_schedule        = w_schedule.GetComponent <ScheduleHandler>();
     s_activityContent = this.GetComponent <ActivityContent>();
 }
        public async Task <StartActivityResponse> StartActivity(StartActivityRequest activityRequest)
        {
            var result = new StartActivityResponse();

            try
            {
                _bamActivityLogger.Debug($"Starting Stage Activity - {JsonConvert.SerializeObject(activityRequest)}");
                activityRequest.Validate();


                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.BusinessProcess, activityRequest.BusinessProcess);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.BusinessTransaction, activityRequest.BusinessTransaction);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.CurrentStage, activityRequest.CurrentStage);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.MainActivityId, activityRequest.MainActivityId.ToString());
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.PreviousStage, activityRequest.PreviousStage);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.ArchiveMessage, Convert.ToString(activityRequest.IsArchiveEnabled));
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.BatchId, activityRequest.BatchId);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.ResourceId, activityRequest.ResourceId);

                if (activityRequest.MessageHeader == null)
                {
                    activityRequest.MessageHeader = "{\"Content-Type\":\"application/json\"}";
                }

                if (activityRequest.MessageBody == null)
                {
                    activityRequest.MessageBody = "{}";
                }

                if (string.IsNullOrEmpty(activityRequest.PreviousStage))
                {
                    activityRequest.PreviousStage = ".";
                }

                var header = JsonConvert.DeserializeObject <Dictionary <string, string> >(activityRequest.MessageHeader);
                header["Content-Type"] = "application/json";

                var activityContent = new ActivityContent
                {
                    MessageBody   = activityRequest.MessageBody,
                    MessageHeader = activityRequest.MessageHeader
                };

                var uri      = $"{_url}/api/{Constants.Operations.StartActivity}";
                var data     = new StringContent(JsonConvert.SerializeObject(activityContent), Encoding.UTF8, "application/json");
                var response = await _client.PostAsync(uri, data);

                if (response.IsSuccessStatusCode)
                {
                    result = JsonConvert.DeserializeObject <StartActivityResponse>(response.Content.ReadAsStringAsync().Result);
                }
            }
            catch (Exception ex)
            {
                _bamActivityLogger.Error(ex.Message);
            }

            return(result);
        }
        public async Task <bool> ArchiveActivity(ArchiveActivityRequest activityRequest)
        {
            try
            {
                _bamActivityLogger.Debug($"Archiving Stage Activity - {JsonConvert.SerializeObject(activityRequest)}");
                activityRequest.Validate();

                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.BusinessProcess, activityRequest.BusinessProcess);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.BusinessTransaction, activityRequest.BusinessTransaction);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.CurrentStage, activityRequest.CurrentStage);
                _client.DefaultRequestHeaders.AddOrReplace(Constants.Headers.StageActivityId, activityRequest.StageActivityId.ToString());

                if (activityRequest.MessageHeader == null)
                {
                    activityRequest.MessageHeader = "{\"Content-Type\":\"application/json\"}";
                }
                if (activityRequest.MessageBody == null)
                {
                    activityRequest.MessageBody = "{}";
                }

                var header = JsonConvert.DeserializeObject <Dictionary <string, string> >(activityRequest.MessageHeader);
                header["Content-Type"] = "application/json";

                var activityContent = new ActivityContent
                {
                    MessageBody   = activityRequest.MessageBody,
                    MessageHeader = activityRequest.MessageHeader
                };

                var uri      = $"{_url}/api/{Constants.Operations.ArchiveActivity}";
                var data     = new StringContent(JsonConvert.SerializeObject(activityContent), Encoding.UTF8, "application/json");
                var response = await _client.PostAsync(uri, data);

                return(response.IsSuccessStatusCode);
            }
            catch (Exception ex)
            {
                _bamActivityLogger.Error(ex.Message);
            }
            return(false);
        }
    protected override void DrawSectionBody()
    {
        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Text: ", GSStyles.NormalLabelText);
            _text = GUILayout.TextField(_text, GSStyles.TextField);
        });

        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Image url: ", GSStyles.NormalLabelText);
        });
        DemoGuiUtils.DrawRow(() =>
        {
            _imageUrl = GUILayout.TextField(_imageUrl, GSStyles.TextField);
        });

        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Video url: ", GSStyles.NormalLabelText);
        });
        DemoGuiUtils.DrawRow(() =>
        {
            _videoUrl = GUILayout.TextField(_videoUrl, GSStyles.TextField);
        });

        DemoGuiUtils.DrawRow(() =>
        {
            _useCustomImage = GUILayout.Toggle(_useCustomImage, "", GSStyles.Toggle);
            GUILayout.Label("Send Custom Image", GSStyles.NormalLabelText, GUILayout.Width(Screen.width * 0.25f));
        });

        DemoGuiUtils.DrawRow(() =>
        {
            _useCustomVideo = GUILayout.Toggle(_useCustomVideo, "", GSStyles.Toggle);
            GUILayout.Label("Send Custom Video", GSStyles.NormalLabelText, GUILayout.Width(Screen.width * 0.25f));
        });


        DemoGuiUtils.DrawRow(() => GUILayout.Label("Button", GSStyles.NormalLabelText));
        DemoGuiUtils.DrawRow(() =>
        {
            GUILayout.Label("Title: ", GSStyles.NormalLabelText);
            _title = GUILayout.TextField(_title, GSStyles.TextField);
        });
        GUILayout.Label("Action: " + (_action ?? "Default"), GSStyles.NormalLabelText);
        DemoGuiUtils.DrawRow(() =>
        {
            if (GUILayout.Button("Default", GSStyles.ShortButton))
            {
                _action = null;
            }

            var actions = new[] { GetSocialActionType.Custom, GetSocialActionType.OpenProfile, GetSocialActionType.OpenActivity, GetSocialActionType.OpenInvites, GetSocialActionType.OpenUrl, GetSocialActionType.AddFriend };
            actions.ToList().ForEach(action =>
            {
                if (GUILayout.Button(action, GSStyles.ShortButton))
                {
                    _action = action;
                }
            });
        });

        DemoGuiUtils.DynamicRowFor(_actionData, "Action Data");
        DemoGuiUtils.DynamicRowFor(_properties, "Properties");

        if (GUILayout.Button("Post", GSStyles.Button))
        {
            var content = new ActivityContent();
            content.Text = _text;

            if (_action != null && _title != null && _title.Length != 0)
            {
                var action = GetSocialAction.Create(_action, _actionData.ToDictionary(data => data.Key, data => data.Val));
                content.Button = ActivityButton.Create(_title, action);
            }
            if (_imageUrl.Length > 0)
            {
                content.AddMediaAttachment(MediaAttachment.WithImageUrl(_imageUrl));
            }
            if (_videoUrl.Length > 0)
            {
                content.AddMediaAttachment(MediaAttachment.WithVideoUrl(_videoUrl));
            }
            if (_useCustomImage)
            {
                content.AddMediaAttachment(MediaAttachment.WithImage(Resources.Load <Texture2D>("activityImage")));
            }
            if (_useCustomVideo)
            {
                content.AddMediaAttachment(MediaAttachment.WithVideo(DemoUtils.LoadSampleVideoBytes()));
            }
            content.AddProperties(_properties.ToDictionary(data => data.Key, data => data.Val));

            if (Activity == null)
            {
                Communities.PostActivity(content, Target, posted =>
                {
                    _console.LogD("Posted: " + posted);
                }, error =>
                {
                    _console.LogE("Failed to post: " + error);
                });
            }
            else
            {
                Communities.UpdateActivity(Activity, content, posted =>
                {
                    _console.LogD("Updated: " + posted);
                }, error =>
                {
                    _console.LogE("Failed to update: " + error);
                });
            }
        }
    }
예제 #5
0
 void Awake()
 {
     s_activityContent = this.GetComponent <ActivityContent>();
 }