// 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());
            }
        }
Exemple #3
0
        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();
     }
 }
Exemple #6
0
 // 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();
            }
        }
Exemple #10
0
        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);
            }
        }
Exemple #17
0
        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();
            }
        }
Exemple #18
0
        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()
Exemple #19
0
        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");
                }
            }
        }
Exemple #22
0
        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());
            }
        }
Exemple #24
0
 public RevisionService()
 {
     _db = new MonokayuDbContext();
 }