Exemplo n.º 1
0
 public ICollection <KanbanState> GetKanbanStatesOfTask()
 {
     using (var asana = new AsanaDbContext())
     {
         return(new ObservableCollection <KanbanState>(asana.KanbanState));
     }
 }
Exemplo n.º 2
0
 public async System.Threading.Tasks.Task RemoveAsync(Objects.Task task)
 {
     if (task != null)
     {
         try
         {
             if (CurrentUser.Instance.User.FullName.Equals(CurrentProject.Instance.Project.ProjectManager) ||
                 CurrentUser.Instance.User.FullName.Equals(task.AssignedTo))
             {
                 using (var context = new AsanaDbContext())
                 {
                     var t = context.Tasks.FirstOrDefault(x => x.Id == task.Id);
                     if (t != null)
                     {
                         context.Tasks.Remove(t);
                     }
                     await context.SaveChangesAsync();
                 }
             }
             else
             {
                 throw new Exception("You are not permitted to delete task.");
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
         }
     }
 }
Exemplo n.º 3
0
 public Objects.Task FindById(Guid taskId)
 {
     if (taskId != null)
     {
         try
         {
             using (var context = new AsanaDbContext())
             {
                 var task = context.Tasks.Include("Column")
                            .Include("TaskLogs")
                            .FirstOrDefault(x => x.Id == taskId);
                 if (task != null)
                 {
                     return(task);
                 }
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
         }
         return(null);
     }
     throw new Exception("id is null");
 }
Exemplo n.º 4
0
        public async System.Threading.Tasks.Task UpdateColumnId(Guid columnId, Objects.Task task)
        {
            if (task != null)
            {
                try
                {
                    if (CurrentUser.Instance.User.FullName.Equals(CurrentProject.Instance.Project.ProjectManager) ||
                        CurrentUser.Instance.User.FullName.Equals(task.AssignedTo))
                    {
                        using (var context = new AsanaDbContext())
                        {
                            var t = context.Tasks.Include("Column").Include("TaskLogs").FirstOrDefault(x => x.Id == task.Id);

                            if (t != null)
                            {
                                var c = context.Columns.FirstOrDefault(x => x.Id == task.ColumnId);
                                if (c != null)
                                {
                                    context.Tasks.FirstOrDefault(x => x.Id == t.Id).ColumnId = columnId;
                                }
                                await context.SaveChangesAsync();
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("You are not permitted to edit the task.");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
        }
Exemplo n.º 5
0
 public async System.Threading.Tasks.Task CreateAsync(Objects.Task task)
 {
     if (task != null)
     {
         try
         {
             if (CurrentUser.Instance.User.FullName.Equals(CurrentProject.Instance.Project.ProjectManager))
             {
                 using (var context = new AsanaDbContext())
                 {
                     int maxPosition = 0;
                     task.IsTaskAdded = true;
                     task.CreatedAt   = DateTime.Now;
                     if (context.Tasks.Count() > 0)
                     {
                         maxPosition = context.Tasks.Max(x => x.Position) + 1;
                     }
                     task.Position           = maxPosition;
                     task.CurrentKanbanState = context.KanbanState.FirstOrDefault(z => z.Name.Equals("In Progress")).Name;
                     context.Tasks.Add(task);
                     await context.SaveChangesAsync();
                 }
             }
             else
             {
                 throw new Exception("You are not permitted to create task");
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
         }
     }
 }
Exemplo n.º 6
0
 public async void RemoveAsync(Guid projectId)
 {
     if (projectId != null)
     {
         try
         {
             using (var context = new AsanaDbContext())
             {
                 var chat = context.ChatRooms.Where(x => x.ProjectId == projectId);
                 if (chat != null)
                 {
                     foreach (var item in chat)
                     {
                         context.ChatRooms.Remove(item);
                     }
                 }
                 await context.SaveChangesAsync();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
         }
     }
 }
Exemplo n.º 7
0
        public async System.Threading.Tasks.Task RemoveAsync(Project project)
        {
            if (project != null)
            {
                try
                {
                    using (var db = new AsanaDbContext())
                    {
                        var pm = db.Projects.FirstOrDefault(x => x.Id == project.Id).ProjectManager;
                        if (!pm.Equals(CurrentUser.Instance.User.FullName))
                        {
                            throw new Exception("You are not permitted to delete this project.");
                        }
                        var p = db.Projects.FirstOrDefault(x => x.Id == project.Id);

                        if (p != null)
                        {
                            var x = new ChatService();
                            x.RemoveAsync(p.Id);
                            db.Projects.Remove(p);
                        }
                        await db.SaveChangesAsync();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
        }
Exemplo n.º 8
0
        public bool LoginControl(string Email, string Password)
        {
            using (var db = new AsanaDbContext())
            {
                Password = PasswordHasher.Hash(Password);
                if (RegexChecker.CheckEmail(Email))
                {
                    if (db.Users.Any(user => user.Email == Email && user.Password == Password))
                    {
                        CurrentUser.Instance.User = db.Users.Single(user => user.Email == Email && user.Password == Password);
                        return(true);
                    }

                    else
                    {
                        return(false);
                    }
                }
                else if (RegexChecker.CheckUsername(Email))
                {
                    if (db.Users.Any(user => user.Username == Email && user.Password == Password))
                    {
                        CurrentUser.Instance.User = db.Users.Single(user => user.Username == Email && user.Password == Password);
                        return(true);
                    }

                    else
                    {
                        return(false);
                    }
                }
                return(false);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// validation for email
        /// </summary>
        /// <param name="columnName"></param>
        /// <returns></returns>
        public string this[string columnName]
        {
            get
            {
                string result = null;
                if (columnName.Equals(nameof(Email)))
                {
                    if (!RegexChecker.CheckEmail(Email))
                    {
                        result = "Enter your email correctly!";
                    }
                    else if (RegexChecker.CheckEmail(Email))
                    {
                        using (var db = new AsanaDbContext())
                        {
                            if (db.Users.ToList().Exists(user => user.Email == Email))
                            {
                                result = "This mail already exists!!!";
                            }
                        }
                    }
                }


                return(result);
            }
        }
Exemplo n.º 10
0
        public async System.Threading.Tasks.Task UpdatePositionAsync(int index, Project project)
        {
            if (project != null)
            {
                try
                {
                    using (var db = new AsanaDbContext())
                    {
                        var pm = db.Projects.FirstOrDefault(x => x.Id == project.Id).ProjectManager;
                        if (!pm.Equals(CurrentUser.Instance.User.FullName))
                        {
                            throw new Exception("You are not permitted to edit this project.");
                        }
                        var item = db.Projects.FirstOrDefault(x => x.Id == project.Id);
                        if (item != null)
                        {
                            db.Projects.First(x => x.Id == item.Id).Position = index;
                        }
                        await db.SaveChangesAsync();
                    }
                }

                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
        }
Exemplo n.º 11
0
 public bool InsertDirectMessage(string email, ChatRoomType chatRoomType = ChatRoomType.Direct)
 {
     try
     {
         using (var dbContext = new AsanaDbContext())
         {
             var friendUser = dbContext.Users.SingleOrDefault(x => x.Email == email);
             if (friendUser == null || dbContext.ChatRooms.Any(x => x.Name == email + " - " + CurrentUser.Instance.User.Email) || !dbContext.Projects.Any(x => x.UserId == friendUser.Id && x.Id == CurrentProject.Instance.Project.Id))
             {
                 throw new Exception();
             }
             ChatRoom chat = new ChatRoom()
             {
                 Name = email + " - " + CurrentUser.Instance.User.Email, ProjectId = CurrentProject.Instance.Project.Id, ChatRoomType = chatRoomType, Desc = "Don't have description."
             };
             dbContext.ChatRooms.Add(chat);
             dbContext.ChatRoomUsers.Add(new ChatRoomUsers()
             {
                 UserId = CurrentUser.Instance.User.Id, ChatRoomId = chat.ID
             });
             dbContext.ChatRoomUsers.Add(new ChatRoomUsers()
             {
                 UserId = friendUser.Id, ChatRoomId = chat.ID
             });
             dbContext.SaveChanges();
         }
         return(true);
     }
     catch (Exception err)
     {
         Errors.SeacrhFriendErrorMsg();
         return(false);
     }
 }
Exemplo n.º 12
0
        public async System.Threading.Tasks.Task CreateAsync(UserRoles user)
        {
            EmailHelper sendEmail = new EmailHelper();

            if (user != null)
            {
                try
                {
                    using (var asana = new AsanaDbContext())
                    {
                        var u = asana.Users.FirstOrDefault(x => x.Email.Equals(user.Email));
                        if (u == null)
                        {
                            sendEmail.SendInvitation(user.Email);
                            throw new Exception($"This employee has not registered yet. Invitation message is sent to {user.Email}.");
                        }
                        var userRole = asana.UserRoles.FirstOrDefault(x => x.Email.Equals(user.Email) &&
                                                                      x.ProjectId == user.ProjectId &&
                                                                      x.FullName.Equals(x.FullName));
                        if (userRole != null)
                        {
                            throw new Exception("User with this username already exists.");
                        }
                        asana.UserRoles.Add(user);
                        await asana.SaveChangesAsync();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Information", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
        }
Exemplo n.º 13
0
        public async System.Threading.Tasks.Task UpdateAsync(Project project)
        {
            if (project != null)
            {
                try
                {
                    using (var db = new AsanaDbContext())
                    {
                        var pm = db.Projects.FirstOrDefault(x => x.Id == project.Id).ProjectManager;
                        if (!pm.Equals(CurrentUser.Instance.User.FullName))
                        {
                            throw new Exception("You are not permitted to edit this project.");
                        }
                        db.Projects.First(x => x.Id == project.Id).Name           = project.Name;
                        db.Projects.First(x => x.Id == project.Id).ProjectEmail   = project.ProjectEmail;
                        db.Projects.First(x => x.Id == project.Id).ProjectManager = project.ProjectManager;
                        db.Projects.First(x => x.Id == project.Id).Description    = project.Description;
                        db.Projects.First(x => x.Id == project.Id).Deadline       = project.Deadline;

                        await db.SaveChangesAsync();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
        }
Exemplo n.º 14
0
 public bool InsertRoom(string name, ChatRoomType chatRoomType = ChatRoomType.Public)
 {
     try
     {
         using (var dbContext = new AsanaDbContext())
         {
             ChatRoom chat = new ChatRoom()
             {
                 Name = name, ProjectId = CurrentProject.Instance.Project.Id, ChatRoomType = chatRoomType, Desc = "Don't have description."
             };
             dbContext.ChatRooms.Add(chat);
             dbContext.ChatRoomUsers.Add(new ChatRoomUsers()
             {
                 UserId = CurrentUser.Instance.User.Id, ChatRoomId = chat.ID
             });
             dbContext.SaveChanges();
         }
         return(true);
     }
     catch (Exception err)
     {
         Log.Error(err.Message);
         return(false);
     }
 }
Exemplo n.º 15
0
 public async System.Threading.Tasks.Task CreateAsync(Column column)
 {
     if (column != null)
     {
         try
         {
             if (!CurrentUser.Instance.User.FullName.Equals(CurrentProject.Instance.Project.ProjectManager))
             {
                 throw new Exception("You are not permited to add new column.");
             }
             using (var context = new AsanaDbContext())
             {
                 int maxPosition = 0;
                 if (context.Columns.Count() > 0)
                 {
                     maxPosition = context.Columns.Max(x => x.Position) + 1;
                 }
                 column.Position = maxPosition;
                 context.Columns.Add(column);
                 await context.SaveChangesAsync();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
         }
     }
 }
Exemplo n.º 16
0
        public async System.Threading.Tasks.Task LoadColumns(Guid projectId)
        {
            await System.Threading.Tasks.Task.Run(
                () =>
            {
                if (projectId != null)
                {
                    try
                    {
                        using (var context = new AsanaDbContext())
                        {
                            ObservableCollection <ColumnItemViewModel> columnsOfProject = new ObservableCollection <ColumnItemViewModel>();
                            var columns = (GetAll(CurrentProject.Instance.Project.Id) as ObservableCollection <Column>).OrderBy(x => x.Position);

                            if (columns != null)
                            {
                                foreach (var item in columns)
                                {
                                    columnsOfProject.Add(new ColumnItemViewModel {
                                        ColumnIsAdded = true, Column = item, Title = item.Title
                                    });
                                }
                                ColumnsOfProject.Instance.Columns = columnsOfProject;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
                );
        }
Exemplo n.º 17
0
 public async System.Threading.Tasks.Task RemoveAsync(Column column)
 {
     if (column != null)
     {
         try
         {
             if (!CurrentUser.Instance.User.FullName.Equals(CurrentProject.Instance.Project.ProjectManager))
             {
                 throw new Exception("You are not permited to remove the column.");
             }
             using (var context = new AsanaDbContext())
             {
                 var c = context.Columns.FirstOrDefault(x => x.Id == column.Id);
                 if (c != null)
                 {
                     context.Columns.Remove(c);
                 }
                 await context.SaveChangesAsync();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
         }
     }
 }
Exemplo n.º 18
0
 public Task <List <dynamic> > GetAllFavoritesMails()
 {
     return(System.Threading.Tasks.Task.Run(() =>
     {
         try
         {
             List <dynamic> messages = new List <dynamic>();
             using (var db = new AsanaDbContext())
                 db.Mails.Where(x => x.UserId == CurrentUser.Instance.User.Id && x.Favorite == true).ToList().ForEach(x => messages.Add(new
                 {
                     x.ID,
                     x.Title,
                     x.UserId,
                     x.SenderEmail,
                     x.Marked,
                     x.BodyHtml,
                     x.Favorite,
                     Body = x.Title + " - " + x.Body,
                     SendTime = x.SendTime.ToShortDateString()
                 }));
             return messages;
         }
         catch (Exception err)
         {
             Log.Error(err.Message);
             return new List <dynamic>();
         }
     }));
 }
Exemplo n.º 19
0
 public Task <List <dynamic> > GetSelectedChannelMessages(Guid ChatRoomId)
 {
     return(System.Threading.Tasks.Task.Run(() =>
     {
         try
         {
             List <dynamic> messages = new List <dynamic>();
             using (var db = new AsanaDbContext())
                 db.Messages.Where(x => x.ChatRoomId == ChatRoomId).ToList().ForEach(x => messages.Add(new
                 {
                     x.ID,
                     x.UserId,
                     x.ChatRoomId,
                     x.Body,
                     x.SendTime
                 }));
             messages = messages.OrderBy(x => x.SendTime).ToList();
             return messages;
         }
         catch (Exception err)
         {
             Log.Error(err.Message);
             return new List <dynamic>();
         }
     }));
 }
Exemplo n.º 20
0
 public System.Threading.Tasks.Task <List <Project> > GetCurrentUserProjects()
 {
     return(System.Threading.Tasks.Task.Run(() =>
     {
         using (var db = new AsanaDbContext())
         {
             var projects = db.Projects.Where(x => x.UserId == CurrentUser.Id).ToList();
             return projects;
         }
     }));
 }
Exemplo n.º 21
0
 public void LoadRoles(Guid projectId)
 {
     if (!String.IsNullOrEmpty(projectId.ToString()))
     {
         using (var context = new AsanaDbContext())
         {
             var c = context.UserRoles.Include("Project").Where(x => x.ProjectId == projectId).ToList();
             CurrentUserRoles.Instance.Employees = new ObservableCollection <UserRoles>(c);
         }
     }
 }
Exemplo n.º 22
0
 public void SetMarked(Guid id)
 {
     try
     {
         using (var db = new AsanaDbContext())
         {
             db.Mails.Single(x => x.ID == id).Marked = true;
             db.SaveChanges();
         }
     }
     catch (Exception err)
     {
         Log.Error(err.Message);
     }
 }
Exemplo n.º 23
0
 public void RemoveStarred(Guid id)
 {
     try
     {
         using (var db = new AsanaDbContext())
         {
             db.Mails.Single(x => x.ID == id).Favorite = false;
             db.SaveChanges();
         }
     }
     catch (Exception err)
     {
         Log.Error(err.Message);
     }
 }
Exemplo n.º 24
0
 public void MarkedAllMail()
 {
     try
     {
         using (var db = new AsanaDbContext())
         {
             db.Mails.Where(x => x.UserId == CurrentUser.Instance.User.Id).ToList().ForEach(x => x.Marked = true);
             db.SaveChanges();
         }
     }
     catch (Exception err)
     {
         Log.Error(err.Message);
     }
 }
Exemplo n.º 25
0
 public Task <List <ChatRoom> > GetListAllPublicChannelsNotJoined()
 {
     return(System.Threading.Tasks.Task.Run(() =>
     {
         using (var dbContext = new AsanaDbContext())
         {
             List <ChatRoom> listId = new List <ChatRoom>();
             foreach (var cr in dbContext.ChatRooms.ToList())
             {
                 if (cr.ProjectId == CurrentProject.Instance.Project.Id && cr.ChatRoomType == ChatRoomType.Public && !dbContext.ChatRoomUsers.ToList().Any(x => x.ChatRoomId == cr.ID && x.UserId == CurrentUser.Id))
                 {
                     listId.Add(cr);
                 }
             }
             return listId;
         }
     }));
 }
Exemplo n.º 26
0
 public bool ForgotControl(string NewPassword)
 {
     try
     {
         using (var db = new AsanaDbContext())
         {
             string email = CurrentUser.Instance.User.Email;
             db.Users.Single(users => users.Email == email).Password = PasswordHasher.Hash(NewPassword);
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception error)
     {
         Log.Error(error.Message);
         return(false);
     }
 }
Exemplo n.º 27
0
 public ICollection <Column> GetAll(Guid projectId)
 {
     try
     {
         using (var context = new AsanaDbContext())
         {
             return(new ObservableCollection <Column>(context.Columns
                                                      .Include("Project")
                                                      .Include("Tasks")
                                                      .Where(x => x.Project.Id == projectId)));
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
     }
     return(null);
 }
Exemplo n.º 28
0
 public static async void EnsurePopulated()
 {
     using (var context = new AsanaDbContext())
     {
         if (context.KanbanState.Count() == 0)
         {
             context.KanbanState.Add(new KanbanState {
                 Name = "Ready for Next Stage"
             });
             context.KanbanState.Add(new KanbanState {
                 Name = "In Progress"
             });
             context.KanbanState.Add(new KanbanState {
                 Name = "Blocked"
             });
         }
         await context.SaveChangesAsync();
     }
 }
Exemplo n.º 29
0
        //public Task<ChatRoom> GetLastAdded(string name)
        //{
        //    return System.Threading.Tasks.Task.Run(() =>
        //    {
        //        using (var dbContext = new AsanaDbContext())
        //           return dbContext.ChatRooms.Last(x => x.Name == name);
        //    });
        //}

        public Task <List <ChatRoom> > GetListPrivateChannelsId()
        {
            return(System.Threading.Tasks.Task.Run(() =>
            {
                using (var dbContext = new AsanaDbContext())
                {
                    List <ChatRoom> listId = new List <ChatRoom>();
                    foreach (var cru in dbContext.ChatRoomUsers.ToList())
                    {
                        var ch = dbContext.ChatRooms.SingleOrDefault(x => x.ID == cru.ChatRoomId && CurrentProject.Instance.Project.Id == x.ProjectId);
                        if (ch != null && ch.ChatRoomType == ChatRoomType.Private && cru.UserId == CurrentUser.Instance.User.Id)
                        {
                            listId.Add(ch);
                        }
                    }
                    return listId;
                }
            }));
        }
Exemplo n.º 30
0
 public ICollection <Project> GetAll(Guid userId)
 {
     if (userId != null)
     {
         try
         {
             using (var db = new AsanaDbContext())
             {
                 return(new ObservableCollection <Project>(db.Projects.Include("User")
                                                           .Include("Columns")
                                                           .Include("Users").Where(x => x.UserId == userId)));
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
         }
     }
     return(null);
 }