Example #1
0
        public List<UserMessageFolder> GetAllFolders(string userName)
        {
            using (var context = new PhobosCoreContext())
            {
                ////Create Inbox if necessary
                var inboxFolder = this.GetInboxFolder(userName);

                ////Create Sent if necessary
                var sentFolder = this.GetSentFolder(userName);

                ////Create Draft if necessary
                var draftFolder = this.GetDraftFolder(userName);

                return context.UserMessageFolders
                    .Include(x => x.User)
                    .Include(x => x.User.Roles)
                    .Include(x => x.Messages)
                    .Include(x => x.Messages.Select(c => c.Sender))
                    .Include(x => x.Messages.Select(c => c.Sender.Roles))
                    .Include(x => x.Messages.Select(c => c.Receiver))
                    .Include(x => x.Messages.Select(c => c.Receiver.Roles))
                    .Include(x => x.Messages.Select(c => c.Owner))
                    .Include(x => x.Messages.Select(c => c.Owner.Roles))
                    .Where(x => x.User.Username == userName).ToList();
            }
        }
Example #2
0
        public bool CheckIfUserExist(string userName)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedUser = context.Users.FirstOrDefault(x => x.Username == userName);

                return selectedUser != default(UserAccount);
            }
        }
Example #3
0
        public void DeleteMessage(int messageId)
        {
            using (var context = new PhobosCoreContext())
            {
                var msg = context.UserMessages.First(x => x.Id == messageId);

                context.UserMessages.Remove(msg);

                context.SaveChanges();
            }
        }
Example #4
0
        public UserRole CreateRole(string username)
        {
            using (var context = new PhobosCoreContext())
            {
                var newUserRole = new UserRole();
                newUserRole.Name = username;

                context.Roles.Add(newUserRole);
                context.SaveChanges();
                return newUserRole;
            }
        }
Example #5
0
 public void AddConfiguration(string key, string value)
 {
     using (var context = new PhobosCoreContext())
     {
         var config = context.Configurations.FirstOrDefault(x => x.Key == key);
         if (config == default(Configuration))
         {
             context.Configurations.Add(new Configuration() { Key = key, Value = value });
             context.SaveChanges();
         }
     }
 }
Example #6
0
        public Configuration GetConfiguration(string key)
        {
            using (var context = new PhobosCoreContext())
            {
                var config = context.Configurations.FirstOrDefault(x => x.Key == key);
                if (config == default(Configuration))
                {
                    throw new Exception("Configuration (" + key + ") is not set.");
                }

                return config;
            }
        }
Example #7
0
        public void DeleteFolder(string userName, int id)
        {
            using (var context = new PhobosCoreContext())
            {
                var folder = context.UserMessageFolders.FirstOrDefault(x => x.Id == id && x.User.Username == userName);

                if (folder != null)
                {
                    context.UserMessageFolders.Remove(folder);

                    context.SaveChanges();
                }
            }
        }
Example #8
0
        public UserMessageFolder CreateDefaultFolder(string userName)
        {
            using (var context = new PhobosCoreContext())
            {
                var folder = new UserMessageFolder()
                {
                    User = context.Users.Include(x => x.Roles).First(x => x.Username == userName),
                    Name = InboxFolderName,
                    IsInboxFolder = true
                };

                context.UserMessageFolders.Add(folder);

                context.SaveChanges();

                return folder;
            }
        }
Example #9
0
        public bool AddFailedLoginAttempt(string userName)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedUser = context.Users.FirstOrDefault(x => x.Username == userName);

                if (selectedUser != default(UserAccount))
                {
                    selectedUser.FailedAttempts++;

                    if (selectedUser.FailedAttempts > 3)
                    {
                        selectedUser.LockedDate = DateTime.Now;
                        selectedUser.IsLocked = true;
                    }

                    context.SaveChanges();
                    return true;
                }

                return false;
            }
        }
Example #10
0
 public List<UserMessage> GetLastMessages(string userName, int qtd)
 {
     using (var context = new PhobosCoreContext())
     {
         return context.UserMessages
             .Include(x => x.Receiver)
             .Include(x => x.Receiver.Roles)
             .Include(x => x.Sender)
             .Include(x => x.Sender.Roles)
             .Include(x => x.Folder)
             .Where(x => x.Receiver.Username == userName && x.IsDraft == false && x.Folder.IsInboxFolder)
             .OrderByDescending(x => x.SendDate)
             .Take(qtd)
             .ToList();
     }
 }
Example #11
0
        public UserMessageFolder GetFolder(string userName, int folderId)
        {
            using (var context = new PhobosCoreContext())
            {
                var folder = context.UserMessageFolders
                    .Include(x => x.User)
                    .Include(x => x.User.Roles)
                    .Where(x => x.User.Username == userName && (x.Id == folderId || (folderId == 0 && x.IsInboxFolder)))
                    .FirstOrDefault();

                return folder;
            }
        }
Example #12
0
        public UserAccount GetUser(string userName)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedUser = context.Users.Include(x => x.Roles)
                    .FirstOrDefault(x => x.Username == userName);

                return selectedUser;
            }
        }
Example #13
0
        public UserMessageFolder SaveFolder(UserMessageFolder model)
        {
            using (var context = new PhobosCoreContext())
            {
                model.User = context.Users.Include(x => x.Roles).First(x => x.Username == model.User.Username);

                if (model.Id == 0 || !context.UserMessageFolders.Any(x => x.Id == model.Id))
                {
                    context.UserMessageFolders.Add(model);
                }
                else
                {
                    context.UserMessageFolders.First(x => x.Id == model.Id).Icon = model.Icon;
                    context.UserMessageFolders.First(x => x.Id == model.Id).IconColor = model.IconColor;
                    context.UserMessageFolders.First(x => x.Id == model.Id).Name = model.Name;
                }

                context.SaveChanges();

                return model;
            }
        }
Example #14
0
        private List<UserRole> GetRolesForUser(PhobosCoreContext context)
        {
            var listOfRoles = new List<UserRole>();

            var role = context.Roles.FirstOrDefault(x => x.Name == "User");
            if (role == default(UserRole))
            {
                role = new UserRole()
                {
                    Name = "User"
                };
            }
            listOfRoles.Add(role);

            return listOfRoles;
        }
Example #15
0
        public bool UpdateRoleUsers(string name, List<string> usersInRole)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedRole = context.Roles.FirstOrDefault(x => x.Name == name);

                if (selectedRole != default(UserRole))
                {
                    selectedRole.UserAccounts.RemoveAll(x => !usersInRole.Any(z => z == x.Username));

                    foreach (var userName in usersInRole.Where(x => !selectedRole.UserAccounts.Any(z => z.Username == x)))
                    {
                        selectedRole.UserAccounts.Add(context.Users.FirstOrDefault(x => x.Username == userName));
                    }

                    return context.SaveChanges() > 0;
                }

                return false;
            }
        }
Example #16
0
        public bool UpdateRole(UserRole role, string name)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedRole = context.Roles.FirstOrDefault(x => x.Name == name);

                if (selectedRole != default(UserRole))
                {
                    selectedRole.Name = role.Name;
                    context.SaveChanges();
                    return true;
                }

                return false;
            }
        }
Example #17
0
        public bool UpdateLastLoginDate(string userName, DateTime lastDate)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedUser = context.Users.FirstOrDefault(x => x.Username == userName);

                if (selectedUser != default(UserAccount))
                {
                    selectedUser.LastLoginDate = lastDate;
                    selectedUser.FailedAttempts = 0;
                    selectedUser.IsLocked = false;
                    selectedUser.CurrentStatus = Models.Enums.UserStatusEnum.Online;
                    context.SaveChanges();
                    return true;
                }

                return false;
            }
        }
Example #18
0
        public bool UpdateAccount(UserAccount userAccount)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedUser = context.Users.FirstOrDefault(x => x.Username == userAccount.Username);

                if (selectedUser != default(UserAccount))
                {
                    selectedUser.BirthDate = userAccount.BirthDate;
                    selectedUser.CurrentStatus = userAccount.CurrentStatus;
                    selectedUser.FirstName = userAccount.FirstName;
                    selectedUser.LastName = userAccount.LastName;
                    selectedUser.MemberSinceDate = userAccount.MemberSinceDate;
                    selectedUser.Position = userAccount.Position;
                    selectedUser.IsLocked = userAccount.IsLocked;
                    selectedUser.LockedDate = userAccount.LockedDate;
                    selectedUser.LastLoginDate = userAccount.LastLoginDate;
                    context.SaveChanges();
                    return true;
                }

                return false;
            }
        }
Example #19
0
        public bool UnlockUserAccount(string userName)
        {
            using (var context = new PhobosCoreContext())
            {
                var selectedUser = context.Users.FirstOrDefault(x => x.Username == userName);

                if (selectedUser != default(UserAccount))
                {
                    selectedUser.LockedDate = null;
                    selectedUser.FailedAttempts = 0;
                    selectedUser.IsLocked = false;

                    context.SaveChanges();
                    return true;
                }

                return false;
            }
        }
Example #20
0
        public UserMessage GetMessage(string userName, int id)
        {
            using (var context = new PhobosCoreContext())
            {
                var message = context.UserMessages
                    .Include(x => x.Receiver)
                    .Include(x => x.Receiver.Roles)
                    .Include(x => x.Sender)
                    .Include(x => x.Sender.Roles)
                    .Include(x => x.Folder)
                    .Include(x => x.Owner)
                    .Where(x => x.Receiver.Username == userName &&
                                x.Folder.Id == x.Folder.Id &&
                                x.Id == id)
                    .OrderByDescending(x => x.SendDate)
                    .FirstOrDefault();

                if (message != null)
                {
                    message.IsDraft = message.Folder.Name == DraftFolderName;
                }

                return message;
            }
        }
Example #21
0
        public List<UserMessage> GetMessages(string userName, int folderId)
        {
            using (var context = new PhobosCoreContext())
            {
                var messages = context.UserMessages
                                    .Include(x => x.Receiver)
                                    .Include(x => x.Receiver.Roles)
                                    .Include(x => x.Sender)
                                    .Include(x => x.Sender.Roles)
                                    .Include(x => x.Folder)
                                    .Include(x => x.Owner)
                                    .Where(x => (x.Receiver.Username == userName && x.Folder.Id == folderId) ||
                                                (x.Sender.Username == userName && x.Folder.Id == folderId && (x.Folder.Name == SentFolderName || x.Folder.Name == DraftFolderName)))
                                    .OrderByDescending(x => x.SendDate)
                                    .ToList();

                messages.ForEach(msg => msg.IsDraft = msg.Folder.Name == DraftFolderName);

                return messages;
            }
        }
Example #22
0
        public List<UserTask> GetLastTasksForUser(string userName, int qtd)
        {
            using (var context = new PhobosCoreContext())
            {
                var userMessages = context.UserTasks
                    .Where(x => x.User.Username == userName);

                if (userMessages.Count() == 0)
                {
                    return new List<UserTask>();

                }
                return userMessages.Take(qtd).ToList();
            }
        }
Example #23
0
        public void MoveMessageToFolder(string userName, int msgId, int newFolderId)
        {
            using (var context = new PhobosCoreContext())
            {
                var msg = context.UserMessages.First(x => x.Id == msgId && x.Owner.Username == userName);
                var newFolder = context.UserMessageFolders.Where(x => x.Id == newFolderId && x.User.Username == userName).First();

                msg.Folder = newFolder;
                context.SaveChanges();
            }
        }
Example #24
0
 public ActionAuthorization GetAutorizationForAction(string currentControllerName, string currentActionName)
 {
     using (var context = new PhobosCoreContext())
     {
         var actionAuthorization = context.ActionAuthorizations
             .Include(x => x.Roles)
             .Include(x => x.UserAccounts)
             .Include(x => x.Roles.Select(r => r.UserAccounts))
             .FirstOrDefault(x => x.Controller == currentControllerName && x.Action == currentActionName);
         return actionAuthorization;
     }
 }
Example #25
0
        public UserMessage SaveMessage(UserMessage sentMessage)
        {
            using (var context = new PhobosCoreContext())
            {
                sentMessage.Owner = context.Users.Include(x => x.Roles).First(x => x.Username == sentMessage.Owner.Username);
                sentMessage.Sender = context.Users.Include(x => x.Roles).First(x => x.Username == sentMessage.Sender.Username);
                sentMessage.Receiver = context.Users.Include(x => x.Roles).First(x => x.Username == sentMessage.Receiver.Username);

                if (sentMessage.Folder == null && sentMessage.IsDraft)
                {
                    sentMessage.Folder = context.UserMessageFolders.FirstOrDefault(x => x.User.Username == sentMessage.Owner.Username && x.Name == DraftFolderName);
                    sentMessage.IsDraft = sentMessage.Folder.Name == DraftFolderName;
                }
                else if (sentMessage.Folder == null && !sentMessage.IsDraft)
                {
                    sentMessage.Folder = context.UserMessageFolders.FirstOrDefault(x => x.User.Username == sentMessage.Receiver.Username && x.Name == InboxFolderName);
                }
                else if (sentMessage.Folder != null)
                {
                    sentMessage.Folder = context.UserMessageFolders.FirstOrDefault(x => x.Id == sentMessage.Folder.Id);
                }

                if (sentMessage.Id == 0)
                {
                    context.UserMessages.Add(sentMessage);
                }
                else
                {
                    context.UserMessages.First(x => x.Id == sentMessage.Id).Message = sentMessage.Message;
                    context.UserMessages.First(x => x.Id == sentMessage.Id).Title = sentMessage.Title;
                    context.UserMessages.First(x => x.Id == sentMessage.Id).Receiver = sentMessage.Receiver;
                    context.UserMessages.First(x => x.Id == sentMessage.Id).Sent = sentMessage.Sent;
                    context.UserMessages.First(x => x.Id == sentMessage.Id).IsFavorite = sentMessage.IsFavorite;
                }

                context.SaveChanges();

                return sentMessage;
            }
        }
Example #26
0
        public List<UserAccount> GetAllUsers()
        {
            using (var context = new PhobosCoreContext())
            {
                var listOfUsers = context.Users
                                .Include(x => x.Roles)
                                .ToList();

                return listOfUsers;
            }
        }
Example #27
0
        public UserAccount CreateUser(string name, string userName, string password)
        {
            using (var context = new PhobosCoreContext())
            {
                Configuration salt = CoreRepository.GetConfiguration("PasswordSalt");

                var newUser = new UserAccount();
                newUser.FirstName = name;
                newUser.Username = userName;
                newUser.Password = password;
                newUser.MemberSinceDate = DateTime.Now;

                newUser.Roles.AddRange(this.GetRolesForUser(context));

                context.Users.Add(newUser);
                context.SaveChanges();
                return newUser;
            }
        }
Example #28
0
        public UserRole GetRole(string name)
        {
            using (var context = new PhobosCoreContext())
            {
                var listOfUsers = context.Roles
                                .Include(x => x.UserAccounts)
                                .Where(r => r.Name == name)
                                .ToList();

                return listOfUsers.FirstOrDefault();
            }
        }
Example #29
0
        public UserMessageFolder GetDraftFolder(string userName)
        {
            using (var context = new PhobosCoreContext())
            {
                var folder = context.UserMessageFolders
                    .Include(x => x.User)
                    .Include(x => x.User.Roles)
                    .Where(x => x.User.Username == userName && x.Name == DraftFolderName)
                    .FirstOrDefault();

                if (folder == default(UserMessageFolder))
                {
                    folder = new UserMessageFolder()
                    {
                        User = context.Users.First(x => x.Username == userName),
                        Name = DraftFolderName,
                        IsDraftFolder = true
                    };

                    context.UserMessageFolders.Add(folder);
                    context.SaveChanges();
                }

                return folder;
            }
        }
Example #30
0
        public List<UserRole> GetAllRoles()
        {
            using (var context = new PhobosCoreContext())
            {
                var listOfUsers = context.Roles
                                .ToList();

                return listOfUsers;
            }
        }