コード例 #1
0
        public async Task <ActionResult> EditMajor(MajorEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var major = await InstitutionManager.FindMajorByIdAsync(model.Id);

                if (major == null)
                {
                    ModelState.AddModelError("", "未找到此项major");
                    return(View(model));
                }
                var depart = await InstitutionManager.FindDepartmentByIdAsync(model.DepartmentId);

                if (depart == null)
                {
                    ModelState.AddModelError("", "未找到此项depart");
                    return(View(model));
                }
                major.Name       = model.MajorName;
                major.Department = depart;
                await InstitutionManager.UpdateMajorAsync(major);

                return(RedirectToAction("AllMajor"));
            }
            return(View(model));
        }
コード例 #2
0
        public async Task <ActionResult> EditDepartment(DepartmentEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var de = await InstitutionManager.FindDepartmentByIdAsync(model.Id);

                if (de != null)
                {
                    if (!string.IsNullOrEmpty(model.Name))
                    {
                        de.Name = model.Name;
                    }
                    await InstitutionManager.UpdateDepartmentAsync(de);

                    await InstitutionManager.AddMajorsToDepartmentAsync(de, model.IdsToAdd ?? new int[] { });

                    await InstitutionManager.RemoveMajorsFromDepartmentAsync(de, model.IdsToRemove ?? new int[] { });

                    return(RedirectToAction("AllDepartment"));
                }
                else
                {
                    ModelState.AddModelError("", "学院不存在");
                }
            }
            return(View(model));
        }
コード例 #3
0
    /// <summary>
    /// Basic Constructor for newborns, takes in string nameAtBirth, and list of current siblings
    /// string nameAtBirth can be an empty string. the constructor will assign a randomly generated name.
    /// </summary>
    public Person(string nameAtBirth, List <Person> currSiblings)
    {
        DateOfBirth           = Simulator.CurrentTime;
        age                   = 0;
        sigOther              = null;
        siblings              = new List <Person>();
        children              = null;
        parents               = new Person[2];
        id                    = Guid.NewGuid();
        individualPersonality = new Personality();

        //Likely location for a baby should be a home, but this is temp.  It should likely be the home location of the parents in the future.
        currentInstitution = InstitutionManager.RandomInstitutionIfAny();  // Unfinalized method name for random institution
        if (Random.Integer(0, 2) == 1)
        {
            biologicalSex = true;
        }
        else
        {
            biologicalSex = false;
        }
        setSexuality(biologicalSex, Random.Float(0, 1));


        if (currSiblings != null)
        {
            foreach (Person p in currSiblings)
            {
                siblings.Add(p);
            }
        }
        string[] nameSplit = nameAtBirth.Split(' ');
        this.firstName = (nameAtBirth.Length != 0) ? nameSplit[0] : GenerateRandomFirstName();
        this.lastName  = (nameSplit.Length > 1) ? nameSplit[1] : GenerateRandomLastName();
    }
コード例 #4
0
        public async Task <ActionResult> CreateGrade(GradeCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.GradeNumber == 0)
                {
                    ModelState.AddModelError("", "GradeNumber不能为0");
                }
                else
                {
                    var grade = await InstitutionManager.FindGradeByGradeNumberAsync(model.GradeNumber);

                    if (grade == null)
                    {
                        await InstitutionManager.AddGradeAsync(model.GradeNumber);

                        return(RedirectToAction("AllGrade"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "已有相同名称");
                    }
                }
            }
            return(View(model));
        }
コード例 #5
0
        public async Task <ActionResult> CreateDepartment(Department department)
        {
            if (ModelState.IsValid)
            {
                if (!string.IsNullOrEmpty(department.Name))
                {
                    var depart = await InstitutionManager.FindDepartmentByNameAsync(department.Name);

                    if (depart == null)
                    {
                        await InstitutionManager.AddDepartmentAsync(department.Name);

                        return(RedirectToAction("AllDepartment"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "已有相同名称");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "不能为空");
                }
            }
            return(View(department));
        }
コード例 #6
0
        public async Task <ActionResult> CreateClass(ClassCreateViewModel model)
        {
            var departments = await InstitutionManager.GetAllDepartmentsAsync();

            SelectList departSelectList = new SelectList(departments, "Id", "Name");

            ViewBag.departSelectList = departSelectList;

            var majors = await InstitutionManager.GetMajorsForDepartmentAsync(departments.ElementAtOrDefault(0));

            SelectList majorSelectList = new SelectList(majors, "Id", "Name");

            ViewBag.majorSelectList = majorSelectList;

            var grades = await InstitutionManager.GetAllGradesAsync();

            SelectList gradeSelectList = new SelectList(grades, "Id", "GradeNum");

            ViewBag.gradeSelectList = gradeSelectList;

            ViewBag.Classes = await InstitutionManager.GetAllClassesAsync();

            if (ModelState.IsValid)
            {
                var grade = await InstitutionManager.FindGradeByIdAsync(model.GradeId);

                if (grade == null)
                {
                    ModelState.AddModelError("", "找不到grade");
                    return(View(model));
                }
                var major = await InstitutionManager.FindMajorByIdAsync(model.MajorId);

                if (major == null)
                {
                    ModelState.AddModelError("", "找不到major");
                    return(View(model));
                }
                var class1 = new Class
                {
                    ClassDefination = model.Defination,
                    Grade           = grade,
                    Major           = major
                };
                if (await InstitutionManager.IsClassExistAsync(c =>
                                                               !c.IsDeleted && c.Grade.Id == class1.Grade.Id && c.Major.Id == class1.Major.Id &&
                                                               c.ClassDefination == class1.ClassDefination))
                {
                    ModelState.AddModelError("", "已存在Class");
                    return(View(model));
                }
                await InstitutionManager.AddClassAsync(class1);

                return(RedirectToAction("AllClass"));
            }
            return(View(model));
        }
コード例 #7
0
        public async Task <ActionResult> EditClass(ClassEditViewModel model)
        {
            var departments = await InstitutionManager.GetAllDepartmentsAsync();

            SelectList departSelectList = new SelectList(departments.ToList(), "Id", "Name");

            ViewBag.departSelectList = departSelectList;

            var majors = await InstitutionManager.GetMajorsForDepartmentAsync(departments.ElementAtOrDefault(0));

            SelectList majorSelectList = new SelectList(majors.ToList(), "Id", "Name");

            ViewBag.majorSelectList = majorSelectList;

            var grades = await InstitutionManager.GetAllGradesAsync();

            SelectList gradeSelectList = new SelectList(grades.ToList(), "Id", "GradeNum");

            ViewBag.gradeSelectList = gradeSelectList;

            ViewBag.Classes = await InstitutionManager.GetAllClassesAsync();

            if (ModelState.IsValid)
            {
                var class1 = await InstitutionManager.FindClassByIdAsync(model.Id);

                if (class1 == null)
                {
                    ModelState.AddModelError("", "找不到class1");
                    return(View(model));
                }
                var grade = await InstitutionManager.FindGradeByIdAsync(model.GradeId);

                if (grade == null)
                {
                    ModelState.AddModelError("", "找不到grade");
                    return(View(model));
                }
                var major = await InstitutionManager.FindMajorByIdAsync(model.MajorId);

                if (major == null)
                {
                    ModelState.AddModelError("", "找不到major");
                    return(View(model));
                }
                class1.Major           = major;
                class1.Grade           = grade;
                class1.ClassDefination = model.Defination;

                await InstitutionManager.UpdateClassAsync(class1);

                await UserManager.RemoveStudentsFromClassAsync(model.IdsToRemove ?? new string[] { });

                return(RedirectToAction("AllClass"));
            }
            return(View(model));
        }
コード例 #8
0
        public async Task <ActionResult> CreateMajor()
        {
            ViewBag.Majors = await InstitutionManager.GetAllMajorsAsync();

            var departments = await InstitutionManager.GetAllDepartmentsAsync();

            SelectList selectList = new SelectList(departments, "Id", "Name");

            ViewBag.selectList = selectList;
            return(View());
        }
コード例 #9
0
        public async Task <JsonResult> GetMajorOfDepartment(int departId)
        {
            var depart = await InstitutionManager.FindDepartmentByIdAsync(departId);

            if (depart == null)
            {
                return(Json(new { error = 1, message = "找不到该Department" }));
            }
            var s = Json(new { error = 0, message = "获取成功", data = depart.Majors.Select(m => new { m.Id, m.Name }) });

            return(s);
        }
コード例 #10
0
        public async Task <ActionResult> Delete(int id)
        {
            if (ModelState.IsValid)
            {
                var major = await InstitutionManager.FindMajorByIdAsync(id);

                if (major != null)
                {
                    await InstitutionManager.DeleteMajorAsync(major);
                }
            }
            return(RedirectToAction("AllMajor"));
        }
コード例 #11
0
    /// -----------------------------------------------------------------------------------------------------------------------------///
    /// -----------------------------------------------------------------------------------------------------------------------------///
    /// <summary>
    /// Interface function to generate a person with randomly properties
    /// </summary>
    public static Person generateRandomPerson()
    {
        Person p = new Person("", null, new Person[2]);

        p.biologicalSex = (Random.Integer(0, 2) == 1);
        p.setSexuality(p.biologicalSex, Random.Float(0, 1));
        p.age                = Random.Integer(0, 70);
        p.DateOfBirth        = Simulator.CurrentTime.AddYears(-p.age);
        p.firstName          = NameManager.getFirstname(p.biologicalSex ? NameManager.sex.male : NameManager.sex.female);
        p.lastName           = NameManager.getSurname(null);
        p.currentInstitution = InstitutionManager.RandomInstitutionIfAny();
        return(p);
    }
コード例 #12
0
        public async Task <ActionResult> DeleteClass(int?id)
        {
            if (ModelState.IsValid)
            {
                var model = await InstitutionManager.FindClassByIdAsync(id ?? 0);

                if (model != null)
                {
                    await InstitutionManager.DeleteClassAsync(model);
                }
            }
            return(RedirectToAction("AllClass"));
        }
コード例 #13
0
        public async Task <ActionResult> EditGrade(int?id)
        {
            var grade = await InstitutionManager.FindGradeByIdAsync(id ?? 0);

            if (grade == null)
            {
                return(HttpNotFound());
            }
            var grades = await InstitutionManager.GetAllGradesAsync();

            ViewBag.Grades = grades;
            return(View(new GradeEditViewModel {
                GradeNumber = grade.GradeNum, Id = grade.Id
            }));
        }
コード例 #14
0
        public async Task <ActionResult> AddStudent(AddStudentsViewModel model)
        {
            if (ModelState.IsValid)
            {
                var class1 = await InstitutionManager.FindClassByIdAsync(model.ClassId);

                if (class1 == null)
                {
                    return(View("Error", new[] { "班级找不到" }));
                }
                await UserManager.AddStudentsToClassAsync(class1, model.IdsToAdd ?? new string[] { });

                model.IdsToAdd = new string[] { };
                return(RedirectToAction("AddStudent"));
            }
            return(View(model));
        }
コード例 #15
0
        public async Task <ActionResult> AddStudent(int?id, int?p)
        {
            var class1 = await InstitutionManager.FindClassByIdAsync(id ?? 0);

            if (class1 == null)
            {
                ModelState.AddModelError("id", "The Class you are looking for is not Exist");
                return(View("Error", new[] { "The Class you are looking for is not Exist" }));
                //return HttpNotFound("The Class you are looking for is not Exist");
            }
            var students = UserManager.GetNoClassStudents().ToList().ToPagedList(p ?? 1, 10);

            ViewBag.OutStudents = students;
            ViewBag.Class       = class1;

            return(View());
        }
コード例 #16
0
        public async Task <ActionResult> EditGrade(GradeEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var grade = await InstitutionManager.FindGradeByIdAsync(model.Id);

                if (grade == null)
                {
                    ModelState.AddModelError("", "未找到此项grade");
                    return(View(model));
                }
                grade.GradeNum = model.GradeNumber;
                await InstitutionManager.UpdateGradeAsync(grade);

                return(RedirectToAction("AllGrade"));
            }
            return(View(model));
        }
コード例 #17
0
        public async Task <ActionResult> EditDepartment(int id)
        {
            var de = await InstitutionManager.FindDepartmentByIdAsync(id);

            if (de == null)
            {
                return(HttpNotFound());
            }
            ViewBag.InMajors = await InstitutionManager.GetMajorsForDepartmentAsync(de);

            ViewBag.OutMajors = await InstitutionManager.GeNoDepartmentMajorsAsync(de);

            var model = new DepartmentEditViewModel {
                Id = de.Id, Name = de.Name
            };

            return(View(model));
        }
コード例 #18
0
        public async Task <ActionResult> EditMajor(int?id)
        {
            var major = await InstitutionManager.FindMajorByIdAsync(id ?? 0);

            if (major == null)
            {
                return(HttpNotFound());
            }
            var departments = await InstitutionManager.GetAllDepartmentsAsync();

            SelectList selectList = new SelectList(departments, "Id", "Name");

            ViewBag.selectList = selectList;
            var model = new MajorEditViewModel {
                Id = major.Id, DepartmentId = major.Department.Id, MajorName = major.Name
            };

            return(View(model));
        }
コード例 #19
0
    /// <summary>
    /// Constructor for adults, those who may enter the town or are settlers
    /// string nameAtBirth can be an empty string. the constructor will assign a randomly generated name.
    /// </summary>
    public Person(string name, List <Person> currSiblings, int age, Person sigOther, List <Person> children, Person[] parents, bool biologicalSex,
                  bool attractedToMen, bool attractedToWomen)
    {
        this.DateOfBirth           = Simulator.CurrentTime.AddYears(-age);
        this.age                   = age;
        this.sigOther              = sigOther;
        this.siblings              = currSiblings;
        this.children              = children;
        this.parents               = parents;
        this.biologicalSex         = biologicalSex;
        this.attractedToMen        = attractedToMen;
        this.attractedToWomen      = attractedToWomen;
        this.individualPersonality = new Personality();
        this.id = Guid.NewGuid();
        this.currentInstitution = InstitutionManager.RandomInstitution();  // random institution
        string[] nameSplit = name.Split(' ');

        this.firstName = (name.Length != 0) ? nameSplit[0] : GenerateRandomFirstName();
        this.lastName  = (nameSplit.Length > 1) ? nameSplit[1] : GenerateRandomLastName();
    }
コード例 #20
0
        public async Task <ActionResult> EditClass(int?id)
        {
            var class1 = await InstitutionManager.FindClassByIdAsync(id ?? 0);

            if (class1 == null)
            {
                return(HttpNotFound("class不存在"));
            }

            var departments = await InstitutionManager.GetAllDepartmentsAsync();

            SelectList departSelectList = new SelectList(departments.ToList(), "Id", "Name");

            ViewBag.departSelectList = departSelectList;

            var majors = await InstitutionManager.GetMajorsForDepartmentAsync(departments.ElementAtOrDefault(0));

            SelectList majorSelectList = new SelectList(majors.ToList(), "Id", "Name");

            ViewBag.majorSelectList = majorSelectList;

            var grades = await InstitutionManager.GetAllGradesAsync();

            SelectList gradeSelectList = new SelectList(grades.ToList(), "Id", "GradeNum");

            ViewBag.gradeSelectList = gradeSelectList;

            ViewBag.Classes = await InstitutionManager.GetAllClassesAsync();

            var model = new ClassEditViewModel
            {
                Defination   = class1.ClassDefination,
                DepartmentId = class1.Major.Department.Id,
                GradeId      = class1.Grade.Id,
                MajorId      = class1.Major.Id,
                Students     = class1.Students
            };

            return(View(model));
        }
コード例 #21
0
        public async Task <ActionResult> CreateMajor(MajorCreateViewModel major)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrEmpty(major.MajorName))
                {
                    ModelState.AddModelError("", "MajorName不能为空");
                }
                else if (major.DepartmentId == 0)
                {
                    ModelState.AddModelError("", "DepartmentId不能为空");
                }
                else
                {
                    var model = await InstitutionManager.FindMajorByNameAsync(major.MajorName);

                    if (model == null)
                    {
                        await InstitutionManager.AddMajorAsync(major.MajorName);

                        model = await InstitutionManager.FindMajorByNameAsync(major.MajorName);

                        var depart = await InstitutionManager.FindDepartmentByIdAsync(major.DepartmentId);

                        if (depart == null)
                        {
                            ModelState.AddModelError("", "找不到对应学院");
                        }
                        await InstitutionManager.AddMajorsToDepartmentAsync(depart, new[] { model.Id });

                        return(RedirectToAction("AllMajor"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "已有相同名称");
                    }
                }
            }
            return(View(major));
        }
コード例 #22
0
    /// <summary>
    /// Basic Constructor for newborns, takes in string nameAtBirth, list of current siblings, and array of parents
    /// string nameAtBirth can be an empty string. the constructor will assign a randomly generated name.
    /// </summary>
    public Person(string nameAtBirth, List <Person> currSiblings, Person[] parentsParam)
    {
        DateOfBirth           = Simulator.CurrentTime;
        sigOther              = null;
        siblings              = new List <Person>();
        children              = null;
        parents               = parentsParam;
        individualPersonality = new Personality();
        id = Guid.NewGuid();

        /* keeps breaking
         * if(parentsParam[0].currentInstitution == null){
         *  currentInstitution = parentsParam[0].currentInstitution;
         * }
         * else {currentInstitution = InstitutionManager.RandomInstitutionIfAny();}
         */
        currentInstitution = InstitutionManager.RandomInstitutionIfAny();
        if (Random.Integer(0, 2) == 1)
        {
            biologicalSex = true;
        }
        else
        {
            biologicalSex = false;
        }
        setSexuality(biologicalSex, Random.Float(0, 1));

        if (currSiblings != null)
        {
            foreach (Person p in currSiblings)
            {
                siblings.Add(p);
            }
        }
        string[] nameSplit = nameAtBirth.Split(' ');
        this.firstName = (nameAtBirth.Length != 0) ? nameSplit[0] : GenerateRandomFirstName();
        this.lastName  = (nameSplit.Length > 1) ? nameSplit[1] : GenerateRandomLastName();
    }
コード例 #23
0
        public async Task <ActionResult> CreateClass()
        {
            var departments = await InstitutionManager.GetAllDepartmentsAsync();

            SelectList departSelectList = new SelectList(departments, "Id", "Name");

            ViewBag.departSelectList = departSelectList;

            var majors = await InstitutionManager.GetMajorsForDepartmentAsync(departments.ElementAtOrDefault(0));

            SelectList majorSelectList = new SelectList(majors, "Id", "Name");

            ViewBag.majorSelectList = majorSelectList;

            var grades = await InstitutionManager.GetAllGradesAsync();

            SelectList gradeSelectList = new SelectList(grades, "Id", "GradeNum");

            ViewBag.gradeSelectList = gradeSelectList;

            ViewBag.Classes = await InstitutionManager.GetAllClassesAsync();

            return(View());
        }
コード例 #24
0
        public async Task <ActionResult> CreateDepartment()
        {
            ViewBag.Departments = await InstitutionManager.GetAllDepartmentsAsync();

            return(View());
        }
コード例 #25
0
        public async Task <ActionResult> AllDepartment()
        {
            var list = await InstitutionManager.GetAllDepartmentsAsync();

            return(View(list));
        }
コード例 #26
0
        public async Task <ActionResult> AllClass()
        {
            var list = await InstitutionManager.GetAllClassesAsync();

            return(View(list));
        }
コード例 #27
0
        public async Task <ActionResult> CreateGrade()
        {
            ViewBag.Grades = await InstitutionManager.GetAllGradesAsync();

            return(View());
        }
コード例 #28
0
 public InstitutionManager(Space space)
 {
     Space     = space;
     Singleton = this;
 }
コード例 #29
0
 public InstitutionController(InstitutionManager institutionManager)
 {
     _institutionManager = institutionManager;
 }