示例#1
0
        /// <summary>
        /// This pulls a snapshot of the MyMav system and stores the data. Note that it relies on the old method of using WinForms so it 
        /// wont run on the server and will need to run locally. Needs to be updated to using HttpRequests
        /// </summary>
        public void UTADataPull()
        {
            Stopwatch watch = new Stopwatch();
            watch.Start();
            //TODO Implement a way to get all the semester numbers.
            //new SemesterControl(Server.MapPath("~/Log.txt")).Semesters;
            var semesterList = new List<Semester>()
            {
                new Semester()
                {
                    SemesterNumber = "2158",
                    SemesterName = "Fall 2015",
                    Departments = new List<Department>()
                },
                new Semester()
                {
                    SemesterNumber = "2155",
                    SemesterName = "Summer 2015",
                    Departments = new List<Department>()
                },
                new Semester()
                {
                    SemesterNumber = "2152",
                    SemesterName = "Spring 2015",
                    Departments = new List<Department>()
                },
                new Semester()
                {
                    SemesterNumber = "2145",
                    SemesterName = "Summer 2014",
                    Departments = new List<Department>()

                }

            };
            var departments = new DepartmentListControl();
            //var control = new ClassListControl(semesterList, departments.deptList, Server.MapPath("~/Log.txt"));
            int semesterId = 0;
            foreach (var semester in semesterList)
            {
                Semester data = connection.Query<Semester>("select * from Semester where SemesterNumber='" + semester.SemesterNumber + "'").FirstOrDefault();
                if (data == null)
                {
                    semesterId = connection.Query<int>("insert Semester (SemesterNumber, SemesterName) values (@SemesterNumber, @SemesterName); select cast(scope_identity() as int)", semester).First();

                }
                else
                    semesterId = data.Id;
                semester.Id = semesterId;
                foreach (var currentDepartment in departments.deptList)
                {
                    Department department = connection.Query<Department>("select * from Department where DepartmentAcronym='" + currentDepartment.Substring(currentDepartment.IndexOf('(') + 1, currentDepartment.IndexOf(')') - currentDepartment.IndexOf('(') - 1) + "' and SemesterId='" + semesterId + "'").FirstOrDefault();

                    if (department == null)
                    {
                        var departmentName = currentDepartment.Split('(')[0];
                        departmentName = departmentName.Insert(currentDepartment.IndexOf('\''), "'");
                        department = new Department()
                        {
                            DepartmentName = departmentName.Trim(),
                            DepartmentAcronym = currentDepartment.Substring(currentDepartment.IndexOf('(') + 1, currentDepartment.IndexOf(')') - currentDepartment.IndexOf('(') - 1),
                            SemesterId = semesterId,
                        };
                        var departmentId = connection.Query<int>("insert Department (SemesterId, DepartmentAcronym) values (@SemesterId, @DepartmentAcronym); select cast(scope_identity() as int)", department).First();
                        department.Id = departmentId;

                        semester.Departments.Add(department);
                    }
                    else
                    {
                        semester.Departments.Add(department);
                    }
                }
            }
            foreach(var semester in semesterList)
            {
                Parallel.ForEach(semester.Departments, new ParallelOptions { MaxDegreeOfParallelism = 2 }, x => new MyMavScreenshot(semester, x.DepartmentAcronym, x.Id).Execute());
            }
            //var tempy = new MyMavScreenshot(semesterList.ElementAt(0), "CSE", );
            //    tempy.Execute();
            watch.Stop();
            //return Json(new
            //{
            //    Success = false,
            //    ClassData = semesterList,
            //}, JsonRequestBehavior.AllowGet);
        }
示例#2
0
        /// <summary>
        /// Note that DepartmentListControl is now deprecated and should be converted to using HttpRequest 
        /// as per the other MyMav requests. This method is obselete in the sense that it was written to add additional data after the fact. 
        /// The Batch pull already inserts this data currently.
        /// </summary>
        public void UpdateDepartments()
        {
            var departments = new DepartmentListControl();

            List<Department> mainDepartments = connection.Query<Department>("select * from Department").ToList();
            foreach(var department in departments.deptList)
            {
                var currentDepartment = department.Substring(department.IndexOf('(') + 1, department.IndexOf(')') - department.IndexOf('(') - 1);
                var departmentName = department.Split('(')[0].Trim();
                if (currentDepartment.Contains('\''))
                    currentDepartment.Insert(currentDepartment.IndexOf('\''), "'");
                if (departmentName.Contains('\''))
                    departmentName = departmentName.Insert(departmentName.IndexOf('\''), "'");
                    connection.Query<int>("update Department set DepartmentName='" + departmentName+ "' where DepartmentAcronym = '" + currentDepartment +"'");

            }
        }