public async Task <IActionResult> NewsFeed() { var claimsIdentity = (ClaimsIdentity)this.User.Identity; var claim = claimsIdentity.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier); var userEmail = claim.Value; var User = await _userManager.FindByEmailAsync(userEmail); var studentData = _studSrv.GetStudent(User.Id); return(Ok(new { status = "Success", StudentData = new { Username = User.Name, StudentId = User.Id, Image = studentData.Image, Title = studentData.Title, Followers = _studSrv.StudentFollowersCount(User.Id), Following = _studSrv.StudentFollowingCount(User.Id), Gender = studentData.User.Gender } , Feed = _newsFeedSrv.FollowingQuestions(User.Id).OrderByDescending(q => q.Id) })); }
public async Task <IActionResult> AddStudentQuestion([FromBody] Question newQuestion) { //Get Request's User var claimsIdentity = (ClaimsIdentity)this.User.Identity; if (!claimsIdentity.IsAuthenticated) { return(Unauthorized()); } //Get Student Profile var claim = claimsIdentity.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier); var userEmail = claim.Value; var User = await _userManager.FindByEmailAsync(userEmail); newQuestion.UserId = User.Id; newQuestion.Likes = 0; newQuestion.Dislikes = 0; var Question = _profileSrv.AddQuestion(newQuestion); var studentData = _profileSrv.GetStudent(User.Id); //SignalR Layer . // This Layer Should Be In Try Catch Ex. Handler Beacuse App Shoul Work If SignalR Service Working or Not. //try //{ // // 1) Get List Of Followings Connections Ids . // var Follower = _profileSrv.GetStudentFriends(User.Id).Select(u=> u.FriendTwoId).ToList(); // var Connections = _signalrSrv.GetConnectionsByUserId(Follower).ToList(); // // 2) Get Question Object . // // 3) Call SignalR Api Pass Parameters To It . // using (var client = new HttpClient()) // { // NewQuestionSignalrVM model = new NewQuestionSignalrVM() { // Connection = Connections, // QuestionHead = Question.QuestionHead, // Id = Question.Id, // Username = User.Name, // Image = studentData.Image, // UserId = studentData.ApplicationUserId, // Title = studentData.Title, // Date = Question.Date, // Answers = null // }; // var modelToJson = JsonConvert.SerializeObject(model); // var content = new StringContent(modelToJson, Encoding.UTF8, "application/json"); // var result = client.PostAsync("http://localhost:10724/api/signalr/newquestion", content).Result; // } //} //catch //{ // //IGnore //} return(Ok(new { Status = "Success", Question = new { QuestionHead = Question.QuestionHead, Id = Question.Id, Username = User.Name, Image = studentData.Image, UserId = studentData.ApplicationUserId, Title = studentData.Title, Date = Question.Date, Answers = new object[0] } })); }