public async Task <IActionResult> ReportHim(ReportHimAddressModel model) { var currentUser = await GetKahlaUser(); var targetUser = await _dbContext.Users.SingleOrDefaultAsync(t => t.Id == model.TargetUserId); if (targetUser == null) { return(this.Protocol(ErrorType.NotFound, $"Could not find target user with id `{model.TargetUserId}`!")); } if (currentUser.Id == targetUser.Id) { return(this.Protocol(ErrorType.HasDoneAlready, "You can not report yourself!")); } var exists = await _dbContext .Reports .AnyAsync((t) => t.TriggerId == currentUser.Id && t.TargetId == targetUser.Id && t.Status == ReportStatus.Pending); if (exists) { return(this.Protocol(ErrorType.HasDoneAlready, "You have already reported the target user!")); } // All check passed. Report him now! _dbContext.Reports.Add(new Report { TargetId = targetUser.Id, TriggerId = currentUser.Id, Reason = model.Reason }); await _dbContext.SaveChangesAsync(); return(this.Protocol(ErrorType.Success, "Successfully reported target user!")); }
public async Task <IActionResult> ReportHim(ReportHimAddressModel model) { var cuser = await _userManager.GetUserAsync(User); var targetUser = await _dbContext.Users.SingleOrDefaultAsync(t => t.Id == model.TargetUserId); if (targetUser == null) { return(this.Protocol(ErrorType.NotFound, $"无法找到对应的用户 `{model.TargetUserId}`!")); } if (cuser.Id == targetUser.Id) { return(this.Protocol(ErrorType.HasDoneAlready, "您不可以给您自己发送留言!")); } var exists = await _dbContext .Reports .AnyAsync((t) => t.TriggerId == cuser.Id && t.TargetId == targetUser.Id && t.Status == ReportStatus.Pending); _dbContext.Reports.Add(new Report { TargetId = targetUser.Id, TriggerId = cuser.Id, Reason = model.Reason }); await _dbContext.SaveChangesAsync(); return(this.Protocol(ErrorType.Success, $"成功的给这个用户发送了留言: {targetUser.Email}!")); }