public ActionResult UnSubscribe([System.Web.Http.FromBody] UnsubscribePayload data)
        {
            // TODO: move data validation
            if (!data.IsValid())
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "invalid data"));
            }
            try
            {
                facetService.Remove(data.EventId, FacetIDs.Subscriptions);
            }
            catch (Exception ex)
            {
                Log.Error($"Unable to remove subscription for event {data.EventId} from the current contact facets", ex, this);
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.Message));
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
        public ActionResult Remove([System.Web.Http.FromBody] EventPayload data)
        {
            // TODO: move data validation
            if (!data.IsValid())
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "invalid data"));
            }
            try
            {
                facetService.Remove(data.EventId, FacetIDs.FavoriteEvents);
            }
            catch (Exception ex)
            {
                Log.Error($"Unable to remove value '{data.EventId}' to contact's '${FacetIDs.FavoriteEvents}' facet ", ex, this);
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.Message));
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }