public async Task <IActionResult> Timeline() { try { Guid userId = User.GetUserId(); List <TimelineDTO> timeline = new List <TimelineDTO>(); //User Events var eventsTimeline = (await _eventRepo.UserEvents(userId)).Select(e => new TimelineDTO() { Header = e.Title, Body = TimelineHelper.GenerateMyCreateEventBody(e), Image = e.Photo, CreateAt = e.CreatedAt, CustomId = e.Id, Type = "create-event", LineColor = "#a6714e" }).ToList(); if (!eventsTimeline.IsNullOrEmpty()) { timeline.AddRange(eventsTimeline); } //Event Operations var eventOperationsTimeline = (await _eventOperationRepo.UserEventOperations(userId)).Select(eo => new TimelineDTO() { Header = eo.Event.Title, Body = TimelineHelper.GenerateMyJoinEventBody(eo.Event), Image = eo.Event.Photo, CreateAt = eo.CreatedAt, CustomId = eo.EventId, Type = "join-event", LineColor = "#f78f8f" }).ToList(); if (!eventOperationsTimeline.IsNullOrEmpty()) { timeline.AddRange(eventOperationsTimeline); } //Following Friend Operations var followFriendOperationsTimeline = (await _friendOperationRepo.Followings(userId)).Select(fo => new TimelineDTO() { Header = fo.FollowingUser.FirstName + " " + fo.FollowingUser.LastName, Body = TimelineHelper.GenerateMyFollowingBody(), Image = null, CreateAt = fo.CreatedAt, CustomId = fo.FollowingUserId, Type = "following", LineColor = "#ffeea3" }).ToList(); if (!followFriendOperationsTimeline.IsNullOrEmpty()) { timeline.AddRange(followFriendOperationsTimeline); } //Follow Friend Operations var followingFriendOperationsTimeline = (await _friendOperationRepo.Followers(userId)).Select(fo => new TimelineDTO() { Header = fo.FollowerUser.FirstName + " " + fo.FollowerUser.LastName, Body = TimelineHelper.GenerateMyFollowerBody(), Image = null, CreateAt = fo.CreatedAt, CustomId = fo.FollowerUserId, Type = "follower", LineColor = "#ffeea3" }).ToList(); if (!followingFriendOperationsTimeline.IsNullOrEmpty()) { timeline.AddRange(followingFriendOperationsTimeline); } //Comments var commentsTimeline = (await _commentRepo.UserComments(userId)).Select(c => new TimelineDTO() { Header = c.Event.Title, Body = TimelineHelper.GenerateMyCommentBody(userId, c), Image = null, CreateAt = c.CreatedAt, CustomId = c.EventId, Type = "comment-event", LineColor = "#dcd5f2" }).ToList(); if (!commentsTimeline.IsNullOrEmpty()) { timeline.AddRange(commentsTimeline); } if (timeline.IsNullOrEmpty()) { return(NotFound("Kayıt bulunamadı.")); } return(Ok(timeline.OrderByDescending(t => t.CreateAt))); } catch (Exception ex) { _logHelper.Log("AccountController", 500, "Timeline", ex.Message); return(null); } }