private HttpResponseMessage HandleInvokeMessages(Activity activity)
        {
            var activityValue = activity.Value.ToString();

            if (activity.Name == "task/fetch")
            {
                Models.BotFrameworkCardValue <string> action;
                try
                {
                    action = JsonConvert.DeserializeObject <Models.TaskModuleActionData <string> >(activityValue).Data;
                }
                catch (Exception)
                {
                    action = JsonConvert.DeserializeObject <Models.BotFrameworkCardValue <string> >(activityValue);
                }

                Models.TaskInfo     taskInfo     = GetTaskInfo(action.Data);
                Models.TaskEnvelope taskEnvelope = new Models.TaskEnvelope
                {
                    Task = new Models.Task()
                    {
                        Type     = Models.TaskType.Continue,
                        TaskInfo = taskInfo
                    }
                };
                return(Request.CreateResponse(HttpStatusCode.OK, taskEnvelope));
            }
            else if (activity.Name == "task/submit")
            {
                ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                Activity        reply     = activity.CreateReply("Received = " + activity.Value.ToString());
                connector.Conversations.ReplyToActivity(reply);
            }
            return(new HttpResponseMessage(HttpStatusCode.Accepted));
        }
        // Helper function for building the TaskInfo object based on the incoming request
        private static Models.TaskInfo GetTaskInfo(string actionInfo)
        {
            Models.TaskInfo taskInfo = new Models.TaskInfo();
            switch (actionInfo)
            {
            case TaskModuleIds.YouTube:
                taskInfo.Url = taskInfo.FallbackUrl = ApplicationSettings.BaseUrl + "/" + TaskModuleIds.YouTube;
                SetTaskInfo(taskInfo, TaskModuleUIConstants.YouTube);
                break;

            case TaskModuleIds.MsStream:
                taskInfo.Url = taskInfo.FallbackUrl = ApplicationSettings.BaseUrl + "/" + TaskModuleIds.MsStream;
                SetTaskInfo(taskInfo, TaskModuleUIConstants.MsStream);
                break;

            case TaskModuleIds.PowerApp:
                taskInfo.Url = taskInfo.FallbackUrl = ApplicationSettings.BaseUrl + "/" + TaskModuleIds.PowerApp;
                SetTaskInfo(taskInfo, TaskModuleUIConstants.PowerApp);
                break;

            case TaskModuleIds.CustomForm:
                taskInfo.Url = taskInfo.FallbackUrl = ApplicationSettings.BaseUrl + "/" + TaskModuleIds.CustomForm;
                SetTaskInfo(taskInfo, TaskModuleUIConstants.CustomForm);
                break;

            case TaskModuleIds.AdaptiveCard:
                taskInfo.Card = AdaptiveCardHelper.GetAdaptiveCard();
                SetTaskInfo(taskInfo, TaskModuleUIConstants.AdaptiveCard);
                break;

            default:
                break;
            }
            return(taskInfo);
        }
示例#3
0
 public static Common.Tasks.AbstractBaseTask CreateNewTask(short application_id, short task_id)
 {
     lock (lockObj)
     {
         Models.TaskInfo taskInfo = Common.GyomuDataAccess.SelectTaskInfo(application_id, task_id);
         return(CreateNewTask(taskInfo, Common.BaseConfigurator.GetInstance()));
     }
 }
示例#4
0
        public static List <Common.Tasks.AbstractBaseTask> ListupDelegatedTasks(short application_id, short task_id, Common.Configurator config)
        {
            List <Models.TaskData> taskDataList = Common.GyomuDataAccess.SelectTaskDataByApplicationIDTaskIDStatusUserList
                                                      (application_id, task_id, Common.Tasks.AbstractBaseTask.STATUS_DELEGATE,
                                                      new List <string>()
            {
                config.User.UserID
            });
            List <Common.Tasks.AbstractBaseTask> lstTask = new List <Common.Tasks.AbstractBaseTask>();

            Models.TaskInfo taskInfo = Common.GyomuDataAccess.SelectTaskInfo(application_id, task_id);

            foreach (Models.TaskData taskData in taskDataList)
            {
                Common.Tasks.AbstractBaseTask task = OpenTask(taskInfo.assembly_name, taskInfo.class_name, config ?? Common.BaseConfigurator.GetInstance(), taskData.id);
                lstTask.Add(task);
            }
            return(lstTask);
        }
 private static void SetTaskInfo(Models.TaskInfo taskInfo, UIConstants uIConstants)
 {
     taskInfo.Height = uIConstants.Height;
     taskInfo.Width  = uIConstants.Width;
     taskInfo.Title  = uIConstants.Title.ToString();
 }
示例#6
0
 internal static Common.Tasks.AbstractBaseTask CreateNewTask(Models.TaskInfo taskInfo, Common.Configurator config)
 {
     return(CreateInstance(taskInfo.assembly_name, taskInfo.class_name, config));
 }
示例#7
0
 private static void SetTaskInfo(Models.TaskInfo taskInfo, UIConstants uIConstants)
 {
     taskInfo.Height = uIConstants.Height;
     taskInfo.Width  = uIConstants.Width;
 }