Thursday, 4 October 2012

Remove elements from a XML file



private static XDocument GetFilteredData(XDocument resultXML)
{
 //Remove elements of xpath item/title
 //that doesn't contains the title value as 'genome'
 resultXML.Descendants("item").Descendants("title").Where(x => !(x.Value.ToLower().Contains("genome"))).Select(tit => tit.Parent).Remove();

 return resultXML;
}


Merge XML files as one


private static XDocument MergeXMLDocs()
{
 XDocument resultXML = new XDocument();

 resultXML = XDocument.Load("RSSLink(XML data)");

 IEnumerable<XElement> newElements = XDocument.Load("New RSS Link(XML data)").Root.Elements();

 resultXML.Root.Add(newElements);

 return resultXML;
}

Add List Item in SharePoint



SPSecurity.RunWithElevatedPrivileges(delegate()
{
 using (SPSite site = new SPSite("http://mySite:4444/site1"))
 {
  using (SPWeb web = site.OpenWeb())
  {
   web.AllowUnsafeUpdates = true;

   SPList list = web.Lists.TryGetList("Tasks");

   if (list != null)
   {
    //Creates the structure
    SPListItem newListItem = list.Items.Add();

    //Check whether the column is in sharepoint list.
    if(newListItem.Fields.ContainsField("Title"))
     newListItem["Title"] = "Aditya";
    
    if (newListItem.Fields.ContainsField("Last Name"))
     newListItem["Last Name"] = "Reddy";

    if (newListItem.Fields.ContainsField("Employee ID"))
     newListItem["Employee ID"] = "34";

    //Updates the changes in content database
    newListItem.Update();
   }
  web.AllowUnsafeUpdates = false;
  }
 }
});


Thursday, 27 September 2012

Convert Excel sheet to DataTable

 /// <summary>
/// Gets the DataTable
/// </summary>
/// <param name="excelExtension">file extension. either xls or xlsx</param>
/// <param name="excelFilePath">Excel file path</param>
/// <param name="sheetName">Name of the sheet</param>
/// <returns>DataTable</returns>
private static DataTable GetExcelDataTable(string excelExtension, string excelFilePath, string sheetName)
{
DataTable dt = new DataTable();
try
{
string query = String.Format("select * from [{0}$]", sheetName);

string connectionString = string.Empty;

if (excelExtension.ToLower().Trim() == "xls")
connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0""", excelFilePath);

if (excelExtension.ToLower().Trim() == "xlsx")
connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml""", excelFilePath);

using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString))
{
dataAdapter.Fill(dt);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return dt;
}


If you get the following error :

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

Install 'AccessDatabaseEngine.exe for 32-bit or '_x64' for 64-bit OS from
http://www.microsoft.com/en-us/download/details.aspx?id=13255

Thursday, 12 July 2012

Convert DataTable to XML and XML to DataTable.

/// <summary>
/// Gets the xml as string.
/// </summary>
/// <param name="dt">DataTable that need to be converted to xml.</param>
/// <returns>XML as string with schema.</returns>
private static string GetXML(DataTable dt)
{
 if (string.IsNullOrEmpty(dt.TableName))
 {
  dt.TableName = "My DataTable";
  }

 StringWriter writer = new StringWriter();
 dt.WriteXml(writer, XmlWriteMode.WriteSchema, true);
 return writer.ToString();
}



/// <summary>
/// Gets the DataTable from XML.
/// </summary>
/// <param name="xmlData">XML as string.</param>
/// <returns>DataTable with the schema.</returns>
private static DataTable GetDataTable(string xmlData)
{
 DataTable dt = new DataTable("My Data");
 try
 {
  StringReader stringReader = new StringReader(xmlData);
  dt.ReadXml(stringReader);
 }
 catch (Exception ex)
 {
 throw new Exception(ex.Message);
 }
return dt;
}



Monday, 4 June 2012

Change 'System Account' to logged in 'User Name'.


Sometimes in SharePoint 2010, we come across a situation where, instead of showing the user name of logged in, the site is displayed as 'System Account'.

Here are the steps to change it:

Step 1:
Open 'SharePoint 2010 Central Administration'.
Goto 'Security' → 'Configure service accounts'.









Step2:
Select the 'web application' from 1st dropdown list, where you want to change the display name.
Change 'managed account' from 2nd dropdown list.




It will ask to do IISReset, click on OK.

Now goto the 'web application', see the reflected changes.






Tuesday, 24 April 2012

Modal Popup in SharePoint 2010

Hello,
To create a modal popup in sharepoint 2010, follow these steps:

1. Create a visual webpart project.
2. In .ascx, wrtie the following code:
   <script type="text/javascript">
   function OpenDialog(URL) {
    var NewPopUp = SP.UI.$create_DialogOptions();
    NewPopUp.url = URL;
    NewPopUp.width = 900;
    NewPopUp.height = 500;
    SP.UI.ModalDialog.showModalDialog(NewPopUp);
  }
 </script>
 <asp:Button ID="btnOpenDialog" Text="Open Dialog"  
      OnClientClick="javascript:OpenDialog('/_layouts/settings.aspx'); return false;" runat="server" />

3. Deploy the webpart.

When you add the webpart on a page, and click on "Open Dialog" button, we will be noticing the page is opening in a modal popup window.