public HttpResponseMessage Create([FromBody] CreateActivityBindingModel model) { Guard.ArgumentNotNullOrEmpty(model.Name, $"{model}.{model.Name}"); Guard.ArgumentNotNullOrEmpty(model.Description, $"{model}.{model.Description}"); Guard.ArgumentNotNullOrEmpty(model.Place, $"{model}.{model.Place}"); Guard.ArgumentNotNullOrEmpty(model.StartTime, $"{model}.{model.StartTime}"); Guard.ArgumentNotNullOrEmpty(model.EndTime, $"{model}.{model.EndTime}"); Guard.ArgumentNotNullOrEmpty(model.Classfication, $"{model}.{model.Classfication}"); var activity = new Activity { CreatorId = this.User.Identity.GetUserId(), Name = model.Name, Description = model.Description, PublishTime = DateTime.Now, Classficiation = EnumUtils.Parse <ActivityClassficiation>(model.Classfication ?? ActivityClassficiation.Other.ToString()), Place = model.Place, StartTime = DateTime.Parse(model.StartTime), EndTime = DateTime.Parse(model.EndTime), IsDisplay = model.IsDisplay, Organizer = model.Organizer }; this.Data.Activity.Add(activity); this.Data.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, activity)); }
public ActionResult Create(CreateActivityBindingModel model) { try { var activity = new Activity { CreatorId = this.User.Identity.GetUserId(), Name = model.Name, Description = model.Description, PublishTime = DateTime.Now, Classficiation = EnumUtils.Parse <ActivityClassficiation>(model.Classfication ?? ActivityClassficiation.Other.ToString()), Place = model.Place, StartTime = DateTime.Now, EndTime = DateTime.Now }; this.Data.Activity.Add(activity); this.Data.SaveChanges(); return(RedirectToAction("Index")); } catch { return(View()); } }
public HttpResponseMessage Update([FromUri] int activityId, [FromBody] CreateActivityBindingModel model) { Guard.ArgumentNotNull(activityId, nameof(activityId)); Guard.ArgumentNotNullOrEmpty(model.Name, $"{model}.{model.Name}"); Guard.ArgumentNotNullOrEmpty(model.Description, $"{model}.{model.Description}"); Guard.ArgumentNotNullOrEmpty(model.Place, $"{model}.{model.Place}"); Guard.ArgumentNotNullOrEmpty(model.StartTime, $"{model}.{model.StartTime}"); Guard.ArgumentNotNullOrEmpty(model.EndTime, $"{model}.{model.EndTime}"); Guard.ArgumentNotNullOrEmpty(model.Classfication, $"{model}.{model.Classfication}"); var activity = Data.Activity .All() .FirstOrDefault(t => t.Id == activityId); if (activity == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, $"Cannot find activity for activity ID {activityId}")); } // Check ownership if (activity.CreatorId != this.User.Identity.GetUserId()) { return(Request.CreateErrorResponse(HttpStatusCode.Forbidden, $"Only creator {activity.CreatorId} can update the activity")); } activity.Name = model.Name; activity.Description = model.Description; activity.Place = model.Place; activity.Classficiation = EnumUtils.Parse <ActivityClassficiation>(model.Classfication); activity.StartTime = DateTime.Parse(model.StartTime); activity.EndTime = DateTime.Parse(model.EndTime); activity.IsDisplay = model.IsDisplay; activity.Organizer = model.Organizer; this.Data.Activity.Update(activity); this.Data.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, activity.ToActivityViewModel())); }