public Dictionary <string, List <string> > GetAttachements(int roomId, bool isImage) { using (var db = new groubel_dbEntities1()) { var extArray = new List <string> { "jpg", "JPG", "gif", "GIF", "png", "PNG", "svg", "SVG" }; var data = db.ChatComments.Where(i => i.Attachement != "" && i.RoomId == roomId).Select(i => i.Attachement).ToList(); List <string> filteredData; if (isImage) { filteredData = data.Where(i => extArray.Contains(i.Substring(i.Length - 3))).ToList(); } else { filteredData = data.Where(i => !extArray.Contains(i.Substring(i.Length - 3))).ToList(); } var b = filteredData.GroupBy(i => i.Split('_')[1].First().ToString().ToUpper()).ToDictionary(i => i.Key, i => i.ToList()); return(b); } }
public List <UserEntity> GetUserSuggestions(int userId, int count) { using (var db = new groubel_dbEntities1()) { var userInterests = db.UserInterests.Where(i => i.UserId == userId).Select(i => i.InterestId); var friends = db.Friendships .Where(i => i.UserId == userId && db.UserInterests .Where(j => j.UserId == i.FriendId) .Select(j => j.InterestId) .Intersect(userInterests).Any() ) .Select(i => i.FriendId); var users = db.Users.Where(i => friends.Contains(i.Id)).OrderBy(i => i.Id).Skip(0).Take(count).Select(i => new UserEntity { Id = i.Id, FirstName = i.FirstName, LastName = i.LastName, IsFriend = true }).ToList(); return(users); } }
public bool MuteUser(int adminUserId, int chatId, int userId) { using (var db = new groubel_dbEntities1()) { var isAdmin = db.Chats.Any(i => i.UserId == adminUserId && i.Id == chatId); if (!isAdmin) { return(false); } var u = db.ChatMembers.FirstOrDefault(i => i.RoomId == chatId && i.UserId == userId); if (u == null) { return(false); } u.Status = 3; db.SaveChanges(); _notificationService.AddNotification(adminUserId, userId, NotificationTypeEnum.ChangedYouStatusInRoom, u.RoomId, "", null); return(true); } }
public List <ChatMemberEntity> GetChatMembers(int id, int userId) { using (var db = new groubel_dbEntities1()) { var data = db.Users .Where(i => db.ChatMembers .Where(j => j.RoomId == id) .Select(j => j.UserId) .Contains(i.Id) ).ToList() .Select(i => new ChatMemberEntity { Id = i.Id, FirstName = i.FirstName, LastName = i.LastName, LastLoginDate = i.LastLoginDate, DateOfBirth = i.DateOfBirth, Gender = i.Gender, IsMe = i.Id == userId, Image = _userService.GetUserImage(i.Id), IsOnline = _securityService.IsOnline(i.Id), IsFriend = _userService.IsFriend(userId, i.Id), Status = db.ChatMembers.FirstOrDefault(j => j.UserId == i.Id && j.RoomId == id).Status }).ToList(); return(data); } }
public List <ChatEntity> GetUserRooms(int userId, int mainUserId, bool isRoom) { using (var db = new groubel_dbEntities1()) { var t = DateTime.Now.AddDays(-100); var rooms = db.Chats.Where(i => db.ChatMembers.Where(j => j.UserId == userId).Select(j => j.RoomId).Contains(i.Id) && i.IsRoom == isRoom && !i.IsArchive ) .OrderByDescending( i => db.ChatComments.Any(j => j.RoomId == i.Id) ? db.ChatComments.Where(j => j.RoomId == i.Id).OrderByDescending(j => j.Id).FirstOrDefault().Date : i.Date ) .ToList() .Select(i => new ChatEntity { Id = i.Id, Name = i.Name, LastCommentDate = db.ChatComments.Any(j => j.RoomId == i.Id) ? db.ChatComments.Where(j => j.RoomId == i.Id).OrderByDescending(j => j.Id).FirstOrDefault().Date.ToString("g") : i.Date.ToString("g"), AreMember = db.ChatMembers.Any(j => j.UserId == mainUserId), UnSeenCmments = _notificationService.GetChatCommentStatus(userId, i.Id), Image = i.Image, Visibility = i.Visibility, UserId = i.UserId, UserImage = getUserImage(userId, db.ChatMembers.Where(k => k.RoomId == i.Id).ToList(), i.IsRoom, db), AnotherUserId = i.IsRoom ?0 : db.ChatMembers.Where(j => j.RoomId == i.Id && j.UserId != userId).Select(b => b.UserId).FirstOrDefault(), MemberName = db.ChatMembers.Where(j => j.RoomId == i.Id).Select(b => db.Users.FirstOrDefault(j => j.Id == b.UserId).FirstName + " " + db.Users.FirstOrDefault(j => j.Id == b.UserId).LastName).ToList(), UserName = i.IsRoom?"":db.ChatMembers.Where(j => j.RoomId == i.Id && j.UserId != userId).Select(b => db.Users.FirstOrDefault(j => j.Id == b.UserId).FirstName + " " + db.Users.FirstOrDefault(j => j.Id == b.UserId).LastName).FirstOrDefault() }).ToList(); return(rooms); } }
public ChatEntity GetRoomById(int id, int userId) { using (var db = new groubel_dbEntities1()) { var rm = db.Chats.Where(i => i.Id == id).Select(i => new ChatEntity { Id = i.Id, UserId = i.UserId, Date = i.Date, IsArchive = i.IsArchive, IsRoom = i.IsRoom, MaxUsers = i.MaxUsers, Image = i.Image, Name = i.Name, AreMember = db.ChatMembers.Any(j => j.UserId == userId && j.RoomId == id), Visibility = i.Visibility, RequestSent = db.Notifications.Any(t => t.ApproovedStatus && t.AliasId == i.Id && t.SenderUserId == userId) }).FirstOrDefault(); rm.Members = GetChatMembers(rm.Id, userId); rm.Comments = GetChatComment(rm.Id, userId, 0); rm.Interests = db.Interests.Where( i => db.ChatInterests.Where(j => j.ChatId == rm.Id).Select(j => j.InterestId).Contains(i.Id) ).Select(i => new InterestEntity { Id = i.Id, Name = i.Name }).ToList(); return(rm); } }
public UserEntity GetUserByIdForPopup(int id, int curId) { using (var db = new groubel_dbEntities1()) { var us = db.Users.FirstOrDefault(i => i.Id == id); if (us == null) { return(null); } var rt = new UserEntity { Id = us.Id, FirstName = us.FirstName, LastName = us.LastName, IsMe = us.Id == id, RequestSent = db.Notifications.Any(k => k.SenderUserId == curId && !k.ApproovedStatus && k.Type == 11), RequestRecived = db.Notifications.Any(k => k.ReciverUserId == curId && !k.ApproovedStatus && k.Type == 11), Image = GetUserImage(us.Id), IsOnline = _securityService.IsOnline(us.Id), IsFriend = _friendService.IsFriend(us.Id, curId), ShareFriends = GetSameFriends(curId, us.Id), LastLoginDate = us.LastLoginDate }; return(rt); } }
public int Count() { using (var db = new groubel_dbEntities1()) { return(db.Users.Count()); } }
public bool IsFriend(int userId, int friendId) { using (var db = new groubel_dbEntities1()) { return(db.Friendships.Count(i => i.UserId == userId && i.FriendId == friendId) > 0); } }
private UserEntity GetUserById(int id, int curId, NotificationTypeEnum type, bool?anonimus) { using (var db = new groubel_dbEntities1()) { var us = db.Users.FirstOrDefault(i => i.Id == id); if (us == null) { return(null); } var rt = new UserEntity { Id = us.Id, FirstName = us.FirstName, LastName = us.LastName, IsMe = us.Id == id, Image = GetUserImage(us.Id), }; if (anonimus != null && Convert.ToBoolean(anonimus)) { rt.FirstName = "someone"; rt.LastName = ""; rt.Image = ""; } return(rt); } }
public int GetSaveStatus(int postId, int userId) { using (var db = new groubel_dbEntities1()) { return(db.PostSaves.Count(i => i.PostId == postId && i.UserId == userId)); } }
public void UpdateUser(UserEntity user) { using (var db = new groubel_dbEntities1()) { var us = db.Users.FirstOrDefault(i => i.Id == user.Id); if (us == null) { return; } us.FirstName = user.FirstName; us.LastName = user.LastName; us.UserName = ""; us.Email = user.Email; us.DateOfBirth = user.DateOfBirth; us.Gender = user.Gender; if (us.Password != "") { us.Password = user.Password; } db.SaveChanges(); } }
public PostCommentEntity AddComment(PostCommentEntity comment, HttpPostedFileBase file) { var upload = new IOHandler("~/Uploads/PostAttachements/"); var name = upload.Save(file); using (var db = new groubel_dbEntities1()) { var newComment = new PostComment { Text = comment.Text, UserId = comment.UserId, Date = DateTime.Now, PostId = comment.PostId, Attachement = name }; db.PostComments.Add(newComment); db.SaveChanges(); comment.Id = newComment.Id; comment.Attachement = name; comment.User = _userService.GetUserById(comment.UserId, comment.UserId); _notificationService.AddNotification(comment.UserId, 0, NotificationTypeEnum.CmmentedOnYourPost, comment.PostId, "", null); return(comment); } }
public List <PostEntity> GetSavedPostsByUserId(int userId, int postUserId, int start, int end) { using (var db = new groubel_dbEntities1()) { var post = db.Posts .Where(i => db.PostSaves.Where(j => j.UserId == userId).Select(j => j.PostId).Contains(i.Id) && db.PostHides.Count(j => j.PostId == i.Id && j.UserId == postUserId) == 0) .OrderByDescending(i => i.Id) .Skip(start) .Take(end) .ToList() .Select(i => new PostEntity { Id = i.Id, Attachement = i.Attachement, Text = i.Text, Date = i.Date, Anonoimus = i.Anonoimus, Ip = i.Ip, UserId = i.UserId, PostInterests = _interestService.GetInterestByPostId(i.Id, postUserId), PostComments = GetPostComments(i.Id, 0, 3, postUserId), OldUser = i.OldUserId == null ? null : _userService.GetUserById(Convert.ToInt32(i.OldUserId), userId), Rate = GetRate(i.Id, postUserId), User = _userService.GetUserById(i.UserId, userId), Saved = GetSaveStatus(i.Id, postUserId), CommentsCount = db.PostComments.Count(j => j.PostId == i.Id), Reported = db.Reportings.Any(t => t.UserId == postUserId && t.PostId == i.Id), PostLikers = GetPostLikers(i.Id, userId) }).ToList(); return(post); } }
public PostEntity GetPostById(int userId, int postId) { using (var db = new groubel_dbEntities1()) { var post = db.Posts .Where(j => j.Id == postId) .ToList() .Select(i => new PostEntity { Id = i.Id, Attachement = i.Attachement, Text = i.Text, Date = i.Date, Anonoimus = i.Anonoimus, Ip = i.Ip, UserId = i.UserId, PostInterests = _interestService.GetInterestByPostId(i.Id, userId), PostComments = GetPostComments(i.Id, 0, 10, userId), OldUser = i.OldUserId == null ? null : _userService.GetUserById(Convert.ToInt32(i.OldUserId), userId), Rate = GetRate(i.Id, userId), Saved = GetSaveStatus(i.Id, userId), Reported = db.Reportings.Any(t => t.UserId == userId && t.PostId == i.Id), CommentsCount = db.PostComments.Count(j => j.PostId == i.Id), PostLikers = GetPostLikers(postId, userId), User = _userService.GetUserById(Convert.ToInt32(i.UserId), userId) }).FirstOrDefault(); return(post); } }
private void NewPostsCountByNearby(int id, int userId, out int newPostsCount, out int allPostCount) { using (var db = new groubel_dbEntities1()) { var userIp = db.Users.FirstOrDefault(i => i.Id == userId).LastLoginIp; var ip = userIp; if (ip.Split('.').Count() > 2) { var t = ip.Split('.'); ip = t[0] + "." + t[1] + "." + t[2]; } allPostCount = db.Posts.Count(i => i.Ip.StartsWith(ip)); var tp = (int)NotificationTypeEnum.PostAddedOnInterest; var up = db.Notifications.Where(i => i.Type == tp && i.ReciverUserId == userId && i.SeenStatus == false && i.AliasId == id).ToList(); newPostsCount = up.Count(); up.ForEach(a => { a.SeenStatus = true; a.ApproovedStatus = true; }); db.SaveChanges(); } }
private string GetAliasName(int type, int aliasId) { if (type >= 5 && type <= 10 && type != 8) { using (var db = new groubel_dbEntities1()) { var it = db.Chats.FirstOrDefault(i => i.Id == aliasId); if (it == null) { return(""); } return(it.Name); } } if (type == 1) { using (var db = new groubel_dbEntities1()) { var it = db.Interests.FirstOrDefault(i => i.Id == aliasId); if (it == null) { return(""); } return(it.Name); } } return(""); }
public bool AddToMyInterests(int userId, int interestId) { using (var db = new groubel_dbEntities1()) { var item = db.UserInterests.FirstOrDefault(i => i.InterestId == interestId && i.UserId == userId); if (item != null) { db.UserInterests.Remove(item); db.SaveChanges(); return(false); } db.UserInterests.Add(new UserInterest { UserId = userId, InterestId = interestId, AddDate = DateTime.Now }); db.SaveChanges(); return(true); } }
public List <UserEntity> GetFriendsByName(int userId, string name) { using (var db = new groubel_dbEntities1()) { var friends = db.Users .Where(i => db.Friendships .Where(j => j.UserId == userId) .Select(j => j.FriendId) .Contains(i.Id) && (i.FirstName.StartsWith(name) || i.LastName.StartsWith(name)) ).ToList() .Select(i => new UserEntity { Id = i.Id, FirstName = i.FirstName, LastName = i.LastName, LastLoginDate = i.LastLoginDate, DateOfBirth = i.DateOfBirth, Gender = i.Gender, IsMe = i.Id == userId, Image = GetUserImage(i.Id), IsOnline = _securityService.IsOnline(i.Id), RequestSent = db.Notifications.Any(k => k.SenderUserId == userId && k.ApproovedStatus), RequestRecived = db.Notifications.Any(k => k.SenderUserId == i.Id && k.ApproovedStatus), IsFriend = IsFriend(i.Id, userId) }).ToList(); return(friends); } }
public string AddImage(HttpPostedFileBase file, int id) { using (var db = new groubel_dbEntities1()) { var us = db.UserImages.FirstOrDefault(i => i.UserId == id); var upload = new IOHandler("~/Uploads/ProfileImages/"); var name = upload.Save(file); if (us == null) { db.UserImages.Add(new UserImage { UserId = id, Image = name, Sort = 0, IsMain = false, AddDate = DateTime.Now }); } else { us.Image = name; } db.SaveChanges(); return(name); } }
public Tuple <Dictionary <string, int>, int> RatePost(PostRatesEntity rate) { using (var db = new groubel_dbEntities1()) { var item = db.Rates.FirstOrDefault(i => i.PostId == rate.PostId && i.UserId == rate.UserId && i.Rate1 == rate.Rate1); if (item != null) { db.Rates.Remove(item); } else { item = db.Rates.FirstOrDefault(i => i.PostId == rate.PostId && i.UserId == rate.UserId); if (item != null) { db.Rates.Remove(item); } db.Rates.Add(new Rate { UserId = rate.UserId, PostId = rate.PostId, Rate1 = rate.Rate1 }); } db.SaveChanges(); _notificationService.AddNotification(rate.UserId, 0, NotificationTypeEnum.LikedYourPost, rate.PostId, "", null); return(GetRate(rate.PostId, rate.UserId)); } }
public Tuple <int, NotifictionEntity> GetUserNotificationsCount(int userId) { using (var db = new groubel_dbEntities1()) { var count = db.Notifications.Count(i => i.ReciverUserId == userId && !i.SeenStatus); var lastItem = db.Notifications.Where(i => i.ReciverUserId == userId && i.SenderUserId != userId).OrderByDescending(i => i.Id).Skip(0).Take(1).ToList().Select(i => new NotifictionEntity { Id = i.Id, Date = i.Date, ReciverUserId = i.ReciverUserId, SenderUserId = i.SenderUserId, AliasId = i.AliasId, Type = (NotificationTypeEnum)i.Type, SeenStatus = i.SeenStatus, ApproovedStatus = i.ApproovedStatus, AliasName = GetAliasName(i.Type, i.AliasId), SenderUser = GetUserById(i.SenderUserId, userId, (NotificationTypeEnum)i.Type, i.Anonimus), // ReciverUser = GetUserById(i.ReciverUserId, userId), }).GroupBy(i => new { i.Type, i.AliasId, i.ReciverUserId }).Select(i => i.FirstOrDefault()).ToList(); NotifictionEntity item = null; if (lastItem.Count() > 0) { item = lastItem.FirstOrDefault(); } //var lastThree = new List<NotifictionEntity>(); //if (item != null) //{ // var type = item.Type; // var aliasId = item.AliasId; // var dt = db.Notifications.Where(i => i.AliasId == aliasId && i.Type == type).OrderByDescending(i => i.Id).Skip(0).Take(3).ToList(); // lastThree = dt.Select(i => new NotifictionEntity // { // Id = i.Id, // Date = i.Date, // ReciverUserId = i.ReciverUserId, // SenderUserId = i.SenderUserId, // AliasId = i.AliasId, // Type = (NotificationTypeEnum)i.Type, // SeenStatus = i.SeenStatus, // ApproovedStatus = i.ApproovedStatus, // AliasName = GetAliasName(i.Type, i.AliasId), // SenderUser = GetUserById(i.SenderUserId, userId), // ReciverUser = GetUserById(i.ReciverUserId, userId), // }).ToList(); //} var data = Tuple.Create(count, item); return(data); } }
public bool CheckEmail(string email) { using (var db = new groubel_dbEntities1()) { var item = db.Users.FirstOrDefault(i => i.Email == email); return(item != null); } }
private bool IsMain(int userId, int interestId) { using (var db = new groubel_dbEntities1()) { var count = db.UserInterests.Count(i => i.UserId == userId && i.InterestId == interestId); return(count > 0); } }
private async void NotifySendMessageInChat(int senderUserId, NotificationTypeEnum type, int aliasId) { using (var db = new groubel_dbEntities1()) { var userIds = await db.ChatMembers.Where(i => i.RoomId == aliasId && i.UserId != senderUserId).Select(i => i.UserId).ToListAsync(); SaveNotification(senderUserId, userIds, (int)type, aliasId, null); } }
private async void NotifyRequestedAddToRoom(int senderUserId, NotificationTypeEnum type, int aliasId) { using (var db = new groubel_dbEntities1()) { var userIds = await db.Chats.Where(i => i.Id == aliasId).Select(i => i.UserId).ToListAsync(); SaveNotification(senderUserId, userIds, (int)type, aliasId, null); } }
public void setChatCommentStatus(int userId, int roomId) { using (var db = new groubel_dbEntities1()) { var items = db.Notifications.Where(i => i.ReciverUserId == userId && i.AliasId == roomId && !i.SeenStatus).ToList(); SetSeen(items); } }
public List <string> GetInterestsByName(string name) { using (var db = new groubel_dbEntities1()) { var dt = db.Interests.Where(i => i.Name.StartsWith(name)).Select(i => i.Name).ToList(); return(dt); } }
private async void NotifyCmmentedOrLikedOnYourPost(int senderUserId, NotificationTypeEnum type, int aliasId) { using (var db = new groubel_dbEntities1()) { var userIds = await db.Posts.Where(i => i.Id == aliasId).Select(i => i.UserId).ToListAsync(); SaveNotification(senderUserId, userIds, (int)type, aliasId, null); } }
public int GetChatCommentStatus(int userId, int roomId) { using (var db = new groubel_dbEntities1()) { var item = db.Notifications.Count(i => i.ReciverUserId == userId && i.AliasId == roomId && !i.SeenStatus); return(item); } }