Saturday, April 30, 2011

Programmatically adding a document to a document library

  public void AddDoctoLibrary()
        {
            if (FileUpload1.PostedFile != null)
            {
                if (FileUpload1.PostedFile.ContentLength > 0)
                {
                    Stream strm = FileUpload1.PostedFile.InputStream;
                    byte[] byt = new byte[Convert.ToInt32(FileUpload1.PostedFile.ContentLength)];
                    strm.Read(byt, 0, Convert.ToInt32(FileUpload1.PostedFile.ContentLength));
                    strm.Close();
                    // Open site where document library is created.
                    using (SPSite oSite = new SPSite(SPContext.Current.Site.ID))
                    {
                        using (SPWeb oWeb = oSite.OpenWeb(SPContext.Current.Web.ID))
                        {
                            SPList lstMeetingDocuments = oWeb.Lists["Meeting Documents"];
                            oWeb.AllowUnsafeUpdates = true;
                            SPFile newfile = lstMeetingDocuments.RootFolder.Files.Add(Path.GetFileName(FileUpload1.PostedFile.FileName), byt);
                            SPListItem newItm = lstMeetingDocuments.GetItemById(newfile.Item.ID);
                            newItm["MeetingID"] = lblMID.Text;
                            newItm.Update();
                            lstMeetingDocuments.Update();
                        }
                    }
                }
            }

Thursday, April 28, 2011

Send mail through server object model


public void sendEmail(string mailid)
        {
            try
            {
                SPWeb web = SPContext.Current.Web;
                bool appendHtmlTag = false;
                bool htmlEncode = false;
                string toAddress = mailid;
                string subject = "Comments";
                string message = txtComment.Text;
                bool result = SPUtility.SendEmail(web, appendHtmlTag, htmlEncode, toAddress, subject, message);

            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }

Get Data from user profile


using Microsoft.Office.InfoPath;
using System;
using System.Xml;
using System.Xml.XPath;
using System.Security.Principal;

using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;

namespace Form1
{
    public partial class FormCode
    {
        // Member variables are not supported in browser-enabled forms.
        // Instead, write and read these values from the FormState
        // dictionary using code such as the following:
        //
        // private object _memberVariable
        // {
        //     get
        //     {
        //         return FormState["_memberVariable"];
        //     }
        //     set
        //     {
        //         FormState["_memberVariable"] = value;
        //     }
        // }

        // NOTE: The following procedure is required by Microsoft InfoPath.
        // It can be modified using Microsoft InfoPath.
        public void InternalStartup()
        {
            EventManager.FormEvents.Loading += new LoadingEventHandler(FormEvents_Loading);
        }

        public void FormEvents_Loading(object sender, LoadingEventArgs e)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    string LoginName = string.Empty;
                    string SiteUrl = SPContext.Current.Site.Url;
                    string UserID = SPContext.Current.Web.CurrentUser.ID.ToString();
                    string EName = string.Empty;
                    string ID = string.Empty;
                    string Mobile = string.Empty;

                    using (SPSite Site = new SPSite(SPContext.Current.Site.ID))
                    {
                        using (SPWeb Web = Site.OpenWeb())
                        {
                            SPList List = Web.Lists["User Information List"];
                            SPQuery Query = new SPQuery();
                            Query.Query = "<Where><Eq><FieldRef Name='ID' /><Value Type='Counter'>" + Convert.ToInt16(UserID) + "</Value></Eq></Where>";
                            SPListItemCollection ItemCollection;
                            ItemCollection = List.GetItems(Query);
                            if (ItemCollection.Count > 0)
                            {
                                foreach (SPListItem ListItem in ItemCollection)
                                {
                                    EName = Convert.ToString(ListItem["Name"]);
                                    ID = Convert.ToString(ListItem["ID"]);
                                    Mobile = Convert.ToString(ListItem["MobilePhone"]);
                                }
                            }
                            UserProfileManager profileManager = new UserProfileManager(ServerContext.Current);
                            SPUser spUser = Site.RootWeb.Users.GetByID(Convert.ToInt16(UserID));
                            UserProfile profile = profileManager.GetUserProfile(spUser.LoginName);

                            XPathNavigator nav = MainDataSource.CreateNavigator();
                            XPathNavigator txtEName = nav.SelectSingleNode("/my:myFields/my:txtEName", NamespaceManager);
                            XPathNavigator txtEmpID = nav.SelectSingleNode("/my:myFields/my:txtEmpID", NamespaceManager);
                            XPathNavigator txtMobile = nav.SelectSingleNode("/my:myFields/my:txtMobile", NamespaceManager);

                            txtEName.SetValue(EName);
                            txtEmpID.SetValue(profile["EmployeeID"].Value.ToString());
                            txtMobile.SetValue(Mobile);

                        }
                    }
                });
            }
            catch (Exception ex)
            {
            }
        }
    }
}

Wednesday, April 27, 2011

EventListener for autogen number


       public override void ItemAdded(SPItemEventProperties properties)
       {
           try
           {
               if (properties.ListItem.Fields.ContainsField("Document_x0020_Inward_x0020_Number"))
               {
                   int autoid = 0;
                   SPList oList = properties.List;
                   SPQuery qry = new SPQuery();
                   qry.Query = "<OrderBy><FieldRef Name='Document_x0020_Inward_x0020_Number' Ascending='False' /></OrderBy>";
                   SPListItemCollection oItemColl = oList.GetItems(qry);
                   autoid = Convert.ToInt16(oItemColl[0]["Document_x0020_Inward_x0020_Number"]);
                   if (autoid == 0)
                       autoid = 100;
                   SPListItem oCurrItem = properties.ListItem;
                   oCurrItem["Document Inward Number"] = autoid + 1;
                   oCurrItem.SystemUpdate();
               }
           }
           catch (Exception ex)
           {
           }
       }

How to launch a document by clicking a link to the file?

Word: <a href='ms-word:ofe|u|path/to/web/word/document.docx'>Link to document</a> Excel: <a href='ms-excel:o...