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)))); }