public void RegisterToEvent(RegisterReq req)
        {
            /*This is bound to be common validation for a lot of RESTful requests.
             * I would much rather it be in a custom filter if I had the time*/
            if (ctx.Events.Any(e => e.Name == req.EventName))
            {
                req.IsError = true;
                req.Error   = "This event does not exist";
            }

            //far less common validation so give it to a service
            service.ValidateRegister(ref req);

            if (req.IsError)
            {
                throw new Exception(req.Error);
            }
            else
            {
                try
                {
                    ctx.BeginTransaction();
                    ctx.Events.FirstOrDefault(e => e.Name == req.EventName &&
                                              e.Location.Country.CountryCode == req.Country)
                    .RegisteredEmails.Add(req.EmailAddress);
                    ctx.SetModified(ctx.Events);
                    ctx.CommitTransaction();
                }
                catch
                {
                    ctx.RollbackTransaction();
                }
            }
        }