[ToolboxItemAttribute(false)] public class DocumentManager : WebPart { FileUpload fileUploader; protected override void CreateChildControls() { fileUploader = new FileUpload(); this.Controls.Add(fileUploader); Button btnUpload = new Button(); btnUpload.Text = "Upload"; btnUpload.Click += new EventHandler(btnUpload_Click); Button btnCheckOutAllFile = new Button(); btnCheckOutAllFile.Text = "Checkout All files"; btnCheckOutAllFile.Click += new EventHandler(btnCheckOutAllFile_Click); Button cancelCheckout = new Button(); cancelCheckout.Text = "Cancel Checkout"; cancelCheckout.Click += new EventHandler(cancelCheckout_Click); Button checkin = new Button(); checkin.Text = "Check in"; checkin.Click += new EventHandler(checkin_Click); this.Controls.Add(btnUpload); this.Controls.Add(btnCheckOutAllFile); this.Controls.Add(cancelCheckout); this.Controls.Add(checkin); } void checkin_Click(object sender, EventArgs e) { SPWeb myweb = SPContext.Current.Web; SPFolder targetfolder = myweb.Lists["Shared Documents"].RootFolder; foreach (SPFile file in targetfolder.Files) { if ((file.CheckOutType != SPFile.SPCheckOutType.None) && (file.CheckedOutByUser.LoginName == SPContext.Current.Web.CurrentUser.LoginName)) { file.CheckIn("check in automatically"); } } this.Page.Response.Redirect(myweb.Url + "/" + targetfolder.Url); } void cancelCheckout_Click(object sender, EventArgs e) { SPWeb myweb = SPContext.Current.Web; SPFolder targetfolder = myweb.Lists["Shared Documents"].RootFolder; foreach (SPFile file in targetfolder.Files) { if (!(file.CheckOutType == SPFile.SPCheckOutType.None)) { file.UndoCheckOut(); } } this.Page.Response.Redirect(myweb.Url + "/" + targetfolder.Url); } void btnCheckOutAllFile_Click(object sender, EventArgs e) { SPWeb myweb = SPContext.Current.Web; SPFolder targetfolder = myweb.Lists["Shared Documents"].RootFolder; foreach (SPFile file in targetfolder.Files) { if (file.CheckOutType == SPFile.SPCheckOutType.None) { file.CheckOut(); } } this.Page.Response.Redirect(myweb.Url + "/" + targetfolder.Url); } void btnUpload_Click(object sender, EventArgs e) { string fileName = fileUploader.FileName; SPWeb myweb = SPContext.Current.Web; SPFolder targetfolder = myweb.Lists["Shared Documents"].RootFolder; if (Context.Request.InputStream.Length > 0) { System.IO.Stream fileStream = Context.Request.InputStream; byte[] filebytes = new byte[fileStream.Length]; fileStream.Read(filebytes, 0, (int)filebytes.Length); fileStream.Close(); SPFile newfile = targetfolder.Files.Add(fileName, filebytes, true); newfile.CheckOut(); } this.Page.Response.Redirect(myweb.Url + "/" + targetfolder.Url); } }