/// <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()); } }
//*********************************************************************************************************************** //*********************************************************************************************************************** /// <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()); } //------------------------------------------------------------------------------------------------------------------- }
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); }
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); }
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); }
protected virtual void OnGetAction(GetEventArgs e) { OnGet?.Invoke(this, e); }
public static void Raise <T>(EventHandler <T> eventToRaise, object sender, GetEventArgs <T> getEventArgs) where T : EventArgs { eventToRaise?.Invoke(sender, getEventArgs()); }