示例#1
0
        // ReSharper disable PossibleMultipleEnumeration
        public async Task RunAsync(IRestContext context)
        {
            ISystemApi systemApi = context.Factory.CreateSystemApi();

            IEnumerable <ScriptResponse> scripts = await systemApi.GetScriptsAsync(true);

            Console.WriteLine("GetScriptsAsync(): {0}", scripts.Select(x => x.script_id).ToStringList());

            if (scripts.Any(x => x.script_id == ScriptId))
            {
                await DeleteDummyScript(systemApi);
            }

            const string   scriptText = @"return Number(event.n1) + Number(event.n2);";
            ScriptResponse response   = await systemApi.WriteScriptAsync(ScriptId, scriptText);

            Console.WriteLine("WriteScriptAsync(): id={0}", response.script_id);

            Dictionary <string, object> p = new Dictionary <string, object> {
                { "n1", 3 }, { "n2", 5 }
            };
            string output = await systemApi.RunScriptAsync(ScriptId, p);

            Console.WriteLine("RunScriptAsync(): {0}", context.ContentSerializer.Serialize(output));

            await DeleteDummyScript(systemApi);
        }
示例#2
0
        public IScriptReponse Execute(AbstractConnection connection, string script, int timeOut = 0)
        {
            var response = new ScriptResponse();
            var server   = new Server();
            var logger   = connection.Logger;

            try {
                logger.Debug("Connecting to {0} on {1}.", connection.Database, connection.Server);
                server.Connect(connection.GetConnectionString());

                var results = server.Execute(script);

                foreach (XmlaResult result in results)
                {
                    foreach (XmlaMessage message in result.Messages)
                    {
                        response.Messages.Add(message.Description);
                    }
                }
                response.Success = response.Messages.Count == 0;
            } catch (Exception e) {
                logger.Debug(e.Message + (e.InnerException != null ? " " + e.InnerException.Message : string.Empty));
                response.Messages.Add(e.Message);
            } finally {
                if (server.Connected)
                {
                    logger.Debug("Disconnecting from {0} on {1}.", connection.Database, connection.Server);
                    server.Disconnect();
                }
            }
            return(response);
        }
示例#3
0
        public ResponseModel <ScriptResponse> UpdateScript(AddScriptRequest objupdateRequest)
        {
            try
            {
                ScriptProvider       objScriptProvider = new ScriptProvider(_context);
                Script               updatedScript     = objScriptProvider.UpdateScript(objupdateRequest.ScriptDetails);
                List <ScriptContent> scriptContents    = objScriptProvider.UpdateScriptContents(objupdateRequest.ScriptContents, objupdateRequest.ScriptDetails.ScriptId);
                ScriptResponse       objScriptResponse = new ScriptResponse
                {
                    Script         = updatedScript,
                    ScriptContents = scriptContents
                };


                ResponseModel <ScriptResponse> objResponseModel = new ResponseModel <ScriptResponse>
                {
                    Message        = "Successfully Updated",
                    StatusCode     = 1,
                    ResponseObject = objScriptResponse
                };
                return(objResponseModel);
            }
            catch (Exception ex)
            {
                ResponseModel <ScriptResponse> objResponseModel = new ResponseModel <ScriptResponse>
                {
                    Message    = ex.Message,
                    StatusCode = 0
                };
                return(objResponseModel);
            }
        }
示例#4
0
        private ScriptResponse RunScript(ScriptFile Script)
        {
            var resp = new ScriptResponse
            {
                ScriptFile = Script,
                Successful = true,
                Sql        = File.ReadAllText(Script.FilePath)
            };
            var sw = new Stopwatch();

            sw.Start();
            try
            {
                using (var conn = new SqlConnection(this.connString))
                {
                    conn.Open();
                    resp.ExecutedAt = DateTime.UtcNow;
                    conn.Execute(resp.Sql);
                    sw.Stop();
                }
            }
            catch (Exception er)
            {
                sw.Stop();
                resp.Successful   = false;
                resp.ErrorMessage = er.Message;
            }
            resp.Duration = sw.Elapsed.TotalSeconds;
            return(resp);
        }
        public IScriptReponse Execute(AbstractConnection connection, string script, int timeOut = 0) {
            var response = new ScriptResponse();
            var server = new Server();
            var logger = connection.Logger;

            try {
                logger.Debug("Connecting to {0} on {1}.", connection.Database, connection.Server);
                server.Connect(connection.GetConnectionString());

                var results = server.Execute(script);

                foreach (XmlaResult result in results) {
                    foreach (XmlaMessage message in result.Messages) {
                        response.Messages.Add(message.Description);
                    }
                }
                response.Success = response.Messages.Count == 0;
            } catch (Exception e) {
                logger.Debug(e.Message + (e.InnerException != null ? " " + e.InnerException.Message : string.Empty));
                response.Messages.Add(e.Message);
            } finally {
                if (server.Connected) {
                    logger.Debug("Disconnecting from {0} on {1}.", connection.Database, connection.Server);
                    server.Disconnect();
                }
            }
            return response;
        }
示例#6
0
        private void webView_NavigationFailed(object sender, WebViewNavigationFailedEventArgs e)
        {
            busy = false;
            dialogLoadComplete   = false;
            lastUri              = null;
            webViewFB.Visibility = Windows.UI.Xaml.Visibility.Collapsed;

            ScriptResponse sr = ErrorHandler.setupErrorResponse(ErrorsEnum.E000204);
            string         js = string.Format("javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=false;e.error='{0}';e.raw='';e.data={{}};document.dispatchEvent(e);", sr.Message);

            InjectJS(js);
        }
示例#7
0
        private async void GetUserData(Dictionary <string, string> param)
        {
            if (busy)
            {
                sendBusyEvent();
            }

            busy = true;

            try
            {
                string  path       = "/me";
                dynamic parameters = new ExpandoObject();
                //if (param.Keys.Contains<string>("name")) { parameters.name = param["name"]; }
                //if (param.Keys.Contains<string>("caption")) { parameters.caption = param["caption"]; }
                //if (param.Keys.Contains<string>("link")) { parameters.link = param["link"]; }
                //if (param.Keys.Contains<string>("picture")) { parameters.picture = param["picture"]; }
                if (param.Keys.Contains <string>("path"))
                {
                    path = param["path"];
                }

                Facebook.JsonObject result = await _fb.GetTaskAsync(path, parameters);

                string js = "javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=true;e.raw='" + result.ToString() + "';e.data={};try{e.data=JSON.parse(e.raw);}catch(ex){}e.error='';document.dispatchEvent(e);";
                InjectJS(js);
            }
            catch (FacebookApiException ex)
            {
                // handle error message
                if (ex.ErrorCode == 2500)
                {
                    // user not logged in.
                    ScriptResponse sr = ErrorHandler.setupErrorResponse(ErrorsEnum.E000203);
                    //string js = "(function(){ AppMobi.facebook.internal.handleResponse('request.response',false," + sr.ToJson() + ")})();";
                    string js = string.Format("javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=false;e.error='{0}';e.raw='';e.data={{}};document.dispatchEvent(e);", sr.Message);
                    InjectJS(js);
                }
                else
                {
                    // user not logged in.
                    ScriptResponse sr = ErrorHandler.setupErrorResponse(ErrorsEnum.E000202);
                    //string js = "(function(){ AppMobi.facebook.internal.handleResponse('request.response',false," + sr.ToJson() + ")})();";
                    string js = string.Format("javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=false;e.error='{0}';e.raw='';e.data={{}};document.dispatchEvent(e);", sr.Message);
                    InjectJS(js);
                }
            }
            finally
            { busy = false; }
        }
示例#8
0
        public ScriptResponse Execute(ContextData context, Entity document, Dictionary <string, object> parameters)
        {
            var fields = $"Code:{document.PersonCode}";

            var response = new ScriptResponse();

            response.Actions = new Dictionary <string, object>();

            var urlAction = new Dictionary <string, string>();

            urlAction.Add("Location", $"../../Entity/Create/?EntityTypeCode=Person&MisEntityKind=Agent&View=Default&Attributes={HttpUtility.UrlEncode(HttpUtility.UrlEncode(fields))}");
            urlAction.Add("Target", "CURRENT");

            response.Actions.Add("URL", urlAction);

            return(response);
        }
        public ScriptResponse Execute(ContextData context, Entity document, Dictionary <string, object> parameters)
        {
            var externalSystem = context.ExternalSystems.FirstOrDefault().Value;

            ApiClient api = new ApiClient(context.Api.Endpoint, context.Tenant);

            api.Authenticate(externalSystem.Parameters["omniaEmail"].ToString(), externalSystem.Parameters["omniaPassword"].ToString());

            var documentToCopy = api.ProcessInteraction.GetByID("PurchasesManagement", "PurchaseOrder", Convert.ToInt64(document["ID"]));
            var fields         = $"CompanyCode:{documentToCopy.CompanyCode}";

            var response = new ScriptResponse();

            response.Actions = new Dictionary <string, object>();

            var urlAction = new Dictionary <string, string>();

            urlAction.Add("Location", $"../../ProcessInteraction/Create/?ProcessTypeCode=PurchasesManagement&InteractionTypeCode=PurchaseOrder&Attributes={HttpUtility.UrlEncode(HttpUtility.UrlEncode(fields))}");
            urlAction.Add("Target", "CURRENT");

            response.Actions.Add("URL", urlAction);

            return(response);
        }
        private async void PostUserData(Dictionary <string, string> param)
        {
            if (busy)
            {
                sendBusyEvent();
            }

            busy = true;

            try
            {
                string path = "/me/feed";

                dynamic parameters = new ExpandoObject();
                if (param.Keys.Contains <string>("name"))
                {
                    parameters.name = param["name"];
                }
                if (param.Keys.Contains <string>("caption"))
                {
                    parameters.caption = param["caption"];
                }
                if (param.Keys.Contains <string>("link"))
                {
                    parameters.link = param["link"];
                }
                if (param.Keys.Contains <string>("picture"))
                {
                    parameters.picture = param["picture"];
                }
                if (param.Keys.Contains <string>("message"))
                {
                    parameters.message = param["message"];
                }
                if (param.Keys.Contains <string>("path"))
                {
                    path = param["path"];
                }

                dynamic result = await _fb.PostTaskAsync(path, parameters);

                lastMessageId = result.id;

                ScriptResponse sr = new ScriptResponse {
                    Message = "Facebook Post Successful", ResponseCode = ""
                };
                string js = "(function(){ AppMobi.facebook.internal.handleResponse('dialog.complete',true," + sr.ToJson() + ")})();";
                InjectJS(js);
            }
            catch (FacebookApiException ex)
            {
                // handle error message
                if (ex.ErrorCode == 2500)
                {
                    // user not logged in.
                    ScriptResponse sr = ErrorHandler.setupErrorResponse(ErrorsEnum.E000201);
                    string         js = string.Format("javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=false;e.error='{0}';e.raw='';e.data={{}};document.dispatchEvent(e);", sr.Message);
                    InjectJS(js);
                }
                else
                {
                    ScriptResponse sr = ErrorHandler.setupErrorResponse(ErrorsEnum.E000200);
                    //ScriptResponse sr = new ScriptResponse { Message = "Facebook Post Failed", ResponseCode = "" };
                    string js = string.Format("javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=false;e.error='{0}';e.raw='';e.data={{}};document.dispatchEvent(e);", sr.Message);
                    InjectJS(js);
                }
            }
            finally
            { busy = false; }
        }
 //---------------------------------------------------------------------------------------------
 // アプリ起動時に呼ばれる関メソッド(初期化)
 //---------------------------------------------------------------------------------------------
 void Start()
 {
     clickedGachaCube = null;
     scriptResponse   = new ScriptResponse();
 }