public ICollection <KanbanState> GetKanbanStatesOfTask() { using (var asana = new AsanaDbContext()) { return(new ObservableCollection <KanbanState>(asana.KanbanState)); } }
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); } } }
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"); }
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); } } }
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); } } }
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); } } }
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); } } }
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); } }
/// <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); } }
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); } } }
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); } }
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); } } }
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); } } }
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); } }
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); } } }
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); } } } ); }
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); } } }
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>(); } })); }
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>(); } })); }
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; } })); }
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); } } }
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); } }
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); } }
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); } }
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; } })); }
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); } }
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); }
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(); } }
//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; } })); }
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); }