Beispiel #1
0
        public static ChatUserDetail GetUser(string userName, string email, string id)
        {
            using (var dc = new SolutionsOnlineSellingEntities())
            {
                var item = dc.ChatUserDetail.FirstOrDefault(x => x.EmailID == email);
                if (item != null)
                {
                    dc.ChatUserDetail.Remove(item);
                    dc.SaveChanges();
                }

                var Users = dc.ChatUserDetail.ToList();
                if (Users.Where(x => x.EmailID == email).ToList().Count == 0)
                {
                    var userdetails = new ChatUserDetail
                    {
                        ConnectionId = id,
                        UserName     = userName,
                        EmailID      = email
                    };
                    dc.ChatUserDetail.Add(userdetails);
                    dc.SaveChanges();
                }

                return(dc.ChatUserDetail.FirstOrDefault(x => x.EmailID == email));
            }
        }
Beispiel #2
0
        public void Connect(string userName, string email)
        {
            emailIDLoaded = email;
            var id     = Context.ConnectionId;
            var uow    = new XpoDAO().ProvideUnitOfWork();
            var result = new XPCollection <ChatUserDetail>(uow);
            var item   = result.FirstOrDefault(x => x.EmailID == email);

            if (item != null)
            {
                uow.Delete(item);
                //result.Remove(item);
                uow.CommitChanges();
                // Disconnect
                Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.UserName);
            }
            var Users = result;

            if (Users.Where(x => x.EmailID == email).ToList().Count == 0)
            {
                var userdetails = new ChatUserDetail(uow)
                {
                    ConnectionId = id,
                    UserName     = userName,
                    EmailID      = email
                };
                uow.CommitChanges();;

                // send to caller
                var connectedUsers = result;
                var CurrentMessage = new XPCollection <ChatMessageDetail>(uow);// dc.ChatMessageDetails.ToList();
                List <TempChatMessageDetail> lstTempChatMessageDetail = new List <TempChatMessageDetail>();
                foreach (var currentMessage in CurrentMessage)
                {
                    lstTempChatMessageDetail.Add(new TempChatMessageDetail()
                    {
                        EmailID  = currentMessage.EmailID,
                        Message  = currentMessage.Message,
                        UserName = currentMessage.UserName
                    });
                }


                List <TempChatUserDetail> lstTempChatUserDetail = new List <TempChatUserDetail>();
                foreach (var user in connectedUsers)
                {
                    var tempChatUserDetail = new TempChatUserDetail()
                    {
                        ConnectionId = user.ConnectionId,
                        EmailID      = user.EmailID,
                        UserName     = user.UserName
                    };
                    lstTempChatUserDetail.Add(tempChatUserDetail);
                }
                Clients.Caller.onConnected(id, userName, lstTempChatUserDetail, lstTempChatMessageDetail);//connectedUsers
            }

            // send to all except caller client
            Clients.AllExcept(id).onNewUserConnected(id, userName, email);
        }
Beispiel #3
0
        public void Connect(string userName, string email)
        {
            emailIDLoaded = email;
            var id = Context.ConnectionId;

            using (Service.EntityModel.DuAnYTeEntities dc = new Service.EntityModel.DuAnYTeEntities())
            {
                var thanhvien = dc.ThanhViens.FirstOrDefault(x => x.Email == email);
                var item      = dc.ChatUserDetails.FirstOrDefault(x => x.id_ThanhVien == thanhvien.id);
                //var k = dc.ThanhViens.FirstOrDefault(x => x.Email == email);
                if (item != null)
                {
                    dc.ChatUserDetails.Remove(item);
                    dc.SaveChanges();

                    // Disconnect
                    Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.id_ThanhVien);
                }

                var Users = dc.ChatUserDetails.ToList();
                if (Users.Where(x => x.id_ThanhVien == thanhvien.id).ToList().Count == 0)
                {
                    var userdetails = new ChatUserDetail
                    {
                        ConnectionId = id,
                        id_ThanhVien = thanhvien.id
                    };
                    dc.ChatUserDetails.Add(userdetails);
                    dc.SaveChanges();

                    // send to caller
                    var connectedUsers = dc.ChatUserDetails.ToList();
                    //var CurrentMessage = dc.ChatMessageDetails.ToList();
                    //Clients.Caller.onConnected(id, userName, connectedUsers, CurrentMessage);
                    List <ChatUserDetail> final = new List <ChatUserDetail>();
                    foreach (var itemtemp in connectedUsers)
                    {
                        ChatUserDetail temp = new ChatUserDetail();
                        temp.id           = itemtemp.id;
                        temp.id_ThanhVien = itemtemp.id_ThanhVien;
                        temp.ConnectionId = itemtemp.ConnectionId;
                        final.Add(temp);
                    }
                    //Clients.Caller.onConnected(id, userName, connectedUsers);
                    Clients.Caller.onConnected(id, userName, final);
                }

                // send to all except caller client
                Clients.AllExcept(id).onNewUserConnected(id, userName, email);
            }
        }
Beispiel #4
0
        //private UserContext db = new UserContext();
        public void Connect(string userName, string email)
        {
            if (Context.User.Identity.IsAuthenticated)
            {
                emailIDLoaded = email;
                var Conid  = Context.ConnectionId;
                var Authid = Context.User.Identity.GetUserId().ToString();
                using (UserContext dc = new UserContext())
                {
                    var item = dc.ChatUserDetail.FirstOrDefault(x => x.EmailID == email);
                    if (item != null)
                    {
                        dc.ChatUserDetail.Remove(item);
                        dc.SaveChanges();

                        // Disconnect
                        Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.FullName);
                    }

                    var Users = dc.ChatUserDetail.ToList();
                    if (Users.Where(x => x.EmailID == email).ToList().Count == 0)
                    {
                        var userdetails = new ChatUserDetail
                        {
                            ConnectionId = Conid,
                            AuthId       = Authid,
                            FullName     = userName,
                            EmailID      = email
                        };
                        dc.ChatUserDetail.Add(userdetails);
                        dc.SaveChanges();

                        // send to caller
                        var connectedUsers = dc.ChatUserDetail.ToList();
                        var CurrentMessage = dc.ChatAllMessageDetail.ToList();
                        Clients.Caller.onConnected(Conid, userName, connectedUsers, CurrentMessage);
                    }

                    // send to all except caller client
                    Clients.AllExcept(Conid).onNewUserConnected(Conid, userName, email);
                }
            }
            else
            {
                if (Context.User.Identity.Name == null)
                {
                    OnDisconnected(true);
                }
            }
        }
        public void Connect(string userName, string email)
        {
            emailIDLoaded = email;
            var id = Context.ConnectionId;

            using (ChatDbContext dbContext = new ChatDbContext(connectionString))
            {
                var connectedChatUser = dbContext.ChatUserDetails.FirstOrDefault(x => x.EmailAddress == email);
                if (connectedChatUser != null)
                {
                    dbContext.ChatUserDetails.Remove(connectedChatUser);
                    dbContext.SaveChanges();

                    // Disconnect the already existing user with same email id
                    Clients.All.onUserDisconnectedExisting(connectedChatUser.ConnectionId, connectedChatUser.UserName);
                }

                var Users = dbContext.ChatUserDetails.ToList();
                if (Users.Where(x => x.EmailAddress == email).ToList().Count == 0)
                {
                    var userdetails = new ChatUserDetail
                    {
                        ConnectionId = id,
                        UserName     = userName,
                        EmailAddress = email
                    };
                    dbContext.ChatUserDetails.Add(userdetails);
                    dbContext.SaveChanges();

                    // send to caller
                    var connectedUsers = dbContext.ChatUserDetails.ToList();
                    var CurrentMessage = dbContext.ChatMessageDetails.ToList();
                    //Establish connect with message, user name and connected users list
                    Clients.Caller.onConnected(id, userName, connectedUsers, CurrentMessage);
                }

                // send to all except caller client
                Clients.AllExcept(id).onNewUserConnected(id, userName, email);
            }
        }
Beispiel #6
0
        public void Connect()
        {
            string UserId   = System.Web.HttpContext.Current.User.Identity.GetUserId();
            string UserName = System.Web.HttpContext.Current.User.Identity.GetUserName();
            var    userInfo = _userInfoServices.GetUserInfobyUser(UserId);

            var id   = Context.ConnectionId;
            var item = _chatUserDetailServices.GetChatUserDetailByUser(UserId);

            if (item != null)
            {
                _chatUserDetailServices.DeleteChatUserDetail(item);
                // Disconnect
                Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.UserId);
            }

            var Users = _chatUserDetailServices.GetAllChatUserDetail();

            if (Users.Where(x => x.UserId == UserId).ToList().Count == 0)
            {
                var userdetails = new ChatUserDetail
                {
                    Id           = Guid.NewGuid(),
                    ConnectionId = id,
                    UserId       = UserId,
                    UserName     = UserName
                };
                _chatUserDetailServices.InserChatUserDetail(userdetails);
            }
            // send to caller
            var connectedUsers = _chatUserDetailServices.GetAllChatUserDetailView();
            var CurrentMessage = _chatMessageDetailServices.GetAllChatMessageDetailView().OrderBy(c => c.CreateDate);

            Clients.Caller.onConnected(id, UserId, UserName, connectedUsers, CurrentMessage);

            // send to all except caller client
            Clients.AllExcept(id).onNewUserConnected(id, UserId, UserName, userInfo.ImageRank, userInfo.TextColor);
        }
Beispiel #7
0
 public void DeleteChatUserDetail(ChatUserDetail model)
 {
     _unitOfWork.ChatUserDetailRepository.Delete(model);
 }
Beispiel #8
0
 public void UpdateChatUserDetail(ChatUserDetail model)
 {
     _unitOfWork.ChatUserDetailRepository.Update(model);
 }
Beispiel #9
0
 public void InserChatUserDetail(ChatUserDetail model)
 {
     _unitOfWork.ChatUserDetailRepository.Insert(model);
 }
Beispiel #10
0
        public void Connect(string userName, string email, Microsoft.AspNet.SignalR.Hubs.IHubCallerConnectionContext <dynamic> Clients2, string id)
        {
            emailIDLoaded = email;
            //var id = Context.ConnectionId;
            //using (DB_102707_zonaflEntities dc = new DB_102707_zonaflEntities())
            //{
            ChatUserDetailRepository <ChatUserDetail> chatud = new ChatUserDetailRepository <ChatUserDetail>();
            OfferRepository <Offer>           offerrepo      = new OfferRepository <Offer>();
            OfferUserRepository <OfferUser>   offeurrepo     = new OfferUserRepository <OfferUser>();
            OfferUserRepository <AspNetUsers> userrepo       = new OfferUserRepository <AspNetUsers>();
            ChatUserDetail item = chatud.GetList(new { EmailID = email }).FirstOrDefault();

            //ChatUserDetail item=chatud.GetList("where EmailID='" + email+"'").FirstOrDefault();
            //var item = dc.ChatUserDetails.FirstOrDefault(x => x.EmailID == email);
            if (item != null)
            {
                chatud.Delete(item.Id);
                //dc.ChatUserDetails.Remove(item);
                //dc.SaveChanges();

                // Disconnect
                Clients2.All.onUserDisconnectedExisting(item.ConnectionId, item.UserName);
            }



            AspNetUsers user = userrepo.GtUserByEmail(email);

            if (chatud.GetList(new { EmailId = user.Email }).FirstOrDefault() == null)
            {
                var userdetails = new ChatUserDetail
                {
                    ConnectionId = id,
                    UserName     = userName,
                    EmailID      = email
                };
                chatud.Insert(userdetails);
            }

            List <ChatUserDetail> Users = new List <ChatUserDetail>();

            if (!user.Freelance)
            {
                List <Offer> offertsuser = offerrepo.GetOffertsByContractorEmail(email);
                string       valueoffer  = string.Join(",", offertsuser.Select(e => e.Id).ToArray());
                Users = chatud.GetUsersByOfferContractorid(valueoffer);
            }
            else
            {
                List <OfferUser> offertsuser = offeurrepo.GetOffersUser(user.Id);
                string           valueoffer  = string.Join(",", offertsuser.Select(e => e.IdOffer).ToArray());
                Users = chatud.GetContractorsByOffers(valueoffer);
            }

            //var Users = chatud.GetList().ToList();
            if (Users.Where(x => x.EmailID == email).ToList().Count == 0)
            {
                //var userdetails = new ChatUserDetail
                //{
                //    ConnectionId = id,
                //    UserName = userName,
                //    EmailID = email
                //};
                //chatud.Insert(userdetails);
                //dc.SaveChanges();

                // send to caller
                var connectedUsers = chatud.GetList();
                ChatMessageDetailRepository <ChatMessageDetail> chatmd = new ChatMessageDetailRepository <ChatMessageDetail>();
                var CurrentMessage = chatmd.GetList();//dc.ChatMessageDetails.ToList();
                Clients2.Caller.onConnected(id, userName, connectedUsers, CurrentMessage);
                // }

                // send to all except caller client
                Clients2.AllExcept(id).onNewUserConnected(id, userName, email);
            }
        }