/// <summary> /// Displays the submission status. /// </summary> /// <param name="id">Assignment Identifier</param> /// <returns>The submission page view.</returns> public ActionResult Submit(int id) { User user; try { user = getCurrentUser(); } catch (Exception e) { return(RedirectToAction("Login", "Account")); } if (user.UserRoleID != 2) { return(RedirectToAction("AccessDenied", "Home")); } MultiViewModel MVM = new MultiViewModel(); Course_Assignments ca = GetCourseAssignments().Where(c => c.Course_AssignmentsID == id).First(); StudentCourseRegistration str = GetSCR().Where(s => s.CourseInstanceID == ca.CourseInstanceID && s.STUDENTID == user.UserId).First(); MVM.assignment = GetAssignmentById(ca.AssignmentID); MVM.Questions = GetQuestionsByAssignmentId(MVM.assignment.AssignmentID); MVM.Submissions = GetSubmissions().Where(s => s.StudentCourseRegistrationID == str.StudentCourseRegistrationID); return(View(MVM)); }
/// <summary> /// Setting the viewmodel /// </summary> /// <param name="m"></param> public void SetVM(MazeViewModel m) { myVM = m as MultiViewModel; this.DataContext = myVM; MultiMazeModel tempModel = myVM.MyModel as MultiMazeModel; //Delegate for moving opponent's player on his board tempModel.OpponentMoved += delegate(Object sender, Key e) { int close = 10; this.Dispatcher.Invoke(() => { close = OpponentBoard.MovePlayer(e); //Opponent won if (close == -1 || close == 2) { LoserWindow lw = new LoserWindow(); lw.ShowDialog(); BackToMain(); } //Opponent closed game if (close == -2) { OtherPlayerQuit(); } }); }; myVM.VM_Maze = myVM.MyModel.MazeString(); }
public void PresentShouldInvokeCallbackOnRemove() { var vm = GetViewModel <NavigableViewModelMock>(); IOperationCallback operationCallback = null; OperationCallbackManager.Register = (type, o, arg3, arg4) => { type.ShouldEqual(OperationType.TabNavigation); operationCallback = arg3; }; OperationCallbackManager.SetResult = (o, result) => { result.Operation.ShouldEqual(OperationType.TabNavigation); o.ShouldEqual(vm); operationCallback.Invoke(result); }; vm.OperationResult = true; MultiViewModel viewModel = GetMultiViewModel(); IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel, OperationCallbackManager, (model, context, arg3) => true); IAsyncOperation <bool?> task = presenter.TryShowAsync(vm, DataContext.Empty, null); task.ShouldNotBeNull(); task.IsCompleted.ShouldBeFalse(); viewModel.RemoveViewModelAsync(vm).Result.ShouldBeTrue(); task.IsCompleted.ShouldBeTrue(); task.Result.Result.ShouldEqual(true); operationCallback.ShouldNotBeNull(); }
public void PresentShouldInvokeCallbackOnClear() { var vm = GetViewModel <NavigableViewModelMock>(); IOperationCallback operationCallback = null; ApplicationSettings.Platform = new PlatformInfo(PlatformType.WPF, new Version(0, 0)); OperationCallbackManager.Register = (type, o, arg3, arg4) => { type.ShouldEqual(OperationType.TabNavigation); operationCallback = arg3; }; OperationCallbackManager.SetResult = (o, result) => { result.Operation.ShouldEqual(OperationType.TabNavigation); o.ShouldEqual(vm); operationCallback.Invoke(result); }; vm.OperationResult = true; MultiViewModel viewModel = GetMultiViewModel(); IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel, OperationCallbackManager); IAsyncOperation <bool?> task = presenter.TryShowAsync(vm, DataContext.Empty, null); task.ShouldNotBeNull(); task.IsCompleted.ShouldBeFalse(); viewModel.Clear(); task.IsCompleted.ShouldBeTrue(); task.Result.Result.ShouldEqual(true); operationCallback.ShouldNotBeNull(); }
/// <summary> /// Student Index. /// </summary> /// <returns>Student home page view.</returns> public ActionResult Index() { User user; try { user = getCurrentUser(); } catch (Exception e) { return(RedirectToAction("Login", "Account")); } if (user.UserRoleID != 2) { return(RedirectToAction("AccessDenied", "Home")); } var entity = new graderEntities(); MultiViewModel MVM = new MultiViewModel(); MVM.SCRs = entity.StudentCourseRegistrations.Where(p => p.STUDENTID == user.UserId); MVM.CourseAssignments = GetCourseAssignments(); MVM.CourseInstances = GetCourseInstances(); MVM.Assignments = GetAssignments(); MVM.Submissions = GetSubmissions(); MVM.Courses = GetCourses(); return(View(MVM)); }
public virtual INavigationOperation TryShowAsync(IViewModel viewModel, IDataContext context, IViewModelPresenter parentPresenter) { if (!MultiViewModel.ViewModelType.IsInstanceOfType(viewModel)) { return(null); } bool data; if (context.TryGetData(NavigationConstants.SuppressTabNavigation, out data) && data) { return(null); } if (!CanShowViewModel(viewModel, context, parentPresenter)) { return(null); } if (MultiViewModel.ItemsSource.Any(vm => vm == viewModel)) { MultiViewModel.SelectedItem = viewModel; } else { MultiViewModel.AddViewModel(viewModel, true); } var operation = new NavigationOperation(); CallbackManager.Register(OperationType.TabNavigation, viewModel, operation.ToOperationCallback(), context); return(operation); }
public ActionResult Index(MultiViewModel MVMviewModel) { if (!ModelState.IsValid) { return(View(MVMviewModel)); } else { return(View("Results", MVMviewModel)); } }
public MultiViewPlugin() { InitializeComponent(); _viewModel = new MultiViewModel(); _views = new List <IAMLEditorView>(); DisplayName = "Multiple Views"; IsReactive = true; PaneImage = new BitmapImage( new Uri("pack://application:,,,/Aml.Editor.Plugin.MultiView;component/Plugin.png")); }
protected virtual IAsyncOperation TryShowInternalAsync(IViewModel viewModel, IDataContext context, IViewModelPresenter parentPresenter) { if (MultiViewModel.ItemsSource.Any(vm => vm == viewModel)) { MultiViewModel.SelectedItem = viewModel; } else { MultiViewModel.AddViewModel(viewModel, true); } return(viewModel.RegisterNavigationOperation(OperationType.TabNavigation, context)); }
public void PresenterShouldAddVmToMultiViewModel() { var vm = GetViewModel <NavigableViewModelMock>(); MultiViewModel viewModel = GetMultiViewModel(); IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel, OperationCallbackManager, (model, context, arg3) => true); IAsyncOperation <bool?> task = presenter.TryShowAsync(vm, DataContext.Empty, null); task.ShouldNotBeNull(); task.IsCompleted.ShouldBeFalse(); viewModel.ItemsSource.Contains(vm).ShouldBeTrue(); }
protected virtual IAsyncOperation TryShowInternalAsync(IViewModel viewModel, IDataContext context, IViewModelPresenter parentPresenter) { if (MultiViewModel.ItemsSource.Any(vm => vm == viewModel)) { MultiViewModel.SelectedItem = viewModel; } else { MultiViewModel.AddViewModel(viewModel, true); } var operation = new AsyncOperation <object>(); CallbackManager.Register(OperationType.TabNavigation, viewModel, operation.ToOperationCallback(), context); return(operation); }
// GET: Users/Edit/5 public ActionResult Edit(MultiViewModel model, string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //var address = db.Addresses.Include(a => a.UserId).Where(a => a.UserId == id); var User = db.Users.Find(id); ViewBag.UserRole = new SelectList(db.Roles.ToList(), "Name", "Name"); if (User == null) { return(HttpNotFound()); } return(View(User)); }
public void PreseterShouldUseDelegateToShowViewModel() { bool canShow = false; var vm = GetViewModel <NavigableViewModelMock>(); MultiViewModel viewModel = GetMultiViewModel(); IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel, OperationCallbackManager, (model, context, arg3) => canShow); var task = presenter.TryShowAsync(vm, DataContext.Empty, null); task.ShouldBeNull(); viewModel.ItemsSource.Contains(vm).ShouldBeFalse(); canShow = true; task = presenter.TryShowAsync(vm, DataContext.Empty, null); task.ShouldNotBeNull(); task.IsCompleted.ShouldBeFalse(); viewModel.ItemsSource.Contains(vm).ShouldBeTrue(); }
/// <summary> /// Tries to show the specified <see cref="IViewModel" />. /// </summary> /// <param name="viewModel">The specified <see cref="IViewModel" /> to show.</param> /// <param name="context">The specified context.</param> /// <param name="parentPresenter">The parent presenter, if any.</param> public virtual IAsyncOperation <bool?> TryShowAsync(IViewModel viewModel, IDataContext context, IViewModelPresenter parentPresenter) { Should.NotBeNull(viewModel, "viewModel"); bool data; if (context.TryGetData(NavigationConstants.SuppressTabNavigation, out data) && data) { return(null); } if (!CanShowViewModel(viewModel, context, parentPresenter)) { return(null); } MultiViewModel.AddViewModel(viewModel); var operation = new AsyncOperation <bool?>(); CallbackManager.Register(OperationType.TabNavigation, viewModel, operation.ToOperationCallback(), context); return(operation); }
/// <summary> /// constructor /// </summary> public MultiStartWindow() { InitializeComponent(); MultiMazeModel m = new MultiMazeModel(); int success = m.Connect(); if (success < 0) { ConnectionFailedWindow c = new ConnectionFailedWindow(); c.Show(); } if (success >= 0) { m.GetListOfGames(); myVM = new MultiViewModel(m); DataContext = myVM; GameInfo.btnStart.Click += BtnStart_Click; this.Show(); } }
public ActionResult Submit(HttpPostedFileBase file, int id) { User user; try { user = getCurrentUser(); } catch (Exception e) { return(RedirectToAction("Login", "Account")); } if (user.UserRoleID != 2) { return(RedirectToAction("AccessDenied", "Home")); } MultiViewModel MVM = new MultiViewModel(); using (var model = new graderEntities()) { Course_Assignments cas = (from Course_Assignments in model.Course_Assignments where Course_Assignments.Course_AssignmentsID == id select Course_Assignments).First(); int aid = cas.AssignmentID; Assignment assignment = (from Assignment in model.Assignments where Assignment.AssignmentID == aid select Assignment).First(); IEnumerable <Question> questions = (from Question in model.Questions where Question.AssignmentID == aid select Question).ToList(); IEnumerable <SUBMISSION> subs = (from SUBMISSION in model.SUBMISSIONs select SUBMISSION).ToList(); int qid = int.Parse(Request["questionID"]); int subid = int.Parse(Request["subID"]); SUBMISSION sub = (from SUBMISSION in model.SUBMISSIONs where SUBMISSION.SubmissionID == subid select SUBMISSION).First(); if (file == null) { return(RedirectToAction("Submit")); } if (file.ContentLength >= 0) { //-->should add a message "Already solved" if (sub.Result != null) { if (sub.Result.Equals("Solved!")) { return(RedirectToAction("Index")); } } Question question = (from Question in model.Questions where Question.QuestionID == qid select Question).First(); //-->should add a message "No more tries left" if (question.MaximumTries == sub.TRIES) { return(RedirectToAction("Index")); } ; //-->should add a message "Deadline passed" if (assignment.DEADLINE < DateTime.Now) { return(RedirectToAction("Index")); } sub.SubmittedDate = DateTime.Now; string extension = Path.GetExtension(file.FileName); // the reading happens through a text file, i think we can also read the static java file //if needed if (extension == ".zip") { var fileName = Path.GetFileName(file.FileName); string path = Server.MapPath(@"~\Files") + "\\" + System.Web.HttpContext.Current.User.Identity.Name.Substring(0, System.Web.HttpContext.Current.User.Identity.Name.IndexOf("@")) + "\\" + assignment.AssignmentID + "\\" + question.QuestionID; GC.Collect(); GC.WaitForPendingFinalizers(); if (Directory.Exists(path)) { DirectoryInfo di = new DirectoryInfo(path); foreach (FileInfo fil in di.GetFiles()) { fil.Delete(); } } Directory.CreateDirectory(Server.MapPath(@"~\Files") + "\\" + System.Web.HttpContext.Current.User.Identity.Name.Substring(0, System.Web.HttpContext.Current.User.Identity.Name.IndexOf("@")) + "\\" + assignment.AssignmentID + "\\" + question.QuestionID); path = Path.Combine(path, fileName); file.SaveAs(path); ViewBag.HtmlStr = Request["submit"].Substring(17); int line = Program.run(subid, path); string output = ""; //right format if (line > -10003) { sub.TRIES++; if (line == 0) { output = "Solved!"; sub.GRADE = question.MaximumGrade - question.MaximumGrade * (sub.TRIES - 1) / question.MaximumTries; } else if (line == -10001) { output = "No output provided."; } else if (line == -10002) { output = "Compilation Error."; } else if (line > 0) { output = "Wrong value(s) starting line " + line; } else { output = "Excess of lines in output starting line " + (-line); } } else if (line == -10006) { output = "No Files Found."; } else if (line == -10005) { output = "Directory Not Found. Please Resubmit."; } else if (line == -10004) { output = "No Java File Found."; } else if (line == -10003) { output = "Excess of Files. Non Java Files Found."; } sub.Result = output; sub.FILE = Path.GetDirectoryName(path); model.SaveChanges(); MVM.assignment = assignment; MVM.Questions = questions; MVM.Submissions = subs; Thread.Sleep(3000); return(RedirectToAction("Submit", "Students", new { id = cas.Course_AssignmentsID })); } else { sub.Result = "File submitted is not of correct format."; model.SaveChanges(); return(RedirectToAction("Submit", "Students", new { id = cas.Course_AssignmentsID })); } } else { return(RedirectToAction("Submit", "Students", new { id = cas.Course_AssignmentsID })); } } }
protected override MultiViewModel <IViewModel> GetMultiViewModelInternal() { var vm = new MultiViewModel <IViewModel>(); return(vm); }
public ActionResult Results(MultiViewModel MVMviewModel) { return(View(MVMviewModel)); }