public HttpResponseMessage Logout() { try { HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(ConfigurationManager.AppSettings["SessionCookieName"]); if (cookie != null) { Guid sessionUid; if (Guid.TryParse(cookie.Value, out sessionUid)) { DeleteSessionQuery query = new DeleteSessionQuery() { SessionUID = sessionUid, MandatorUIDs = RequestMandatorUIDs }; DeleteSessionQueryHandler handler = new DeleteSessionQueryHandler(query, UnityContainer); handler.Handle(); cookie.Expires = DateTime.Now.AddDays(-1); HttpContext.Current.Response.Cookies.Set(cookie); return(Request.CreateResponse(HttpStatusCode.OK)); } } else { throw new Exception("Could not find the Cookie"); } return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public DeleteSessionQueryHandler(DeleteSessionQuery query, IUnityContainer unityContainer) : base(unityContainer) { _query = query; }