Example #1
0
        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;
 }