public int StudyUserGroupStartListKey(int sugID) { DataClasses1DataContext database = new DataClasses1DataContext(); StudyUserGroup sug = (from s in database.StudyUserGroups where (s.ID == sugID) select s).Single(); return(sug.FirstListID); }
//public bool advanceUserInStudy(DataClasses1DataContext database, int SID, int UID) public bool advanceUserInStudy(int SID, int UID) { DataClasses1DataContext database = new DataClasses1DataContext(); StudiesUser u = (from user in database.StudiesUsers where user.StudyID == SID && user.UserID == UID select user).Single(); //database.Refresh(refresh_mode, new Object[] {u, database.WordSublists, database.TrialTypes}); StudyUserGroup g = u.StudyUserGroup; //database.Refresh(refresh_mode, g); var subkeys = (from s in database.WordSublists select s.ID); var typekeys = (from s in database.TrialTypes select s.ID); int firstSublist = subkeys.Min(); int lastSublist = subkeys.Max(); int firstType = typekeys.Min(); int lastType = typekeys.Max(); if ((u.WordSublistID < lastSublist) && u.Mix) { u.WordSublistID++; u.Mix = false; } else if (!u.Mix) { if (u.WordSublistID == firstSublist) //nothing to mix at the beginning { u.WordSublistID++; } else { u.Mix = true; } } else if (u.TrialTypeID < lastType) { u.WordSublistID = firstSublist; u.TrialTypeID++; u.Mix = false; } else if (u.WordListID == g.FirstListID) { u.WordListID = g.SecondListID; u.WordSublistID = firstSublist; u.TrialTypeID = firstType; } else { u.Complete = true; } database.SubmitChanges(); return(u.Complete); }