Пример #1
0
 /// <summary>
 /// Raise an event in a thread-safe manner, with the required null check. Lazily creates event args.
 /// </summary>
 /// <typeparam name="T">The event args type.</typeparam>
 /// <param name="eventToRaise">The event to raise.</param>
 /// <param name="sender">The event sender.</param>
 /// <param name="getEventArgs">The delegate to return the event args if needed.</param>
 public static void Raise <T>(EventHandler <T> eventToRaise, object sender, GetEventArgs <T> getEventArgs) where T : System.EventArgs
 {
     if (eventToRaise != null)
     {
         eventToRaise(sender, getEventArgs());
     }
 }
Пример #2
0
        //***********************************************************************************************************************

        //***********************************************************************************************************************
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="EventToRaise"></param>
        /// <param name="Sender"></param>
        /// <param name="GetEventArgs"></param>
        //-----------------------------------------------------------------------------------------------------------------------
        public static void Raise <T> (EventHandler <T> EventToRaise, object Sender, GetEventArgs <T> GetEventArgs) where T : EventArgs
        {
            //-------------------------------------------------------------------------------------------------------------------
            if (EventToRaise != null)
            {
                EventToRaise(Sender, GetEventArgs());
            }
            //-------------------------------------------------------------------------------------------------------------------
        }
Пример #3
0
        protected bool ProcessGetSchema(HttpListenerContext context)
        {
            GetEventArgs eventArgs = new GetEventArgs()
            {
                AskedDate = DateTime.Now, AskedUrl = context.Request.Url
            };
            bool result = true;

            try
            {
                DateTime currDate = DateTime.Now;
                string   strItem  = null;
                if (ExposeDataModel)
                {
                    context.Response.ContentType = "application/json";
                    strItem = JsonSerializer.Serialize(Schemas);
                }
                else
                {
                    context.Response.ContentType = "text/plain";
                    strItem = " ";
                }

                byte[] buffer     = Encoding.UTF8.GetBytes(strItem);
                int    bytesCount = buffer.Length;
                //Adding permanent http response headers
                context.Response.ContentLength64 = bytesCount;
                context.Response.AddHeader("Date", currDate.ToString("r"));
                context.Response.AddHeader("Last-Modified", currDate.ToString("r"));
                context.Response.OutputStream.Write(buffer, 0, bytesCount);
                context.Response.OutputStream.Flush();
            }
            catch (Exception)
            {
                context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                result = false;
            }

            eventArgs.EndDate = DateTime.Now;
            eventArgs.ResponseHttpStatusCode = (HttpStatusCode)context.Response.StatusCode;
            OnGetAction(eventArgs);

            return(result);
        }
Пример #4
0
        protected bool ProcessGet(HttpListenerContext context)
        {
            GetEventArgs eventArgs = new GetEventArgs()
            {
                AskedDate = DateTime.Now, AskedUrl = context.Request.Url
            };

            bool result;

            if (AllowGet)
            {
                result = ProcessGetSql(context, GetQuery(context.Request.QueryString));
            }
            else
            {
                result = Process403(context);
            }
            eventArgs.EndDate = DateTime.Now;
            eventArgs.ResponseHttpStatusCode = (HttpStatusCode)context.Response.StatusCode;
            OnGetAction(eventArgs);
            return(result);
        }
Пример #5
0
        protected bool ProcessGet(HttpListenerContext context)
        {
            GetEventArgs eventArgs = new GetEventArgs()
            {
                AskedDate = DateTime.Now, AskedUrl = context.Request.Url
            };
            bool result = true;

            try
            {
                PrepareResponse(context);
            }
            catch
            {
                context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                result = false;
            }

            eventArgs.EndDate = DateTime.Now;
            eventArgs.ResponseHttpStatusCode = (HttpStatusCode)context.Response.StatusCode;
            OnGetAction(eventArgs);

            return(result);
        }
Пример #6
0
 protected virtual void OnGetAction(GetEventArgs e)
 {
     OnGet?.Invoke(this, e);
 }
Пример #7
0
 public static void Raise <T>(EventHandler <T> eventToRaise, object sender, GetEventArgs <T> getEventArgs)
     where T : EventArgs
 {
     eventToRaise?.Invoke(sender, getEventArgs());
 }