// 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)); }
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() })); }
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() })); }
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() })); }
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 })); }
// 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)); }
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)); }
protected override async Task OnInit() { await base.OnInit(); clusterClient = await OrleansHelper.ConnectClient("dev", "gate"); }