public async Task <ActionResult> Post([FromBody] CircleEventUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await this.MatchAppUserWithToken(model.AppUserId) || !await _repo.IsOwner((int)model.AppUserId, model.CircleId)) { return(Unauthorized()); } var newEvent = this._mapper.Map <CircleEvent>(model); _repo.Add(newEvent); CircleEvent oldestEvent = null; if (await _repo.GetCircleEventCount(model.CircleId) >= CIRCLE_EVENT_MAX) { oldestEvent = await _repo.GetOldestCircleEvent(model.CircleId); _repo.Delete(oldestEvent); } await _repo.SaveAll(); if (oldestEvent != null) { await this.deleteAttachedPhotos(oldestEvent.Photos); } return(CreatedAtRoute("GetCircleEvent", new { id = newEvent.Id }, _mapper.Map <CircleEventForReturnDto>(await _repo.Get <CircleEvent>(newEvent.Id)))); }
public async Task <ActionResult> Put([FromBody] CircleEventUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var CircleEventFromRepo = await this._repo.Get <CircleEvent>(model.Id); if (CircleEventFromRepo == null) { return(NotFound()); } if (!await MatchAppUserWithToken((int)CircleEventFromRepo.AppUserId)) { return(Unauthorized()); } _mapper.Map(model, CircleEventFromRepo); try { await _repo.SaveAll(); } catch (System.Exception ex) { return(BadRequest("Failed to update circle event: " + ex.Message)); } return(Ok()); }