myGoogleResults

Monday, October 18, 2010

passing uploaded document as a steam to a webservice from a sharepoint eventhandler

public override void ItemAdded(SPItemEventProperties properties)
{

//SPFile file1 = properties.ListItem.File;

SPSite site = new SPSite("http://win-ofut34hh848:33738");
using (SPWeb web = site.OpenWeb())
{
SPFolder folder = web.GetFolder("http://win-ofut34hh848:33738/TestDocLib");

int a = properties.AfterUrl.IndexOf('/') + 1;
int b = properties.AfterUrl.Length - (properties.AfterUrl.IndexOf('/') + 1);
SPFile file = folder.Files[properties.AfterUrl.Substring(a,b) ];
//byte[] buffer = new byte[];
//file.SaveBinary(buffer);
Stream m = file.OpenBinaryStream();// new MemoryStream(buffer);

ServiceReference1.Service1Client sc = new ServiceReference1.Service1Client();
sc.GetData(m);
}


//}
}

Calling a web service from a SharePoint event handler

High level steps are as follows:

1. Create the Envent reciver for the list using the Visual Studio templete.
2. Add a web reference to WCF Service.
3. Deploy the Event handler.
4. Register the Event handler.
5. Copy the WebReference folder into Site Virtual Directory in C:\inetpub\wwwroot\wss\VirtualDirectories\[port]
6. Add the App.config code inthe web.config file

Sunday, October 17, 2010

SharePoint Document Library display of documents with path

class Program
{
static void Main(string[] args)
{
SPSite site = new SPSite("http://win-ofut34hh848:33738");
using (SPWeb web = site.OpenWeb())
{
//SPList list = web.GetList("/TestDocLib");
//SPListItemCollection folders = list.Folders;
SPFolder folder = web.GetFolder("http://win-ofut34hh848:33738/TestDocLib");

//if (folder.Folder == SPFo)
foreach (SPFolder f in folder.SubFolders)
{
//foreach (SPFolder sf in f.SubFolders)
//{
Console.WriteLine(folder.Name + " \\ " + f.Name + " \n"); //+ sf.Name + "\n" );

foreach (SPFile file in f.Files)
{
Console.WriteLine(" :::: " + file.Name);
}
Console.WriteLine();

//}

}

}

Console.Read();

}
}

Thursday, May 27, 2010

Messaging

MessageQueue myMQ;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
myMQ = new MessageQueue(@".\Private$\InteropQueue");

if (myMQ != null && !MessageQueue.Exists(myMQ.Path))
{
myMQ = MessageQueue.Create(@".\Private$\InteropQueue");

}

System.Messaging.Message msg = new System.Messaging.Message();
msg.Body = "Test";

myMQ.Send(msg);
}


MessageQueue mq;
System.Messaging.Message msg;
private void button2_Click(object sender, EventArgs e)
{
mq = new MessageQueue(@".\Private$\InteropQueue");

Type[] types = new Type[1];
types[0] = typeof(String);
mq.Formatter = new XmlMessageFormatter(types);

try
{
// Call receive on queue
msg = mq.Receive(new TimeSpan(0, 0, 100)); // 5 is wait time in seconds
// Assign to variable
MessageBox.Show(msg.Body.ToString());
}
catch( Exception ex)
{
MessageBox.Show(ex.Message);
}