コード例 #1
0
        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);
        }
コード例 #2
0
        //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);
        }