public ActionResult Password(string key)
        {
            using (var dataContext = new InnostarModelsContext())
            {
                var recoverRepository = new RecoverPasswordRequestRepository(dataContext);

                var requests = recoverRepository._Get(u => u.RequestKey.Equals(key) && u.IsActive).ToList();

                if (requests.Any())
                {
                    var request = requests.FirstOrDefault();

                    if (request == null)
                    {
                        throw new Exception("Данного запроса не существует");
                    }

                    var userRepository = new ChatUserRepository(dataContext);
                    var user           = userRepository._Get(e => e.Id == request.UserId).FirstOrDefault();

                    if (user == null)
                    {
                        throw new Exception("Произошла ошибка в обработке запроса. Обратитесь в службу поддержки");
                    }

                    return(View(new RecoverPasswordModel {
                        RequestId = request.Id, RequestKey = key, UserLogin = user.Login
                    }));
                }
                else
                {
                    return(RedirectToAction("NotFound", "Error"));
                }
            }
        }
Exemple #2
0
 protected override void Seed(MainDataBase dataBase)
 {
     _usersRepository    = new UsersRepository(dataBase);
     _chatsRepository    = new ChatsRepository(dataBase);
     _chatUserRepository = new ChatUserRepository(dataBase);
     _messagesRepository = new MessagesRepository(dataBase);
 }
Exemple #3
0
 public DashboardController(ILogger <DashboardController> logger)
 {
     _logger      = logger;
     userrepo     = new UserRepository();
     chatrepo     = new ChatRepository();
     chatuserrepo = new ChatUserRepository();
 }
Exemple #4
0
 public UnitOfWork(DataContext context)
 {
     _context = context;
     Auth     = new AuthRepository(_context);
     ChatRoom = new ChatRoomRepository(_context);
     Message  = new MessageRepository(_context);
     ChatUser = new ChatUserRepository(_context);
     User     = new AuthRepository(_context);
 }
        public JsonResult _MessageVariables(string login)
        {
            var receiverStrings = login.Split('@');
            var xmppLogin       = receiverStrings[0];

            using (var context = new InnostarModelsContext())
            {
                var result = new Dictionary <string, string>();

                var repository = new ChatUserRepository(context);
                var users      = repository._Get(e => e.XmppLogin == xmppLogin).ToList();

                if (users.Any())
                {
                    var user  = users.FirstOrDefault();
                    var email = string.IsNullOrEmpty(user.Email) ? string.Empty : user.Email;
                    var name  = string.IsNullOrEmpty(user.Name) ? user.Login : user.Name;

                    result.Add("userEmail", email);
                    result.Add("userDisplayName", name);


                    var requestRepository = new RecoverPasswordRequestRepository(context);
                    var requests          =
                        requestRepository._Get(e => e.UserId == user.Id)
                        .OrderByDescending(e => e.RequestAcceptedTime)
                        .ToList();

                    var request = requests.Any() ? GetRecoverLink(requests.FirstOrDefault().RequestKey) : string.Empty;
                    result.Add("userPasswordRequest", request);

                    var confirmEmailRepository = new ConfirmEmailRequestRepository(context);
                    var confirmEmailrequests   =
                        confirmEmailRepository._Get(e => e.UserId == user.Id)
                        .OrderByDescending(e => e.RequestAcceptedTime)
                        .ToList();

                    var confirmEmailrequest = confirmEmailrequests.Any() ? GetConfirmLink(confirmEmailrequests.FirstOrDefault().RequestKey) : string.Empty;
                    result.Add("userConfirmRequest", confirmEmailrequest);
                }
                else
                {
                    result.Add("userEmail", string.Empty);
                    result.Add("userDisplayName", string.Empty);
                    result.Add("userRequest", string.Empty);
                }

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }
        public string _GenerateRecoverLink(string login)
        {
            var receiverStrings = login.Split('@');
            var xmppLogin       = receiverStrings[0];

            using (var context = new InnostarModelsContext())
            {
                var repository = new ChatUserRepository(context);
                var users      = repository._Get(e => e.XmppLogin == xmppLogin).ToList();

                if (users.Any())
                {
                    var user = users.FirstOrDefault();

                    var rnd        = new Random();
                    var requestKey = rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                     + Guid.NewGuid().ToString().Replace("-", string.Empty)
                                     + rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                     + Guid.NewGuid().ToString().Replace("-", string.Empty);

                    var newPassword = rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                      + Guid.NewGuid().ToString().Replace("-", string.Empty)
                                      + rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                      + Guid.NewGuid().ToString().Replace("-", string.Empty);

                    var pu = new PasswordUtility(newPassword.ToCharArray());
                    user.PasswordHash = pu.Hash;
                    user.PasswordSalt = pu.Salt;

                    //repository._Update(user);
                    //repository._Save();

                    var recoverRepository = new RecoverPasswordRequestRepository(context);

                    var request = new RecoverPasswordRequest
                    {
                        IsActive            = true,
                        RequestAcceptedTime = DateTime.Now,
                        RequestKey          = requestKey,
                        User = user
                    };

                    recoverRepository._Insert(request);
                    recoverRepository._Save();
                }
            }

            return(string.Empty);
        }
Exemple #7
0
        ObservableCollection <ChatModel> GetChatsByUser(UserModel user)
        {
            ObservableCollection <ChatModel> chats = new ObservableCollection <ChatModel>();

            using (MainDataBase dataBase = new MainDataBase())
            {
                chatUserRepository = new ChatUserRepository(dataBase);
                chatRepository     = new ChatsRepository(dataBase);

                foreach (ChatUserModel chatUserModel in chatUserRepository.GetAll(i => i.UserId == user.Id))
                {
                    chats.Add(chatRepository.GetById((int)chatUserModel.ChatId));
                }
            }
            return(chats);
        }
Exemple #8
0
        List <UserModel> GetUsersByChat(ChatModel chat)
        {
            List <UserModel> users = new List <UserModel>();

            using (MainDataBase dataBase = new MainDataBase())
            {
                chatUserRepository = new ChatUserRepository(dataBase);
                usersRepository    = new UsersRepository(dataBase);

                foreach (ChatUserModel chatUserModel in chatUserRepository.GetAll(i => i.ChatId == chat.Id))
                {
                    users.Add(usersRepository.GetById((int)chatUserModel.UserId));
                }
            }
            return(users);
        }
        public ActionResult ConfirmEmail(string key)
        {
            using (var dataContext = new InnostarModelsContext())
            {
                var repository = new ConfirmEmailRequestRepository(dataContext);

                var requests = repository._Get(u => u.RequestKey.Equals(key) && u.IsActive).ToList();

                if (requests.Any())
                {
                    var request = requests.FirstOrDefault();

                    if (request == null)
                    {
                        throw new Exception("Данного запроса не существует");
                    }

                    var userRepository = new ChatUserRepository(dataContext);
                    var user           = userRepository._Get(e => e.Id == request.UserId).FirstOrDefault();

                    if (user == null)
                    {
                        throw new Exception("Произошла ошибка в обработке запроса. Обратитесь в службу поддержки");
                    }

                    user.Disabled = false;
                    userRepository._Update(user);
                    userRepository._Save();

                    request.IsActive = false;
                    repository._Update(request);
                    repository._Save();

                    return(View(new ConfirmEmailModel
                    {
                        RequestId = request.Id,
                        RequestKey = key,
                        UserDisplayName = user.Name
                    }));
                }
                else
                {
                    return(RedirectToAction("NotFound", "Error"));
                }
            }
        }
        public string DisableSafeMode(int id)
        {
            using (var context = new InnostarModelsContext())
            {
                var repository = new ChatUserRepository(context);
                var users      = repository._Get(e => e.Id == id).ToList();

                if (users.Any())
                {
                    var user = users.FirstOrDefault();
                    user.SafeModeActivated = false;
                    user.SafeModeEndDate   = DateTime.Now;

                    repository._Update(user);
                    repository._Save();
                }
            }

            return(string.Empty);
        }
        public ActionResult Password(RecoverPasswordModel requestModel)
        {
            using (var dataContext = new InnostarModelsContext())
            {
                var recoverRepository = new RecoverPasswordRequestRepository(dataContext);

                var request = recoverRepository._Get(u => u.Id == requestModel.RequestId &&
                                                     u.RequestKey == requestModel.RequestKey &&
                                                     u.IsActive).FirstOrDefault();


                if (request == null)
                {
                    throw new Exception("Данного запроса не существует");
                }

                var userRepository = new ChatUserRepository(dataContext);
                var user           = userRepository._Get(e => e.Id == request.UserId).FirstOrDefault();

                if (user == null)
                {
                    throw new Exception("Произошла ошибка в обработке запроса. Обратитесь в службу поддержки");
                }

                if (!string.IsNullOrEmpty(requestModel.NewPassword))
                {
                    var pu = new PasswordUtility(requestModel.NewPassword.ToCharArray());
                    user.PasswordHash = pu.Hash;
                    user.PasswordSalt = pu.Salt;
                }

                userRepository._Update(user);
                userRepository._Save();

                //request.IsActive = false;
                //recoverRepository.Update(request);
                //recoverRepository.Save();

                return(RedirectToAction("Index", "Home"));
            }
        }
Exemple #12
0
        List <UserModel> GetRestUsers()
        {
            List <UserModel> restUsers = new List <UserModel>();

            using (MainDataBase dataBase = new MainDataBase())
            {
                chatUserRepository = new ChatUserRepository(dataBase);
                usersRepository    = new UsersRepository(dataBase);

                _givenUsers = new ObservableCollection <UserModel>();

                List <ChatUserModel> chatUsers = chatUserRepository.GetAll(i => i.ChatId == _chat.Id);

                foreach (ChatUserModel chatUser in chatUsers)
                {
                    _givenUsers.Add(usersRepository.GetById((int)chatUser.UserId));
                }

                return(restUsers = usersRepository.GetAll().Except(_givenUsers).ToList());
            }
        }
Exemple #13
0
        public ActionResult Index()
        {
            using (var context = new InnostarModelsContext())
            {
                var repository     = new ChatUserRepository(context);
                int countAllUsers  = repository._All.Count();
                int countSafeUsers = repository._All.Count(user => user.SafeModeActivated);

                return(View(new StatisticsViewModel
                {
                    ActiveUserNumber = 0,
                    SafeUserNumber = countSafeUsers,
                    UserNumber = countAllUsers,
                    XmppAdminLogin =
                        ConfigurationManager.AppSettings["XmppAdminLogin"] + "@" +
                        ConfigurationManager.AppSettings["XmppServerName"],
                    XmppAdminPassword = ConfigurationManager.AppSettings["XmppAdminPassword"],
                    HttpBindAddress = ConfigurationManager.AppSettings["httpBindAdress"]
                }));
            }
        }
        public string _GenerateConfirmLink(string login)
        {
            var receiverStrings = login.Split('@');
            var xmppLogin       = receiverStrings[0];

            using (var context = new InnostarModelsContext())
            {
                var repository = new ChatUserRepository(context);
                var users      = repository._Get(e => e.XmppLogin == xmppLogin).ToList();

                if (users.Any())
                {
                    var user = users.FirstOrDefault();

                    var confirmRepository = new ConfirmEmailRequestRepository(context);
                    var rnd        = new Random();
                    var requestKey = rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                     + Guid.NewGuid().ToString().Replace("-", string.Empty)
                                     + rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                     + Guid.NewGuid().ToString().Replace("-", string.Empty);

                    //user.Disabled = true;
                    //repository._Update(user);
                    //repository._Save();

                    var request = new ConfirmEmailRequest
                    {
                        IsActive            = true,
                        RequestAcceptedTime = DateTime.Now,
                        RequestKey          = requestKey,
                        User = user
                    };

                    confirmRepository._Insert(request);
                    confirmRepository._Save();
                }
            }

            return(string.Empty);
        }
        public ActionResult GetAllXmppLogins(bool?safeMode = false)
        {
            using (var context = new InnostarModelsContext())
            {
                var repository = new ChatUserRepository(context);
                var chatLogins = new string[2];
                if (safeMode.Value)
                {
                    chatLogins = repository._All.Where(e => e.SafeModeActivated && !e.Disabled).Select(e => e.XmppLogin).ToArray();
                }
                else
                {
                    chatLogins = repository._All.Where(e => !e.Disabled).Select(e => e.XmppLogin).ToArray();
                    for (int i = 0; i != chatLogins.Length; i++)
                    {
                        chatLogins[i] += "@" + ConfigurationManager.AppSettings["XmppServerName"];
                    }
                }

                return(Json(chatLogins, JsonRequestBehavior.AllowGet));
            }
        }
Exemple #16
0
 public ChatUserController(ChatUserRepository chatRoomRepository)
 {
     repository = chatRoomRepository;
 }
Exemple #17
0
 public HomeController(ILogger <HomeController> logger)
 {
     _logger      = logger;
     userrepo     = new UserRepository();
     chatuserrepo = new ChatUserRepository();
 }