Пример #1
0
        protected void CalculateTotalPointForEvent()
        {
            using (var db = new Ws_DataContext())
            {
                //Get All events
                var events = db.Events.Where(x => x.IsOpen == true && x.Status == true).ToList();
                foreach (var item in events)
                {
                    var totalPoints = item.TotalPoint;
                    //Get Current Pont;
                    var currentPoints = 0;
                    //Get All donations in a event.
                    var donationList = db.Donations.Where(x => x.EventId == item.EventID);
                    foreach (var donation in donationList)
                    {
                        currentPoints = currentPoints + (int)donation.DonatedMoney / 10000;
                    }
                    var numberOfLike = db.LikeEvents.Where(x => x.EventId == item.EventID);
                    currentPoints = currentPoints + numberOfLike.Count();

                    //  Minus 10 Point everyday if no more 5 points in a day
                    if ((currentPoints - totalPoints) < 5 && totalPoints > 50)
                    {
                        currentPoints = currentPoints - 5;
                    }

                    //Save changes total points for each event
                    item.TotalPoint = currentPoints;
                    db.Events.AddOrUpdate(item);
                }
                db.SaveChanges();
            }
        }
Пример #2
0
        protected void CalculatePointsForUser()
        {
            using (var db = new Ws_DataContext())
            {
                var listUser = db.User_Information.Where(x => x.Ws_User.IsActive == true);

                foreach (var item in listUser)
                {
                    var totalPoint    = item.Point;
                    var createdThread = db.Threads.Where(x => x.UserId == item.UserID).Count();
                    totalPoint = createdThread * 10;

                    var donation = db.Donations.Where(x => x.UserId == item.UserID).Select(x => x.DonatedMoney);
                    if (donation != null)
                    {
                        foreach (var total in donation)
                        {
                            totalPoint += ((int)total / 10000);
                        }
                        item.Point = totalPoint;
                        db.User_Information.AddOrUpdate(item);
                    }
                }
                db.SaveChanges();
            }
        }
Пример #3
0
        public ActionResult UpdateUserAvatar(HttpPostedFileBase Image)
        {
            try
            {
                string ImageName = WsConstant.randomString() + Path.GetExtension(Image.FileName).ToLower();
                string path      = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/Content/Upload"), ImageName);
                Image.SaveAs(path);
                string newName = "/Content/Upload/" + ImageName;
                //Delete Current Image in Upload folder.

                //Update Current Image to UserInformation
                using (var db = new UserDAL())
                {
                    var userId   = db.GetUserByUserNameOrEmail(User.Identity.Name).UserID;
                    var userInfo = db.GetUserInformation(userId);
                    userInfo.ProfileImage = newName;
                    using (var context = new Ws_DataContext())
                    {
                        context.User_Information.AddOrUpdate(userInfo);
                        context.SaveChanges();
                    }
                    return(Redirect("/#/Profile/" + User.Identity.Name));
                }
            }
            catch (Exception)
            {
                return(Redirect("/#/Error"));
            }
        }
Пример #4
0
 protected void CalculateTotalPointForOrg()
 {
     using (var db = new Ws_DataContext())
     {
         //Get ALl Organizations.
         var listOrg = db.Organizations.Where(x => x.IsActive == true);
         foreach (var item in listOrg)
         {
             int currentPoints = item.Point;
             //Get All Event of each Orgs.
             var donationList = db.Donations.Where(x => x.Event.Organization.OrganizationId == item.OrganizationId).Select(x => x.DonatedMoney);
             if (donationList != null)
             {
                 foreach (var donation in donationList)
                 {
                     currentPoints = (int)donation / 10000;
                 }
                 //Update new Point.
                 item.Point = currentPoints;
                 db.Organizations.AddOrUpdate(item);
             }
         }
         db.SaveChanges();
     }
 }
Пример #5
0
 public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
 {
     try {
         using (var db = new Ws_DataContext())
         {
             var item        = db.Connection.FirstOrDefault(x => x.ConnectionString == Context.ConnectionId);
             var connectItem = db.PublicRooms.FirstOrDefault(x => x.ConnectionId == item.ConnectionId);
             if (connectItem != null)
             {
                 db.PublicRooms.Remove(connectItem);
                 db.SaveChanges();
             }
             if (item != null)
             {
                 db.Connection.Remove(item);
                 db.SaveChanges();
             }
         }
     }catch (Exception ex)
     {
     }
     return(base.OnDisconnected(stopCalled));
 }
Пример #6
0
 protected void DetechExpiredEvent()
 {
     using (var db = new Ws_DataContext())
     {
         //Get All events
         var events = db.Events.Where(x => x.IsOpen == true && x.Status == true).ToList();
         foreach (var item in events)
         {
             if (DateTime.Compare(DateTime.Now, item.Finish_Date) > 0)
             {
                 item.IsOpen = false;
                 db.Events.AddOrUpdate(item);
             }
         }
         db.SaveChanges();
     }
 }
Пример #7
0
 //Join chat room
 public void JoinRoom(int eventId)
 {
     using (var db = new Ws_DataContext())
     {
         var item = db.Connection.OrderByDescending(x => x.ConnectionString.Equals(Context.ConnectionId)).FirstOrDefault();
         if (item != null)
         {
             var userdetails = new PublicRoom()
             {
                 EventId      = eventId,
                 ConnectionId = item.ConnectionId
             };
             db.PublicRooms.Add(userdetails);
             db.SaveChanges();
         }
     }
 }
Пример #8
0
        public void SendMessageInRoom(int eventId, string mess)
        {
            MessageBasicInfoDTO returnedMessage = new MessageBasicInfoDTO();
            int UserId = 0;

            using (var db = new UserDAL())
            {
                UserId = db.GetUserByUserNameOrEmail(HttpContext.Current.User.Identity.Name).UserID;
            }
            string currentConnection = Context.ConnectionId;

            using (var db = new Ws_DataContext())
            {
                //Add mesage to db
                PublicMessageDetail newMessage = new PublicMessageDetail();
                newMessage.UserId      = UserId;
                newMessage.EventId     = eventId;
                newMessage.Message     = mess;
                newMessage.CreatedDate = DateTime.Now;
                newMessage.Status      = true;
                newMessage             = db.PublicMessageDetails.Add(newMessage);
                db.SaveChanges();
                //Set retured message
                returnedMessage.CreatorImage = db.User_Information.SingleOrDefault(x => x.UserID == newMessage.UserId).ProfileImage;
                returnedMessage.Content      = newMessage.Message;
                returnedMessage.CreatedDate  = newMessage.CreatedDate.ToString("H:mm dd/MM");
                returnedMessage.CreatorName  = db.Ws_User.SingleOrDefault(x => x.UserID == newMessage.UserId).UserName;
            }
            //Send it to ALL clients is connecting this room
            using (var db = new Ws_DataContext())
            {
                var list = db.PublicRooms.Where(x => x.EventId == eventId)
                           .Select(x => x.ConnectionRoom.ConnectionString).ToList();
                foreach (var item in list)
                {
                    if (!item.Equals(currentConnection))
                    {
                        Clients.Client(item).ReceivePublicMessage(returnedMessage);
                    }
                }
            }
            //Send it to caller
            Clients.Caller.ReceivePublicMessage(returnedMessage);
        }
Пример #9
0
        public void Connect()
        {
            ;
            var ConnectionString = Context.ConnectionId;
            int UserId           = 0;

            using (var db = new UserDAL())
            {
                UserId = db.GetUserByUserNameOrEmail(HttpContext.Current.User.Identity.Name).UserID;
            }
            //Check User is connected or not
            using (var db = new Ws_DataContext())
            {
                Connection UserDetail = new Connection
                {
                    UserId           = UserId,
                    ConnectionString = ConnectionString
                };
                db.Connection.Add(UserDetail);
                db.SaveChanges();
            }
        }
Пример #10
0
        public void SendMessage(int ConservationId, string Message)
        {
            int UserId = 0;

            using (var db = new UserDAL())
            {
                UserId = db.GetUserByUserNameOrEmail(HttpContext.Current.User.Identity.Name).UserID;
            }
            Message             newMess = new Message();
            MessageBasicInfoDTO info    = new MessageBasicInfoDTO();

            using (var db = new Ws_DataContext())
            {
                newMess.ConservationId = ConservationId;
                newMess.Content        = Message;
                newMess.CreatedDate    = DateTime.Now;
                newMess.Status         = true;
                newMess.UserId         = UserId;
                newMess = db.Message.Add(newMess);
                db.SaveChanges();
                using (var dbCurrent = new ConservationDAL())
                {
                    Conversation current = dbCurrent.GetConservationById(ConservationId);
                    current.UpdatedTime = DateTime.Now;
                    if (UserId == current.CreatorId)
                    {
                        current.IsReceiverRead = false;
                    }
                    if (UserId == current.ReceiverId)
                    {
                        current.IsCreatorRead = false;
                    }
                    dbCurrent.UpdateTime(current);
                }
                var GetInfo = (from p in db.Message
                               where p.MessageId == newMess.MessageId
                               select new { p.User.UserName, p.User.User_Information.ProfileImage }).SingleOrDefault();
                info.CreatorImage = GetInfo.ProfileImage;
                info.CreatorName  = GetInfo.UserName;
                info.Content      = newMess.Content;
            }


            if (DateTime.Now.Subtract(newMess.CreatedDate).Hours <= 24 && DateTime.Now.Subtract(newMess.CreatedDate).Hours >= 1)
            {
                info.CreatedDate = DateTime.Now.Subtract(newMess.CreatedDate).Hours + " Tiếng cách đây";
            }
            else if (DateTime.Now.Subtract(newMess.CreatedDate).Hours > 24)
            {
                info.CreatedDate = newMess.CreatedDate.ToString("H:mm:ss dd/MM/yy");
            }
            else
            {
                info.CreatedDate = DateTime.Now.Subtract(newMess.CreatedDate).Minutes + " Phút cách đây";
            }
            //Get list connection Id specify by UserId
            List <string> ListConnetion = new List <string>();

            using (var db = new Ws_DataContext())
            {
                //Get Id of Receiver
                var Id = (from p in db.Conversation
                          where p.ConservationId == ConservationId
                          select new { p.CreatorId, p.ReceiverId }).SingleOrDefault();
                if (newMess.UserId == Id.CreatorId)
                {
                    ListConnetion = db.Connection.Where(x => x.UserId == Id.ReceiverId).Select(x => x.ConnectionString).ToList();
                }
                else
                {
                    ListConnetion = db.Connection.Where(x => x.UserId == Id.CreatorId).Select(x => x.ConnectionString).ToList();
                }
                if (ListConnetion.Count() != 0)
                {
                    var currentConversation = db.Conversation.Where(x => x.ConservationId == ConservationId).SingleOrDefault();
                    if (UserId == currentConversation.CreatorId)
                    {
                        currentConversation.IsReceiverRead = true;
                    }
                    if (UserId == currentConversation.ReceiverId)
                    {
                        currentConversation.IsCreatorRead = true;
                    }
                    db.Conversation.AddOrUpdate(currentConversation);
                    db.SaveChanges();
                }
            }
            //Send it to caller
            Clients.Caller.ReceiverMessage(info);
            //Send new Message to Receiver if Connecting

            foreach (var item in ListConnetion)
            {
                Clients.Client(item).NewMessageNotification("Bạn đã nhận 1 tin nhắn mới, xem tại Tin nhắn!");
                Clients.Client(item).ReceiverMessage(info);
            }
        }