特定のドキュメントのライブラリ設定が必須に設定されている場合にのみ、ユーザーにチェックアウトを求めるメッセージ ボックスが表示されるようにしようとしています。ただし、ドキュメントを最初にチェックアウトする必要がある場合でも、メッセージ ボックスは表示されません。これは私のコードです。
WS.FYPJASMX serviceproxy = new WS.FYPJASMX();
serviceproxy.PreAuthenticate = true;
serviceproxy.UseDefaultCredentials = true;
string url = "";
string folderurl = "";
Boolean reqCheckout = serviceproxy.ValidateCheckout(urlpath, folderurl);
if (reqCheckout == true)
{
DialogResult dialogResult = MessageBox.Show("Do you want to Check out?", "Checking out...", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
//SPSite oSiteCollection = SPContext.Current.Site;
//Boolean reqCheckout= serviceproxy.ValidateCheckout(urlpath, folderurl);
string checkoutSucces = serviceproxy.CheckoutFile(urlpath);
System.Diagnostics.Process.Start(webservice + urlpath);
}
else if (dialogResult == DialogResult.No)
{
this.Close();
}
//CheckInForm c = new CheckInForm();
//c.ShowDialog();
}
else if (reqCheckout == false)
{
System.Diagnostics.Process.Start(webservice + urlpath);
}
}
}
これが私のWebサービスメソッドです。私のためにチェックしてください。
[WebMethod(EnableSession = true, Description = "Typical Web Method")]
public Boolean ValidateCheckout(string url, string folderurl)
{
try
{
//url = "http://it3127:30091/Shared%20Documents/Folder1/Testing%20new%20document.docx";
SPSite site = new SPSite(url);
SPWeb oWebsite = site.OpenWeb();
//SPFolder oFolder = oWebsite.Folders["Shared Documents"];
//SPFileCollection collFiles = oFolder.Files;
SPList _MyDocLibrary = oWebsite.Lists[folderurl];
return _MyDocLibrary.ForceCheckout;
//SPFile file = oWebsite.GetFile(url);
//file.CheckOut();
}
catch (Exception ex)
{
return false;
}
return true;
}