Exemplo n.º 1
0
        // GET: Student
        public async Task <ActionResult> Index(string id)
        {
            OrleansHelper.EnsureOrleansClientInitialized();

            Guid studentGuid = new Guid(id);
            var  grain       = GrainFactory.GetGrain <IStudent>(studentGuid);

            StudentInfo studentInfo = await grain.GetInfo();

            IList <ICollegeClass> classGrains = await grain.GetClasses();

            string[] enrolledClasses = new string[0];
            if (classGrains != null && classGrains.Count > 0)
            {
                var nameTasks = new Task <string> [classGrains.Count];
                for (int i = 0; i < classGrains.Count; i++)
                {
                    nameTasks[i] = classGrains[i].GetName();
                }

                enrolledClasses = await Task.WhenAll(nameTasks);
            }

            var student = new StudentViewModel()
            {
                Id        = studentGuid,
                FirstName = studentInfo.FirstName,
                LastName  = studentInfo.LastName,
                Classes   = enrolledClasses
            };

            return(View(student));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Create(TeacherViewModel teacher)
        {
            OrleansHelper.EnsureOrleansClientInitialized();

            var grain = GrainFactory.GetGrain <ITeacher>(teacher.Id);
            await grain.SetName(teacher.FirstName, teacher.LastName);

            return(RedirectToAction("Index", new { id = teacher.Id.ToString() }));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Create(StudentViewModel student)
        {
            OrleansHelper.EnsureOrleansClientInitialized();

            var grain = GrainFactory.GetGrain <IStudent>(student.Id);
            await grain.SetName(student.FirstName, student.LastName);

            return(RedirectToAction("Index", new { id = student.Id.ToString() }));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Register(RegistrationViewModel registration)
        {
            OrleansHelper.EnsureOrleansClientInitialized();

            ICollegeClass grain        = GrainFactory.GetGrain <ICollegeClass>(registration.ClassId);
            IStudent      studentGrain = GrainFactory.GetGrain <IStudent>(registration.StudentId);
            await grain.RegisterStudent(studentGrain);

            return(RedirectToAction("Index", new { id = registration.ClassId.ToString() }));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> Create(ClassViewModel viewModel)
        {
            OrleansHelper.EnsureOrleansClientInitialized();
            ICollegeClass grain = GrainFactory.GetGrain <ICollegeClass>(viewModel.Id);

            grain.Configure(viewModel.Name, viewModel.Subject);
            await grain.AssignTeacher(new Guid(viewModel.Teacher));

            return(RedirectToAction("Index", "Class", new { id = viewModel.Id }));
        }
Exemplo n.º 6
0
        // GET: Teacher
        public async Task <ActionResult> Index(string id)
        {
            OrleansHelper.EnsureOrleansClientInitialized();

            Guid teacherGuid = new Guid(id);

            ITeacher    grain       = GrainFactory.GetGrain <ITeacher>(teacherGuid);
            TeacherInfo teacherInfo = await grain.GetInfo();

            var teacher = new TeacherViewModel()
            {
                Id        = teacherGuid,
                FirstName = teacherInfo.FirstName,
                LastName  = teacherInfo.LastName
            };

            return(View(teacher));
        }
Exemplo n.º 7
0
        public async Task <ActionResult> Index(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(View());
            }

            OrleansHelper.EnsureOrleansClientInitialized();

            Guid          classGuid = new Guid(id);
            ICollegeClass grain     = GrainFactory.GetGrain <ICollegeClass>(classGuid);

            ClassInfo classInfo = await grain.GetClassInfo();

            IList <IStudent> students = await grain.GetStudents();

            string[] studentNames = new string[0];
            if (students != null && students.Count > 0)
            {
                var studentNameTasks = new Task <string> [students.Count];
                for (int i = 0; i < students.Count; i++)
                {
                    studentNameTasks[i] = students[i].GetFullName();
                }

                studentNames = await Task.WhenAll(studentNameTasks);
            }

            ITeacher teacherGrain = GrainFactory.GetGrain <ITeacher>(classInfo.Teacher);
            string   teacherName  = await teacherGrain.GetFullName();

            var classView = new ClassViewModel()
            {
                Id        = new Guid(id),
                Name      = classInfo.Name,
                Subject   = classInfo.Subject,
                Teacher   = teacherName,
                ClassSize = studentNames.Length,
                Students  = studentNames
            };

            return(View(classView));
        }
Exemplo n.º 8
0
        protected override async Task OnInit()
        {
            await base.OnInit();

            clusterClient = await OrleansHelper.ConnectClient("dev", "gate");
        }