public HttpResponseMessage Put(Guid id, Survey survey) { if (string.IsNullOrWhiteSpace(survey.Name)) { throw this.WebException(HttpStatusCode.BadRequest, "Survey name cannot be empty"); } var currentSurvey = this.surveyRepository.Get(id); if (currentSurvey != null) { if (!currentSurvey.Name.Equals(survey.Name, StringComparison.InvariantCulture)) { currentSurvey.Name = survey.Name; currentSurvey.Slug = currentSurvey.Name.GenerateSlug(); } currentSurvey.Description = survey.Description; this.surveyRepository.Update(currentSurvey, survey.Questions); // Response Message return this.Request.CreateResponse<Survey>(HttpStatusCode.OK, currentSurvey); } else { // We are not supporting creation through PUT throw this.WebException(HttpStatusCode.NotFound); } }
public Survey Insert(Survey survey) { if (survey == null) { throw new ArgumentNullException("survey", "Parameter survey cannot be null."); } var addedSurvey = this.surveyContext.Surveys.Add(survey); this.surveyContext.SaveChanges(); return addedSurvey; }
public void Update(Survey survey, ICollection<SurveyQuestion> updatedQuestions) { if (survey == null) { throw new ArgumentNullException("survey", "Parameter survey cannot be null."); } var entry = this.surveyContext.Entry(survey); var attachedSurvey = this.surveyContext.Surveys.Attach(survey); // TODO: Review this (there should be a better way to update survey questions automatically - Review DB design) this.UpdateQuestions(attachedSurvey.Questions, updatedQuestions); entry.State = EntityState.Modified; this.surveyContext.SaveChanges(); }
public HttpResponseMessage Post(Survey survey) { if (string.IsNullOrWhiteSpace(survey.Name)) { throw this.WebException(HttpStatusCode.BadRequest, "Survey name cannot be empty"); } survey.Slug = survey.Name.GenerateSlug(); var addedSurvey = this.surveyRepository.Insert(survey); // Response Message var response = this.Request.CreateResponse<Survey>(HttpStatusCode.Created, addedSurvey); var surveyUri = Url.Link("SurveysApi", new { Id = addedSurvey.Id }); response.Headers.Location = new Uri(surveyUri); return response; }