/// <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();
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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());
        }