// Obtain tasks given a revisionID and return List of Task objects public List <RevisionTask> GetTasksFromRevisionID(int revisionId) { using (var db = new MonokayuDbContext()) { var res = db.RevisionTasks.Where(r => r.RevisionID == revisionId).ToList(); return(res); } }
// Obtains all comments given a taskID and returns a list of comments object public List <TaskComment> RetrieveCommentsFromTaskID(int taskID) { using (var db = new MonokayuDbContext()) { var CommentQuery = db.TaskComments.Where(c => c.TaskID == taskID); return(CommentQuery.ToList()); } }
public static bool HasTestData() { using (var db = new MonokayuDbContext()) { var user = db.Users2.Where(u => u.firstName == "Lorenzo").Where(u => u.lastName == "Bulosan").FirstOrDefault(); return(user.firstName == "Lorenzo"); } }
// Obtain all revisions given a projectID and return dictionary of revisionID,revisionDeadline public Dictionary <int, DateTime> GetRevisionsFromProject(int projectID) { using (var db = new MonokayuDbContext()) { var res = from r in db.Revisions where r.Project.ProjectID == projectID select r; return(res.ToDictionary(r => r.RevisionID, r => r.deadline)); } }
// Inserts a revision given a project public void GenerateRevisionForProjectID(int projectId, DateTime deadline) { using (var db = new MonokayuDbContext()) { db.Add(new Revision() { deadline = deadline, ProjectID = projectId }); db.SaveChanges(); } }
// methods for testing public static void GenerateRevisionForProjectID(int projectId) { using (var db = new MonokayuDbContext()) { Console.WriteLine($"Creating some Revision for projectID: {projectId}"); db.Add(new Revision() { deadline = new DateTime(), ProjectID = projectId }); db.SaveChanges(); } }
public void AddingRevisionIncreasesCountByOne() { using (var db = new MonokayuDbContext()) { DateTime deadline = DateTime.Now; int countBefore = db.Revisions.Where(r => r.ProjectID == _projectIdToTest).Count(); _revisionManager.GenerateRevisionForProjectID(_projectIdToTest, deadline); int countAfter = db.Revisions.Where(r => r.ProjectID == _projectIdToTest).Count(); Assert.AreEqual(countAfter, countBefore + 1); } }
// Updates task given taskID public void UpdateRevisionTask(int taskID, string title, string description, int urgency, int progress, string url) { using (var db = new MonokayuDbContext()) { var specificTask = db.RevisionTasks.Where(r => r.TaskID == taskID).FirstOrDefault(); specificTask.title = title; specificTask.description = description; specificTask.urgency = urgency; specificTask.progress = progress; specificTask.links = url; db.SaveChanges(); } }
public void TearDown() { // remove test entry in DB if present using (var db = new MonokayuDbContext()) { var users = db.Users2.Where(u => u.firstName == "PersonNameTest").Where(u => u.lastName == "PersonLastNameTest"); db.Users2.RemoveRange(users); var projects = db.Projects2.Where(p => p.projectName == "ProjectNameForTesting"); db.Projects2.RemoveRange(projects); db.SaveChanges(); } }
public static void DeleteTestData() { using (var db = new MonokayuDbContext()) { var user = db.Users2.Where(u => u.firstName == "PersonNameTest").Where(u => u.lastName == "PersonLastNameTest"); var project = db.Projects2.Where(p => p.projectName == "ProjectNameForTesting"); if (user != null || project != null) { return; } db.Users2.RemoveRange(user); db.SaveChanges(); } }
// Obtain projects given a userID and return dictionary of projectID, projectName public Dictionary <int, string> GetProjectsFromUserID(int userID) { using (var db = new MonokayuDbContext()) { var projectsFromUser = from u in db.Users2 join up in db.UserProjects on u.UserID equals up.userID join p in db.Projects2 on up.projectID equals p.ProjectID where u.UserID == userID select new { p.ProjectID, p.projectName }; return(projectsFromUser.ToDictionary(p => p.ProjectID, p => p.projectName)); } }
public void RetrivingRevisionFromProjectReturnsOneMoreThanBeforeWhenAddingOneRevision() { var revisions = _revisionManager.GetRevisionsFromProject(_projectIdToTest); using (var db = new MonokayuDbContext()) { db.Add(new Revision() { deadline = DateTime.Now, ProjectID = _projectIdToTest }); db.SaveChanges(); } var revisionsAfter = _revisionManager.GetRevisionsFromProject(_projectIdToTest); Assert.AreEqual(revisions.Count() + 1, revisionsAfter.Count()); }
// Insert a task given a revisionID public void AddTaskToRevision(int revisionID, string title, string description, int urgency, int progress = 0, string url = "") { using (var db = new MonokayuDbContext()) { db.Add(new RevisionTask { RevisionID = revisionID, title = title, description = description, urgency = urgency, progress = progress, links = url }); db.SaveChanges(); } }
public void Setup() { // instantiate _revisionManager = new RevisionManager(); // Create User and Project Test Data using (var db = new MonokayuDbContext()) { // create user and project to test db.Add(new User2() { firstName = "PersonNameTest", lastName = "PersonLastNameTest", securityLevel = 0, password = "******" }); db.Add(new Project2() { projectName = "ProjectNameForTesting" }); db.SaveChanges(); } // Set global variables using (var db = new MonokayuDbContext()) { // locate data and obtain ids var userID = db.Users2.Where(u => u.firstName == "PersonNameTest").Where(c => c.lastName == "PersonLastNameTest").FirstOrDefault().UserID; var projectID = db.Projects2.Where(p => p.projectName == "ProjectNameForTesting").FirstOrDefault().ProjectID; // assign users to project using joining table db.Add(new UserProject() { userID = userID, projectID = projectID }); _userIdToTest = userID; _projectIdToTest = projectID; db.SaveChanges(); } //using (var db = new MonokayuDbContext()) //{ // db.Add(new Revision() { ProjectID = _projectIdToTest, deadline = DateTime.Now }); // db.SaveChanges(); //} }
// Inserts a comment to an existing task public void AddCommentToTaskID(int taskID, string comment, string senderName) { if (comment != "") { using (var db = new MonokayuDbContext()) { db.Add(new TaskComment { TaskID = taskID, comment = comment, senderName = senderName, time = DateTime.Now });; db.SaveChanges(); } } }
public void AddingAtaskToArevisionIncreasesNumberOfTasksByOne_() { // generate revision first and get id _revisionManager.GenerateRevisionForProjectID(_projectIdToTest, DateTime.Now); Dictionary <int, DateTime> revisionInfo = (Dictionary <int, DateTime>)_revisionManager.GetRevisionsFromProject(_projectIdToTest); int revisionId = revisionInfo.FirstOrDefault().Key; // now add task to revision using (var db = new MonokayuDbContext()) { _revisionManager.AddTaskToRevision(revisionId, "Title test", "Description Test", 0, 1, "monokayu.com"); int countBefore = db.RevisionTasks.Where(r => r.RevisionID == revisionId).Count(); _revisionManager.AddTaskToRevision(revisionId, "Title test", "Description Test", 0, 1, "monokayu.com"); int countAfter = db.RevisionTasks.Where(r => r.RevisionID == revisionId).Count(); Assert.AreEqual(countBefore + 1, countAfter); } }
public static void GenerateProjectTestData() { using (var db = new MonokayuDbContext()) { Console.WriteLine("Creating some projects"); db.Add(new Project2 { projectName = "Calculator" }); db.Add(new Project2 { projectName = "Radio" }); db.Add(new Project2 { projectName = "Revision Manager" }); db.SaveChanges(); } }
public (int userIdToTest, int projectIdToTest) GenerateTestDataForUnitTests() { Console.WriteLine("Generating test data"); using (var db = new MonokayuDbContext()) { // query first if exist //var user = db.Users2.Where(u => u.firstName == "PersonNameTest").Where(u => u.lastName == "PersonLastNameTest").FirstOrDefault(); //var project = db.Projects2.Where(p => p.projectName == "ProjectNameForTesting").FirstOrDefault(); //// if exist //if (user != null || project != null) //{ // return (user.UserID, project.ProjectID); //} //else //{ // create user and project to test db.Add(new User2() { firstName = "PersonNameTest", lastName = "PersonLastNameTest", securityLevel = 0, password = "******" }); db.Add(new Project2 { projectName = "ProjectNameForTesting" }); // locate data and obtain ids int userID = db.Users2.Where(u => u.firstName == "PersonNameTest").Where(u => u.lastName == "PersonLastNameTest").FirstOrDefault().UserID; int projectID = db.Projects2.Where(p => p.projectName == "ProjectNameForTesting").FirstOrDefault().ProjectID; // assign users to project db.Add(new UserProject { userID = userID, projectID = projectID }); //save and return db.SaveChanges(); return(userID, projectID); //return (user.UserID, project.ProjectID); //} } } // end of GenerateTestData()
public static void AssignUsersToProjects() { Console.WriteLine("Assiging projects"); using (var db = new MonokayuDbContext()) { // locating test data ids var LorenzoID = db.Users2.Where(u => u.firstName == "Lorenzo").Where(u => u.lastName == "Bulosan").FirstOrDefault().UserID; var CathyID = db.Users2.Where(u => u.firstName == "Cathy").Where(u => u.lastName == "French").FirstOrDefault().UserID; var MartinID = db.Users2.Where(u => u.firstName == "Martin").Where(u => u.lastName == "Beard").FirstOrDefault().UserID; var Project1ID = db.Projects2.Where(p => p.projectName == "Calculator").FirstOrDefault().ProjectID; var Project2ID = db.Projects2.Where(p => p.projectName == "Radio").FirstOrDefault().ProjectID; var Project3ID = db.Projects2.Where(p => p.projectName == "Revision Manager").FirstOrDefault().ProjectID; // assigning users to projects (many to many) // lorenzo -> project1/project3 // cathy -> project1/project2 // martin -> project3 db.Add(new UserProject { userID = LorenzoID, projectID = Project1ID }); db.Add(new UserProject { userID = LorenzoID, projectID = Project3ID }); db.Add(new UserProject { userID = CathyID, projectID = Project1ID }); db.Add(new UserProject { userID = CathyID, projectID = Project2ID }); db.Add(new UserProject { userID = MartinID, projectID = Project3ID }); db.SaveChanges(); } Console.WriteLine("You can close this console now and proceed to wpf app"); }
public void WhenAddingCommentToTaskCountByOne() { // generate revision first and get id _revisionManager.GenerateRevisionForProjectID(_projectIdToTest, DateTime.Now); Dictionary <int, DateTime> revisionInfo = (Dictionary <int, DateTime>)_revisionManager.GetRevisionsFromProject(_projectIdToTest); int revisionId = revisionInfo.FirstOrDefault().Key; // generate task for testing _revisionManager.AddTaskToRevision(revisionId, "title", "description", 0, 1, "google"); int taskID = _revisionManager.GetTasksFromRevisionID(revisionId).FirstOrDefault().TaskID; // add comment and count before and after using (var db = new MonokayuDbContext()) { var countBefore = db.TaskComments.Where(c => c.TaskID == taskID).Count(); _revisionManager.AddCommentToTaskID(taskID, "Test comment", "LB"); var countAfter = db.TaskComments.Where(c => c.TaskID == taskID).Count(); Assert.AreEqual(countAfter, countBefore + 1); } }
public static int Login(string name, string surname, string password) { using (var db = new MonokayuDbContext()) { var userInfo = db.Users2 .Where(u => u.firstName == name) .Where(u => u.lastName == surname) .Where(u => u.password == password) .FirstOrDefault(); // ternary if if (userInfo != null) { return(userInfo.UserID); } else { throw new ArgumentException("No user found! Make sure your details are correct"); } } }
public static void GenerateUserTestData() { using (var db = new MonokayuDbContext()) { Console.WriteLine("Creating some Users"); db.Add(new User2() { firstName = "Lorenzo", lastName = "Bulosan", securityLevel = 0, password = "******" }); db.Add(new User2() { firstName = "Cathy", lastName = "French", securityLevel = 1, password = "******" }); db.Add(new User2() { firstName = "Martin", lastName = "Beard", securityLevel = 1, password = "******" }); db.SaveChanges(); } }
// Obtains all comments given userID public IEnumerable <Object> RetrieveCommentsOfTaskFromUser(int userID, int taskId) { using (var db = new MonokayuDbContext()) { var commentsFromUser = from u in db.Users2 join up in db.UserProjects on u.UserID equals up.userID join p in db.Projects2 on up.projectID equals p.ProjectID join r in db.Revisions on p.ProjectID equals r.ProjectID join t in db.RevisionTasks on r.RevisionID equals t.RevisionID join c in db.TaskComments on t.TaskID equals c.TaskID where u.UserID == userID where t.TaskID == taskId select new { u.firstName, u.lastName, c.time, c.comment, c.senderName }; return(commentsFromUser.ToList()); } }
public RevisionService() { _db = new MonokayuDbContext(); }