/// <summary>Resets the IsLatest value for all files to false.</summary> public void ResetIsLatestFiles(int[] excludes, int currentUser) { using (new AllowUnsafeUpdates(web)) { foreach (SPFile file in assignmentFolder.Folder.Files) { bool isLatestValue = false; foreach (int id in excludes) { if (id == file.Item.ID) { isLatestValue = true; break; } } object currentValue = file.Item[DropBox.ColumnIsLatest]; if (currentValue == null || (bool)currentValue != isLatestValue) { DropBoxManager.UnlockFile(file, currentUser); file.Item[DropBox.ColumnIsLatest] = isLatestValue; file.Item.Update(); } } } }
/// <summary>The last submitted files of a user.</summary> /// <param name="user">The user to get the files for.</param> /// <param name="assignmentKey">The key of the assignment.</param> /// <param name="forceUnlock">Force unlocking of all the files.</param> /// <param name="currentUser">The current user id.</param> /// <returns>The last submitted files.</returns> public AssignmentFile[] LastSubmittedFiles(SlkUser user, long assignmentKey, bool forceUnlock, int currentUser) { if (user == null) { throw new ArgumentNullException(); } string queryXml = @"<Where> <And> <Eq><FieldRef Name='{0}'/><Value Type='Text'>{1}</Value></Eq> <Eq><FieldRef Name='{2}'/><Value Type='Text'>{3}</Value></Eq> </And> </Where>"; queryXml = string.Format(CultureInfo.InvariantCulture, queryXml, ColumnAssignmentId, assignmentKey, ColumnLearnerId, user.Key); SPQuery query = new SPQuery(); query.ViewAttributes = "Scope=\"Recursive\""; query.Query = queryXml; SPListItemCollection items = DropBoxList.GetItems(query); List <AssignmentFile> files = new List <AssignmentFile>(); foreach (SPListItem item in items) { if (item[ColumnIsLatest] != null) { if ((bool)item[ColumnIsLatest]) { SPFile file = item.File; if (forceUnlock) { DropBoxManager.UnlockFile(file, currentUser); } files.Add(new AssignmentFile(item.ID, file.Name, file.ServerRelativeUrl, (string)file.Item["PermMask"])); } } } return(files.ToArray()); }