public async Task <ActionResult> Post([FromBody] CircleEventCommentReply model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var circleEventComment = await _repo.GetCircleEventComment(model.CommentId); if (circleEventComment == null) { return(NotFound()); } if (!await this.MatchAppUserWithToken(model.AppUserId) || !await _repo.IsMember((int)model.AppUserId, circleEventComment.CircleId)) { return(Unauthorized()); } model.CircleId = circleEventComment.CircleId; // var newTopic = this._mapper.Map<CircleEvent>(model); _repo.Add(model); await _repo.SaveAll(); if (circleEventComment.AppUserId == model.AppUserId) //Comment owner { await _notificationRepo.AddNotification(NotificationEnum.NewCircleEventReplyByOwner, (int)model.AppUserId, model); } else { await _notificationRepo.AddNotification(NotificationEnum.NewCircleEventReplyByMember, (int)model.AppUserId, model); } await _repo.SaveAll(); return(CreatedAtRoute("GetCircleEventCommentReply", new { id = model.Id }, _mapper.Map <CommentForReturnDto>(model))); }
public async Task <ActionResult> Post([FromBody] UserCommentUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var circleTopic = await _repo.GetCircleTopic(model.OwnerRecordId); if (circleTopic == null) { return(NotFound()); } if (!await this.MatchAppUserWithToken(model.AppUserId) || !await _repo.IsMember((int)model.AppUserId, circleTopic.CircleId)) { return(Unauthorized()); } // model.CircleId = circleTopic.CircleId; var newTopic = this._mapper.Map <CircleTopicComment>(model); newTopic.CircleId = circleTopic.CircleId; _repo.Add(newTopic); await _repo.SaveAll(); return(CreatedAtRoute("GetCircleTopicComment", new { id = model.Id }, _mapper.Map <CircleTopicCommentForReturnDto>(newTopic))); }
public async Task <ActionResult> SendCircleRequest([FromBody] CircleRequest model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await this.MatchAppUserWithToken(model.AppUserId)) { return(Unauthorized()); } if (await _repo.IsMember((int)model.AppUserId, model.CircleId)) { return(BadRequest("既にメンバーになっています")); } var circleFromRepo = await _repo.Get <Circle>(model.CircleId); if (circleFromRepo == null) { return(NotFound("サークルレコードが見つかりません: " + model.CircleId)); } if (await _repo.RequestSent((int)model.AppUserId, model.CircleId)) { return(BadRequest("既にリクエストしています")); } if (circleFromRepo.ApprovalRequired) { _repo.Add(model); await _notificationRepo.AddNotification(NotificationEnum.NewCircleMemberRequest, model.AppUserId, model); await _repo.SaveAll(); return(CreatedAtRoute("GetCircleRequest", new { userId = model.AppUserId, circleId = model.CircleId }, null)); } _repo.Add(new CircleMember() { AppUserId = (int)model.AppUserId, CircleId = model.CircleId, Role = CircleRoleEnum.MEMBER, DateJoined = DateTime.Now, DateLastActive = DateTime.Now }); await _repo.SaveAll(); return(CreatedAtRoute("GetCircleMember", new { userId = model.AppUserId, circleId = model.CircleId }, null)); }
public async Task <ActionResult> Get(int id) { var circleEventForReturn = _mapper.Map <CircleEventForReturnDto>(await _repo.GetCircleEvent(id)); if (circleEventForReturn == null) { return(NotFound()); } //circleEventForReturn.EventCommentCounts = await _repo.GetCircleEventCommentCount(id); var loggedInUser = await GetLoggedInUserAsync(); if (loggedInUser != null) { var myParticipation = await _repo.GetCircleEventParticipation(loggedInUser.Id, id); circleEventForReturn.MyStatus = myParticipation != null ? (CircleEventParticipationStatus?)myParticipation.Status : null; circleEventForReturn.IsCircleMember = await _repo.IsMember(loggedInUser.Id, circleEventForReturn.CircleId); } return(Ok(circleEventForReturn)); }
public async Task <ActionResult> Post([FromBody] CircleTopicUpdateDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!await this.MatchAppUserWithToken(model.AppUserId) || !await _repo.IsMember(model.AppUserId, model.CircleId)) { return(Unauthorized()); } var newTopic = this._mapper.Map <CircleTopic>(model); _repo.Add(newTopic); await _repo.SaveAll(); await _notificationRepo.AddNotification(NotificationEnum.NewCircleTopicCreated, model.AppUserId, newTopic); await _repo.SaveAll(); return(CreatedAtRoute("GetCircleTopic", new { id = newTopic.Id }, _mapper.Map <CircleTopicForReturnDto>(await _repo.GetCircleTopic(newTopic.Id)))); }
public async Task <ActionResult> Get(int id) { var circleForReturn = _mapper.Map <CircleForReturnDto>(await _repo.GetCircle(id)); var appUser = await GetLoggedInUserAsync(); if (appUser != null) { if (await _repo.IsOwner(appUser.Id, circleForReturn.Id)) { circleForReturn.IsManageable = true; circleForReturn.IsMember = true; } else if (await _repo.IsMember(appUser.Id, circleForReturn.Id)) { circleForReturn.IsMember = true; } else { var request = await _repo.GetCircleRequest(appUser.Id, circleForReturn.Id); if (request != null) { if (request.Declined) { circleForReturn.IsDeclined = true; } else { circleForReturn.IsWaitingApproval = true; } } } } circleForReturn.TotalMemberCount = await _repo.GetCircleMemberCount(id); return(Ok(circleForReturn)); }