예제 #1
0
 public void SendToUser(string username,string conversationId,string iamId,string friendId, string message)
 {
     if (message != null || message != "")
     {
         User iam;
         var msg = new Message()
              {
                  Text = message,
                  Time = DateTime.Now,
                  UserId = Convert.ToInt32(iamId),
                  Ip = HttpContext.Current.Request.UserHostAddress,
                  ConversationId = Convert.ToInt32(conversationId)
              };
         using (DatabaseContext db = new DatabaseContext())
         {
             iam = db.Users.Include("Profile").Where(u => u.Id.ToString() == iamId).FirstOrDefault();
             db.Messages.Add(msg);
             db.SaveChanges();
         }
         var msgToSend = new SendMessageModel()
         {
            AvatarPath=iam.Profile.AvatarPath,
            Text=message,
            Time=msg.Time,
            UserId=iam.Id ,
            FullName=iam.FullName
         };
         Clients.User(username).newMessage(msgToSend);
     }
 }
예제 #2
0
 public static void AddToFriends(int? id,string name)
 {
     using(DatabaseContext db = new DatabaseContext())
     {
         var iam = db.Users.Include("Profile").Where(u => u.Login == name).FirstOrDefault();
         var myfriend = db.Users.Include("Profile").Where(u => u.Id == id).FirstOrDefault();
         var request = db.Requests.Where(r => r.From == myfriend.Id && r.To == iam.Id).FirstOrDefault();
         db.Requests.Remove(request);
         if (myfriend.Profile.FriendsList == null)
         {
             myfriend.Profile.FriendsList = iam.Id.ToString();
         }
         else
         {
             myfriend.Profile.FriendsList += " " + iam.Id.ToString();
         }
         if (iam.Profile.FriendsList == null)
         {
             iam.Profile.FriendsList = myfriend.Id.ToString();
         }
         else
         {
             iam.Profile.FriendsList += " " + myfriend.Id.ToString();
         }
         db.SaveChanges();
     }
 }
 public override bool IsUserInRole(string username, string roleName)
 {
     bool outputResult = false;
     // Находим пользователя
     using (DatabaseContext db = new DatabaseContext())
     {
         try
         {
             // Получаем пользователя
             User user = db.Users.Where(u => u.Login == username).FirstOrDefault();
             if (user != null)
             {
                 //сравниваем
                 if (user.Role == roleName)
                 {
                     outputResult = true;
                 }
             }
         }
         catch
         {
             outputResult = false;
         }
     }
     return outputResult;
 }
예제 #4
0
 public static int CheckCountOutgoingRequest(string name)
 {
     int count = 0;
     using (DatabaseContext db = new DatabaseContext())
     {
         var user = db.Users.Where(u => u.Login == name).FirstOrDefault();
         var req = db.Requests.Where(r => r.From == user.Id).ToList();
         count = req.Count();
     }
     return count;
 }
예제 #5
0
 public static void AddSession(string name)
 {
     using(DatabaseContext db =new DatabaseContext())
     {
         var user = db.Users.Where(u => u.Login == name).FirstOrDefault();
         if (user != null)
         {
             user.LastDate = DateTime.Now;
             db.SaveChanges();
         }
     }
 }
예제 #6
0
        public static string isOnline(int id)
        {
            using(DatabaseContext db = new DatabaseContext())
            {
                var user = db.Users.Where(u => u.Id == id).FirstOrDefault();
                if(user.LastDate.Year==DateTime.Now.Year&& user.LastDate.Month==DateTime.Now.Month&&user.LastDate.Day==DateTime.Now.Day)
                {
                    TimeSpan time = DateTime.Now - user.LastDate;
                    if(time.Hours==0 && time.Minutes<10)
                    {
                        return "Online";
                    }
                }

                return "";
            }
        }
예제 #7
0
 public static void EditProfile(EditProfileViewModel model,string userLogin)
 {
     using(DatabaseContext db = new DatabaseContext())
     {
         var user=db.Users.Where(u => u.Login == userLogin).FirstOrDefault();
         var profile=db.Profiles.Where(p=>p.Id==user.Id).FirstOrDefault();
         if(user!=null)
         {
             if (model.AvatarPath != null)
             { profile.AvatarPath = model.AvatarPath; }
             profile.Chair = model.Chair;
             profile.Country = model.Country;
             profile.Skype = model.Skype;
             profile.Phone = model.Phone;
             profile.Group = model.Group;
             db.SaveChanges();
         }
     }
 }
예제 #8
0
 public static bool Check(string name,int? userId)
 {
     using (DatabaseContext db = new DatabaseContext())
     {
         var user = db.Users.Include("Profile").Where(u => u.Login == name).FirstOrDefault();
         if (user != null)
         {
             var friendsList = Parsing(user.Profile.FriendsList);
             var result =friendsList.Where(friend => friend == userId.ToString()).FirstOrDefault();
             if(result!=null)
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }
     }
     return false;
 }
 public override string[] GetRolesForUser(string login)
 {
     string[] role = new string[] { };
     using (DatabaseContext db = new DatabaseContext())
     {
         try
         {
             // Получаем пользователя
             User user = db.Users.Where(u => u.Login == login).FirstOrDefault();
             if (user != null)
             {
               role = new string[] { user.Role };
             }
         }
         catch
         {
             role = new string[] { };
         }
     }
     return role;
 }
        public ActionResult Conversations()
        {
            var iam=db.Users.Where(u=>u.Login==User.Identity.Name).FirstOrDefault();
            User friend;
            Message msg;

            var conversations = db.Conversations.Where(con => con.UserOne == iam.Id || con.UserTwo == iam.Id);
            List<ConversationViewModel> model = new List<ConversationViewModel>();
            foreach (var item in conversations)
            {
                using (DatabaseContext db1 = new DatabaseContext())
                {
                    msg = db1.Messages.Where(m => m.ConversationId == item.Id).ToList().LastOrDefault();
                    if (msg == null)
                    {
                        msg = new Message() { Text = " " };
                    }
                    if (iam.Id == item.UserOne)
                    {
                        friend = db1.Users.Include("Profile").Where(u => u.Id == item.UserTwo).FirstOrDefault();
                    }
                    else
                    {
                        friend = db1.Users.Include("Profile").Where(u => u.Id == item.UserOne).FirstOrDefault();
                    }

                    model.Add(new ConversationViewModel()
                    {
                        Id=item.Id,
                        Iam = iam,
                        Friend = friend,
                        Messages = new List<Message>() { msg }
                    });
                }
            }
            return View(model);
        }
예제 #11
0
 public static User UserLogin(string login, string password, string ip)
 {
     MD5 md5 = new MD5CryptoServiceProvider();
     string pass = password;
     byte[] checkSum = md5.ComputeHash(Encoding.UTF8.GetBytes(pass));
     string result = BitConverter.ToString(checkSum).Replace("-", String.Empty);
     using(DatabaseContext db = new DatabaseContext())
     {
         var user = db.Users.Where(u => u.Login == login).FirstOrDefault();
         if(user!=null && user.HashPassword==result)
         {
             return user;
         }
     }
     return null;
 }
예제 #12
0
        public static bool UserCreate(RegisterViewModel model,ref string role)
        {
            if (model.Login == "admin123")
                role = "admin";
            else role = "user";
            if (MailMessanger.SendMessage("*****@*****.**", model.Email, "*****@*****.**","V80984342375"))
            {
                MD5 md5 = new MD5CryptoServiceProvider();
                string pass = model.Password;
                byte[] checkSum = md5.ComputeHash(Encoding.UTF8.GetBytes(pass));
                string result = BitConverter.ToString(checkSum).Replace("-", String.Empty);

                var user = new User() { FullName = model.SecondName+" "+model.FirstName+" "+model.ThirdName
                    , HashPassword = result
                    , Login = model.Login
                    , Role = role
                    , Email = model.Email ,
                    LastDate=DateTime.Now
                };
                using (DatabaseContext db = new DatabaseContext())
                {
                    db.Users.Add(user);
                    db.SaveChanges();
                    db.Profiles.Add(new Profile() {
                        Id = user.Id, FirstName = model.FirstName,
                        SecondName = model.SecondName,
                        ThirdName = model.ThirdName,
                        Date=model.Date,
                        Gender=model.Gender,
                        AvatarPath = "/Images/noavatar.png"

                    });
                    db.SaveChanges();
                }
                return true;
            }
            else
            {
                return false;
            }
        }
예제 #13
0
 public static bool CheckOutgoingRequest(string name,int To)
 {
     using(DatabaseContext db = new DatabaseContext())
     {
         var iam=db.Users.Where(u=>u.Login==name).FirstOrDefault();
         if(iam!=null)
         {
             var request = db.Requests.Where(r => r.To == To & r.From == iam.Id).FirstOrDefault();
             if(request==null)
             {
                 return false;
             }
             else
             {
                 return true;
             }
         }
     }
     return true;
 }
예제 #14
0
        public static List<User> GetFriends(string friendList)
        {
            var list = Parsing(friendList);
            List<User> myfriends = new List<User>();

                foreach (var friendId in list)
                {
                    if (friendId != "")
                    {
                        using (DatabaseContext db = new DatabaseContext())
                        {
                            var Id = Convert.ToInt32(friendId);
                            var friend = db.Users.Include("Profile").Where(u => u.Id == Id).FirstOrDefault();
                            myfriends.Add(friend);
                        }
                    }
                }

            return myfriends;
        }
예제 #15
0
        public static void DeleteFriend(int? id,string name)
        {
            using(DatabaseContext db = new DatabaseContext())
            {
                var user = db.Users.Include("Profile").Where(u => u.Id == id).FirstOrDefault();
                var iam = db.Users.Include("Profile").Where(u => u.Login == name).FirstOrDefault();

                var userlist = Parsing(user.Profile.FriendsList);
                user.Profile.FriendsList = null;
                for(int i=0;i<userlist.Count();i++)
                {
                    if(userlist[i]!=iam.Id.ToString())
                    {
                        if(user.Profile.FriendsList==null)
                        {
                            user.Profile.FriendsList = userlist[i];
                        }
                        else
                        {
                            user.Profile.FriendsList =" "+ userlist[i];
                        }
                    }
                }

                var iamlist = Parsing(iam.Profile.FriendsList);
                iam.Profile.FriendsList = null;
                for (int i = 0; i < iamlist.Count(); i++)
                {
                    if (iamlist[i] != user.Id.ToString())
                    {
                        if (iam.Profile.FriendsList == null)
                        {
                            iam.Profile.FriendsList = iamlist[i];
                        }
                        else
                        {
                            iam.Profile.FriendsList = " " + iamlist[i];
                        }
                    }
                }
                db.SaveChanges();
            }
        }
예제 #16
0
 public static int Count(string name)
 {
     if (name != null)
     {
         using (DatabaseContext db = new DatabaseContext())
         {
             var user = db.Users.Include("Profile").Where(u => u.Login == name).FirstOrDefault();
             if (user != null)
             {
                 var friendsList = Parsing(user.Profile.FriendsList);
                 return friendsList.Count();
             }
         }
     }
     return 0;
 }
예제 #17
0
        public static List<User> SearchUsers(string searchString)
        {
            List<User> result = new List<User>();
            string[] massInStrings = searchString.Split(' ');

            using (DatabaseContext db = new DatabaseContext())
            {
                foreach (var str in massInStrings)
                {
                    var users = db.Users.Include("Profile").Where(u => u.Profile.FirstName==str||u.Profile.SecondName==str||u.Profile.ThirdName==str).ToList();
                    if (users != null)
                    {
                       result.AddRange(users);
                    }
                }
            }
            result.Distinct();

            return result;
        }
예제 #18
0
        public ActionResult Requests()
        {
            var iam=db.Users.Include("Profile").Where(u=>u.Login==User.Identity.Name).FirstOrDefault();
            var requestsList = db.Requests.Where(r => r.To == iam.Id && r.Description == "friendadd");
            List<RequestModel> model= new List<RequestModel>();

            foreach(var item in requestsList)
            {
                using (DatabaseContext dbT = new DatabaseContext())
                {
                    var userFrom = dbT.Users.Include("Profile").Where(u => u.Id == item.From).FirstOrDefault();
                    model.Add(new RequestModel()
                    {
                        Id = item.Id,
                        From = userFrom,
                        To = iam
                    });
                }
            }
            return View(model);
        }