Exemplo n.º 1
0
        internal static void Log(string message, int logType = 500, DateTime?dateTime = null, Guid?requestGuid = null, bool isDebug = false)
        {
            if (!requestGuid.HasValue)
            {
                requestGuid = (Guid)(Durados.Workflow.JavaScript.GetCacheInCurrentRequest(Durados.Workflow.JavaScript.GuidKey) ?? Guid.NewGuid());
            }
            Durados.Database database = Durados.Workflow.Engine.GetCurrentDatabase();
            if (database == null)
            {
                return;
            }
            database.Logger.Log("", "", Durados.Database.LogMessage, "", "", logType, message, dateTime ?? DateTime.Now, requestGuid);

            if (!isDebug && !IsDebug())
            {
                return;
            }

            CheckLimit();

            database.Logger.Log("", "", "", "", "", logType, message, dateTime ?? DateTime.Now, requestGuid);
            //using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(Durados.Workflow.JavaScript.GetCacheInCurrentRequest(Durados.Workflow.JavaScript.ConnectionStringKey).ToString()))
            //{
            //    connection.Open();
            //    string sql = "insert into durados_log ([Time], [LogType], [FreeText], [Guid]) values(@Time,@LogType,@FreeText,@Guid)";
            //    using (System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand(sql, connection))
            //    {
            //        command.Parameters.Add(new System.Data.SqlClient.SqlParameter("Time", DateTime.Now));
            //        command.Parameters.Add(new System.Data.SqlClient.SqlParameter("LogType", logType));
            //        command.Parameters.Add(new System.Data.SqlClient.SqlParameter("FreeText", message));
            //        command.Parameters.Add(new System.Data.SqlClient.SqlParameter("Guid", Durados.Workflow.JavaScript.GetCacheInCurrentRequest(Durados.Workflow.JavaScript.GuidKey)));
            //        command.ExecuteNonQuery();
            //    }
            //}
        }
Exemplo n.º 2
0
        private void Log(int logType, string freeText, Exception exception = null, int?requestTiem = null)
        {
            try
            {
                Durados.Database database = Durados.Workflow.Engine.GetCurrentDatabase();

                if (database != null)
                {
                    database.Logger.Log(request.RequestUri.AbsoluteUri, request.Method, "Durados.Workflow", exception == null ? string.Empty : exception.Message, exception == null ? string.Empty : exception.StackTrace, logType, freeText, DateTime.Now, requestTiem);
                }
            }
            catch { }
        }
Exemplo n.º 3
0
 public OpenFaasCloud(Durados.Database database)
     : base(database)
 {
 }
Exemplo n.º 4
0
 public GoogleCloud(Durados.Database database)
     : base(database)
 {
 }
Exemplo n.º 5
0
        public void send(string data)
        {
            Log(3, "Started");

            try
            {
                if (Durados.Workflow.JavaScript.IsCrud(request))
                {
                    try
                    {
                        string result = Durados.Workflow.JavaScript.PerformCrud(request, data);
                        status       = 200;
                        responseText = result;
                    }
                    catch (Durados.Data.DataHandlerException e)
                    {
                        responseText = e.Message;
                        status       = e.Status;
                    }

                    return;
                }
            }
            catch (Exception crudException)
            {
                if (crudException.InnerException is StackOverflowException)
                {
                    responseText = crudException.Message;
                    status       = (int)HttpStatusCode.BadRequest;
                    return;
                }
            }

            try
            {
                if (Durados.Workflow.JavaScript.IsDebug() || request.RequestUri.AbsoluteUri.Contains("localhost") || request.RequestUri.AbsoluteUri.ToLower().Contains("backand"))
                {
                    string appName = (Durados.Workflow.JavaScript.GetCacheInCurrentRequest(Durados.Database.AppName) ?? string.Empty).ToString();
                    if (!string.IsNullOrEmpty(appName))
                    {
                        if (request.Headers["AppName"] == null && request.Headers["appName"] == null && request.Headers["appname"] == null)
                        {
                            request.Headers.Add("AppName", appName);
                        }
                    }
                    if (request.Headers["Authorization"] == null && request.Headers["authorization"] == null)
                    {
                        Durados.Database database = Durados.Workflow.Engine.GetCurrentDatabase();
                        if (database != null)
                        {
                            request.Headers.Add("Authorization", database.GetAuthorization());
                        }
                    }
                }
            }
            catch
            {
            }

            if (!string.IsNullOrEmpty(data) && data != "null")
            {
                if (request.RequestUri.AbsolutePath.Contains("1/file"))
                {
                    ((HttpWebRequest)request).AllowWriteStreamBuffering = false;
                    if (System.Web.HttpContext.Current.Items["file_stream"] != null)
                    {
                        data = data.Replace("file_stream", System.Web.HttpContext.Current.Items["file_stream"].ToString());
                    }
                }

                byte[] bytes;
                if (request.ContentType != null && request.ContentType.ToLower().Contains("multipart/form-data"))
                {
                    if (!request.ContentType.Contains("boundary="))
                    {
                        request.ContentType += "; boundary=" + Boundary;
                    }
                    //((HttpWebRequest)request).Accept = "*/*";
                    //((HttpWebRequest)request).UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1";
                    //ServicePointManager.Expect100Continue = false;
                    //request.Proxy = null;
                    //request.PreAuthenticate = true;

                    bytes = GetMultipartFormData(data);
                }
                else
                {
                    bytes = System.Text.Encoding.UTF8.GetBytes(data);
                }
                request.ContentLength = bytes.Length;

                if (request.ContentType == null)
                {
                    request.ContentType = "application/x-www-form-urlencoded";
                }
                using (Stream requestStream = request.GetRequestStream())
                {
                    //Writes a sequence of bytes to the current stream
                    requestStream.Write(bytes, 0, bytes.Length);
                    requestStream.Close();//Close stream
                }

                if (Durados.Workflow.JavaScript.IsDebug())
                {
                    try
                    {
                        string requestBody = System.Text.Encoding.UTF8.GetString(bytes);
                    }
                    catch { }
                }
            }

            HttpWebResponse response = null;

            if (Async)
            {
                new Thread(() =>
                {
                    Thread.CurrentThread.IsBackground = true;
                    /* run your code here */
                    var asyncRequest         = WebRequest.Create(request.RequestUri);
                    asyncRequest.Method      = request.Method;
                    asyncRequest.ContentType = request.ContentType;
                    foreach (var header in request.Headers.AllKeys)
                    {
                        if (!(header.ToLower() == "content-type" || header.ToLower() == "accept" || header.ToLower() == "host" || header.ToLower() == "content-length" || header.ToLower() == "expect" || header.ToLower() == "connection"))
                        {
                            try
                            {
                                asyncRequest.Headers.Add(header, request.Headers[header]);
                            }
                            catch { }
                        }
                    }
                    asyncRequest.BeginGetResponse(null, null);
                }).Start();
                responseText = string.Empty;
                return;
            }

            try
            {
                response = (HttpWebResponse)request.GetResponse();

                status = (int)response.StatusCode;
                if (status >= 200 && status < 300)
                {
                    //Get response stream into StreamReader
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        string   charset  = GetCharset(request);
                        Encoding encoding = Encoding.UTF8;
                        if (charset != null)
                        {
                            try
                            {
                                encoding = Encoding.GetEncoding(charset);
                            }
                            catch { }
                        }

                        using (StreamReader reader = new StreamReader(responseStream, encoding))
                            responseText = reader.ReadToEnd();
                        //if(string.IsNullOrEmpty(responseText)) responseText="{}";
                    }
                }
                response.Close();//Close HttpWebResponse
                Log(3, request.RequestUri.OriginalString, null, 0);

                //Log(3, "Ended with status " + status);
            }
            catch (WebException we)
            {   //TODO: Add custom exception handling
                if (we.Status == WebExceptionStatus.Timeout)
                {
                    status = (int)HttpStatusCode.RequestTimeout;
                }
                responseText = we.Message;
                var encoding = UTF8Encoding.UTF8;
                if (we.Response != null)
                {
                    using (var reader = new System.IO.StreamReader(we.Response.GetResponseStream(), encoding))
                    {
                        responseText = reader.ReadToEnd();
                    }
                    status = (int)((System.Net.HttpWebResponse)(we.Response)).StatusCode;
                }
                if (we.Response != null && we.Response.Headers.AllKeys.Contains("error"))
                {
                    if (!string.IsNullOrEmpty(responseText))
                    {
                        responseText += "; ";
                    }
                    responseText += we.Response.Headers["error"];
                }
                //Log(1, "Ended with status " + status, we);
                Log(3, request.RequestUri.OriginalString, we);
            }
            catch (Exception ex)
            {
                //Log(1, "Ended with status " + status, ex);
                Log(3, request.RequestUri.OriginalString, ex);

                throw new Exception(ex.Message);
            }
            finally
            {
                if (response != null)
                {
                    try
                    {
                        response.Close();
                    }
                    catch { }
                }
                response = null;
                request  = null;
            }
        }
Exemplo n.º 6
0
 public AzureCloud(Durados.Database database)
     : base(database)
 {
 }
Exemplo n.º 7
0
        public FnProjectCloud(Durados.Database database)
            : base(database)
        {

        }