Beispiel #1
0
 public Message GetMessageById(int id)
 {
     using (var Context = new BMSContext())
     {
         return(Context.Messages.Where(m => m.Id == id).FirstOrDefault());
     }
 }
 public User GetUserByUserName(string Username)
 {
     using (var Context = new BMSContext())
     {
         return(Context.Users.Where(u => u.Username == Username).FirstOrDefault());
     }
 }
Beispiel #3
0
 public List <Message> GetAllReceivedMessagesForUser(string userName)
 {
     using (var Context = new BMSContext())
     {
         return(Context.Messages.Include("Sender").Include("Receiver").Where(u => u.Receiver.Username == userName).ToList());
     }
 }
Beispiel #4
0
 public int GetSentMessagesNumberByUserSentToday(string userName)
 {
     using (var Context = new BMSContext())
     {
         DateTime today = DateTime.Now.AddHours(-24);
         return(Context.Messages.Where(m => m.Sender.Username == userName && m.Sent >= today).Count());
     }
 }
        public List <string> GetAllUsersName(string username)
        {
            using (var Context = new BMSContext())
            {
                User user = GetUserByUserName(username);

                return(Context.Users.Where(u => u.Username != username && !u.IsHidden).Select(u => u.Username).ToList());
            }
        }
Beispiel #6
0
 public void MarkMessageAsRead(int messageId, bool isRead)
 {
     using (var Context = new BMSContext())
     {
         var message = Context.Messages.Where(m => m.Id == messageId).FirstOrDefault();
         if (message != null)
         {
             message.IsRead = !isRead;
         }
     }
 }
 public void BlockUser(User logedUser, string blockedUser)
 {
     using (var Context = new BMSContext())
     {
         BlockedUsers bu = new BlockedUsers();
         bu.BlockerUser = Context.Users.Where(u => u.Username == logedUser.Username).FirstOrDefault();
         bu.BlockedUser = Context.Users.Where(u => u.Username == blockedUser).FirstOrDefault();
         Context.BlockedUsers.Add(bu);
         Context.SaveChanges();
     }
 }
 public bool HideFromList(User loggedUser)
 {
     using (var Context = new BMSContext())
     {
         User user = Context.Users.Where(u => u.Username == loggedUser.Username).FirstOrDefault();
         if (user != null)
         {
             user.IsHidden = !user.IsHidden;
         }
         Context.SaveChanges();
         return(user.IsHidden);
     }
 }
        public User Login(string userName, string password)
        {
            using (var Context = new BMSContext())
            {
                //SecureString ss = new NetworkCredential("", password).SecurePassword;
                //User loggedInUser = Context.Users.Where(u => u.Username == userName).FirstOrDefault();
                //if (ss == SecurityHelper.SecurityHelper.DecryptString(loggedInUser.Password))
                //    return loggedInUser;
                //else return null;

                return(Context.Users.Where(u => u.Username == userName && u.Password == password).FirstOrDefault());
            }
        }
        public List <User> GetAllUsers(string username)
        {
            using (var Context = new BMSContext())
            {
                //TODO: Adding every relations to the BlockedUsers table and a variable is blocked to be able to do it in 1 query
                //select * from Users Full Join BlockedUsers on Users.Id = BlockedUsers.BlockedUserId where BlockedUsers.BlockedUserId is null and Users.Username != '1'

                User        user         = GetUserByUserName(username);
                List <User> BlockedUsers = Context.BlockedUsers.Include("BlockedUser").Where(x => x.BlockerUser.Username == username).Select(x => x.BlockedUser).ToList();
                List <User> AllUsers     = Context.Users.Where(u => u.Username != username && !u.IsHidden).ToList();
                foreach (var bUser in BlockedUsers)
                {
                    AllUsers.Remove(bUser);
                }
                return(AllUsers);
            }
        }
Beispiel #11
0
        public int AddMessage(string senderUserName, string receiverUserName, string message)
        {
            using (var Context = new BMSContext())
            {
                if (GetSentMessagesNumberByUserSentToday(senderUserName) >= 5)
                {
                    throw new Exception("Numbers of messages per day reach the limit (5)! ");
                }
                Message newMessage = new Message();
                newMessage.Sender   = Context.Users.Where(u => u.Username.Equals(senderUserName)).FirstOrDefault();
                newMessage.Receiver = Context.Users.Where(u => u.Username.Equals(receiverUserName)).FirstOrDefault();
                newMessage.IsRead   = false;
                newMessage.Sent     = DateTime.Now;
                newMessage.Data     = message;


                Context.Messages.Add(newMessage);
                return(Context.SaveChanges());
            }
        }
        public void RegisterUser(string userName, string firstName, string lastName, string password, string phoneNumber, string email)
        {
            if (String.IsNullOrWhiteSpace(userName) || String.IsNullOrWhiteSpace(userName) || String.IsNullOrWhiteSpace(firstName) || String.IsNullOrWhiteSpace(lastName) || String.IsNullOrWhiteSpace(password) || String.IsNullOrWhiteSpace(email))
            {
                throw new Exception("Mandatory fields represented with * cannot be null.");
            }
            var regex = new Regex(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{6,}$");

            if (!regex.IsMatch(password))
            {
                throw new Exception("Password is not acceptable. \n Password rules: Small and Capital letters and number, Minimum lenght:6");
            }
            if (GetUserByUserName(userName) != null)
            {
                throw new Exception("UserName already exist, please choose another one.");
            }


            //SecureString ss = new NetworkCredential("", password).SecurePassword;
            //newUser.Password = SecurityHelper.EncryptString(ss);
            //newUser.CredentialEncryptionHash= SecurityHelper.MD5Hash(string.Format("{0}{1}",
            //userName,
            //password));
            //EncryptPassword(ref password);
            using (var Context = new BMSContext())
            {
                User newUser = new User();
                newUser.Username    = userName;
                newUser.FirstName   = firstName;
                newUser.Surname     = lastName;
                newUser.Password    = password;
                newUser.PhoneNumber = phoneNumber;
                newUser.Email       = email;
                Context.Users.Add(newUser);
                Context.SaveChanges();

                //TODO:Check mailsending settings
                //if (Context.SaveChanges() > 0)
                //    MailSender.MailSender.Send(newUser.Email, "BMS Confirmation", "Dear" + newUser.Surname + ", \nThank your for registering in BMS Message sending application. \nKind regards,\nBMS Team");
            }
        }
Beispiel #13
0
        /// <summary>
        /// Dependency Injection
        /// </summary>
        public BaseRepository()
        {
            logger = Helpers.DependencyResolution.IoC.Container().GetInstance <ILoggingHelper>(TargetImplement.V1.ToString());

            db = new BMSContext();
        }