Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
            }
        }
Ejemplo n.º 8
0
 public int Count()
 {
     using (var db = new groubel_dbEntities1())
     {
         return(db.Users.Count());
     }
 }
Ejemplo n.º 9
0
 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);
     }
 }
Ejemplo n.º 10
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);
            }
        }
Ejemplo n.º 11
0
 public int GetSaveStatus(int postId, int userId)
 {
     using (var db = new groubel_dbEntities1())
     {
         return(db.PostSaves.Count(i => i.PostId == postId && i.UserId == userId));
     }
 }
Ejemplo n.º 12
0
        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();
            }
        }
Ejemplo n.º 13
0
        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);
            }
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 15
0
        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);
            }
        }
Ejemplo n.º 16
0
        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();
            }
        }
Ejemplo n.º 17
0
        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("");
        }
Ejemplo n.º 18
0
        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);
            }
        }
Ejemplo n.º 19
0
        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);
            }
        }
Ejemplo n.º 20
0
        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);
            }
        }
Ejemplo n.º 21
0
        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));
            }
        }
Ejemplo n.º 22
0
        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);
            }
        }
Ejemplo n.º 23
0
        public bool CheckEmail(string email)
        {
            using (var db = new groubel_dbEntities1())
            {
                var item = db.Users.FirstOrDefault(i => i.Email == email);

                return(item != null);
            }
        }
Ejemplo n.º 24
0
        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);
            }
        }
Ejemplo n.º 25
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);
            }
        }
Ejemplo n.º 26
0
        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);
            }
        }
Ejemplo n.º 27
0
        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);
            }
        }
Ejemplo n.º 28
0
        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);
            }
        }
Ejemplo n.º 29
0
        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);
            }
        }
Ejemplo n.º 30
0
        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);
            }
        }