public IHttpActionResult PostCampaignRegistration(CampaignRegistrationObject registrationObject)
        {
            System.DateTime      date = DateTime.Now;
            CampaignRegistration campaignRegistration = new CampaignRegistration();

            campaignRegistration.campaignID    = registrationObject.campaignID;
            campaignRegistration.promotionCode = registrationObject.promotionCode;
            campaignRegistration.publisherID   = registrationObject.publisherID;
            campaignRegistration.registerDate  = date;
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.CampaignRegistrations.Add(campaignRegistration);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (CampaignRegistrationExists(campaignRegistration.campaignID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = campaignRegistration.campaignID }, campaignRegistration));
        }
        public IHttpActionResult PutCampaignRegistration(string id, CampaignRegistration campaignRegistration)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != campaignRegistration.campaignID)
            {
                return(BadRequest());
            }

            db.Entry(campaignRegistration).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CampaignRegistrationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetCampaignRegistration(string id)
        {
            CampaignRegistration campaignRegistration = db.CampaignRegistrations.Find(id);

            if (campaignRegistration == null)
            {
                return(NotFound());
            }

            return(Ok(campaignRegistration));
        }
        public IHttpActionResult DeleteCampaignRegistration(string id)
        {
            CampaignRegistration campaignRegistration = db.CampaignRegistrations.Find(id);

            if (campaignRegistration == null)
            {
                return(NotFound());
            }

            db.CampaignRegistrations.Remove(campaignRegistration);
            db.SaveChanges();

            return(Ok(campaignRegistration));
        }
        public IHttpActionResult GetCampaignName(string promotionCode)
        {
            IQueryable <CampaignRegistration> campaignRegistrations = db.CampaignRegistrations.Where(c => c.promotionCode.Equals(promotionCode));

            if (campaignRegistrations == null)
            {
                return(NotFound());
            }
            else
            {
                CampaignRegistration campaignRegistration = campaignRegistrations.First();
                Campaign             campaign             = db.Campaigns.Find(campaignRegistration.campaignID);
                if (campaign != null)
                {
                    return(Ok(campaign));
                }
            }
            return(NotFound());
        }