private string[] GetExtraPreReqs(CanvasModule copy, CanvasModule blueprint, List <CanvasModule> CourseCopy, List <CanvasModule> BlueprintCourse) { List <string> extraModules = new List <string>(); foreach (var moduleId in copy.PrerequisiteModuleIds) { if (!Array.Exists(blueprint.PrerequisiteModuleIds, blueprintCopyId => { var CopyPreReqModule = GetModuleFromId(moduleId.ToString(), CourseCopy); if (CopyPreReqModule == null) { return(false); } var BlueprintPreReqModule = GetModuleFromId(blueprintCopyId.ToString(), BlueprintCourse); if (BlueprintPreReqModule == null) { return(false); } return(CopyPreReqModule.Name.Equals(BlueprintPreReqModule.Name)); })) { extraModules.Add(moduleId.ToString()); } } return(extraModules.ToArray()); }
private bool LockDatesMatch(CanvasModule Copy, CanvasModule BlueprintCourse) { bool NoUnlockDates = (Copy.UnlockAt == null && BlueprintCourse.UnlockAt == null); bool BothHaveUnlockDates = (Copy.UnlockAt != null && BlueprintCourse.UnlockAt != null); if (NoUnlockDates || BothHaveUnlockDates) { return(true); } return(false); }
private CanvasModule GetModuleFromId(string ID, List <CanvasModule> Modules) { var ModList = Modules.Where(module => module.Id.ToString() == ID); CanvasModule Mod = null; if (ModList.Count() > 0) { Mod = ModList.ToList()[0]; } return(Mod); }
private bool StatesMatch(CanvasModule Copy, CanvasModule BlueprintCourse) { if (Copy.State == null && BlueprintCourse.State == null) { return(true); } else if (Copy.State == null || BlueprintCourse.State == null) { return(false); } return(Copy.State.Equals(BlueprintCourse.State)); }
/// <summary> /// Dragdrop operation for new module object starts from here /// </summary> /// <param name="module"></param> /// <param name="rootCanvas"></param> private void CreateModuleObject(BaseModule module) { //Canvas rootCanvas = (Canvas)FindName("RootCanvas"); DragCanvas rootCanvas = (DragCanvas)FindName("RootCanvas"); logger.Trace($"Creating module object of Type: {module.GetType()}"); //New module creation starts from hee var newModule = ((App)App.Current).CreateModule(module.GetType()); logger.Trace("Creating CanvasModule for module object {0}", newModule.DisplayName); var canvasModule = new CanvasModule(((BaseModule)newModule)); rootCanvas.Children.Add(canvasModule); canvasModule.Parent2 = rootCanvas; }
private string[] CheckPrereqsFromArray(long[] prototype, long[] test, Dictionary <string, CanvasModule> PrototypeModules, Dictionary <string, CanvasModule> testModules) { List <string> missingModules = new List <string>(); foreach (var prototypeId in prototype) { // goes through every id from the prototype and looks for its match in the test array if (!Array.Exists(test, testId => { //because the module IDs will vary by course, we need to look them up by their actual name. CanvasModule testModule = null; if (testModules.ContainsKey(testId.ToString())) { testModule = testModules[testId.ToString()]; } else { // we couldn't find the module in the test course return(false); } CanvasModule prototypeModule = null; if (PrototypeModules.ContainsKey(prototypeId.ToString())) { prototypeModule = PrototypeModules[prototypeId.ToString()]; } else { // We couldn't find the module in the prototype course return(false); } // now that we found each respective module in the courses, we need to make sure they lineup return(prototypeModule.Name.Equals(testModule.Name)); })) { // if we cant find matching modules missingModules.Add(prototypeId.ToString()); } } return(missingModules.ToArray()); }
private bool SequentialProgressConfigurationsMatch(CanvasModule Copy, CanvasModule BlueprintCourse) { return(Copy.RequireSequentialProgress == BlueprintCourse.RequireSequentialProgress); }