Thursday, 16 April 2015

Idle Session Timeout in SharePoint 2010 Apply on Master Page

Idle Session Timeout is implemented


 Idle session timeout of the application should be set to maximum half an hour i.e. if the application is not in use for continuous half hour then the session must gets expire automatically.



     <script type="text/javascript">
    var idleTime = 0;
    $(document).ready(function () {
     
        var idleInterval = setInterval(timerIncrement, 60000);  
        $(this).mousemove(function (e) {
            idleTime = 0;
        });
        $(this).keypress(function (e) {
            idleTime = 0;
        });
    });

    function timerIncrement() {
        idleTime = idleTime + 1;
        if (idleTime > 19) {        
  //  var path = "http://ibggn5456-2:3333/_layouts/EY.ComplianceMgr.Login/LoginPage.aspx";
// window.navigate(path);  

var newURL = window.location.protocol + "//" + window.location.host + "/" + "_layouts/EY.ComplianceMgr.Login/LoginPage.aspx";
// alert(newURL); window.navigate(newURL);


// document.location.href = "_layouts/EY.ComplianceMgr.Login/LoginPage.aspx";
        }
    }
</script>


//  Get current page url using JavaScript
var currentPageUrl = "";
if (typeof this.href === "undefined") {
    currentPageUrl = document.location.toString().toLowerCase();
}
else {
    currentPageUrl = this.href.toString().toLowerCase();
}


  • window.location.protocol = "http:"
  • window.location.host = "css-tricks.com"
  • window.location.pathname = "example/index.html"
  • var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;

Send the Mail with Format

        string mailSubjects = string.Empty;
        string MailUserName = string.Empty;
        string MailPassword = string.Empty;
        string smtpClientHost = string.Empty;
        string MailFrom = string.Empty;
        string email = string.Empty;
        Int32 SMTPPort = 35;
        string MailFromName = string.Empty;



            MailFrom = "alertwww@ibtechnology.com";
            MailUserName = "alertwww@ibtechnology.com";
            MailPassword = "noida@123";
            smtpClientHost = "10.11.200.225";
            SMTPPort = 35;
            MailFromName = "Compliance";
            mailSubjects = "IA | ACCELERATOR ~ Reminder mail";


        public SPUser ReturnUserName(string siteurl, string AuditOwnerName)
        {
            SPUser ownerName = null;
            using (SPSite oSpSite = new SPSite(siteurl))
            {
                using (SPWeb oSpWeb = oSpSite.OpenWeb())
                {
                    ownerName = oSpWeb.EnsureUser(AuditOwnerName.Trim('#'));
                    return ownerName;
                }
            }
        }

        public void forwardtoAuditOwner(string siteurl,string OwnerName, DataTable dtAuditorOwner,string mailSubjects)
        {
            SPUser ownerName = null;
            string OwnerEmail = string.Empty;
            using (SPSite oSpSite = new SPSite(siteurl))
            {
                using (SPWeb oSpWeb = oSpSite.OpenWeb())
                {
                    string Owner = string.Empty;              
                    ownerName = oSpWeb.EnsureUser(Convert.ToString(OwnerName));                  

                    IAAEmail objIAAEmail = new IAAEmail();
                    objIAAEmail.MailSubject = mailSubjects;
                    //objIAAEmail.ToMailAddress = "ved.p1@ibtechnology.com";
                    objIAAEmail.ToMailAddress = Convert.ToString(ownerName.Email);

                    if (Convert.ToString(ownerName.LoginName.Split('|')[0].Split('.')[1]) == "w")
                    {
                        Owner = ownerName.LoginName.Split('|')[1].Split('\\')[1];
                    }
                    else
                    {
                        Owner = ownerName.LoginName.Split('|')[2];
                    }

                 
                    StringBuilder strbuilder = new StringBuilder();
                    strbuilder.Append(
                        "<table width='100%' border='0' style='border:0px solid #ccc; font-family:'arial'; font-size:12px;' cellpadding='0' cellspacing='10'>"
                        + "<tr>Dear " + Convert.ToString(Owner) + " , " + "</tr>"
                        + "<tr></tr>"
                        + "<tr>The status of the Completion of recommendation is as follows:​</tr>");

                    strbuilder.Append("<tr><td><table width='100%' border='1' style='border:1px solid #ccc; font-family:'Calibri'; font-size:11px;' cellpadding='0' cellspacing='0'>"
                        + "<tr>"
                        + "<td width='30%' colspan='2' style='text-align:center'></td>"
                        + "<td width='55%' colspan='4' style='text-align:center'>Recommendations pending with Owners</td>"
                        + "<td width='15%' style='text-align:center'>Recommendations Pending for your approval</td>"
                        + "</tr>"
                        + "<tr>"
                        + "<td width='15%' style='text-align:center'>Audit Name</td>"
                        + "<td width='15%' style='text-align:center'>Audit ID</td>"
                        + "<td width='15%' style='text-align:center'>Overdue/Delayed</td>"
                        + "<td width='15%' style='text-align:center'>Due in next 30 days</td>"
                        + "<td width='15%' style='text-align:center'>Due beyond 30 days</td>"
                        + "<td width='10%' style='text-align:center'>Total</td>"
                        + "<td width='15%' style='text-align:center'>Total</td>"
                        + "</tr>");

                    if (dtAuditorOwner != null && dtAuditorOwner.Rows.Count > 0)
                    {
                        foreach (DataRow _row in dtAuditorOwner.Rows)
                        {
                            if (Convert.ToString(_row["RTotal"]) != "0")
                            {
                                strbuilder.Append("<tr><td  width='15%' style='text-align:center'>");
                                strbuilder.Append(_row["AuditID"]);
                                strbuilder.Append("</td>");

                                strbuilder.Append("<td  width='15%' style='text-align:center'>");
                                strbuilder.Append(_row["AuditName"].ToString());
                                strbuilder.Append("</td>");

                                strbuilder.Append("<td  width='15%' style='text-align:center'>");
                                strbuilder.Append(_row["ODRecommendation"].ToString());
                                strbuilder.Append("</td>");

                                strbuilder.Append("<td  width='15%' style='text-align:center'>");
                                strbuilder.Append(_row["Dueinnext30days"].ToString());
                                strbuilder.Append("</td>");

                                strbuilder.Append("<td  width='15%' style='text-align:center'>");
                                strbuilder.Append(_row["Duebeyond30days"].ToString());
                                strbuilder.Append("</td>");

                                strbuilder.Append("<td  width='10%' style='text-align:center'>");
                                strbuilder.Append(_row["RTotal"].ToString());

                                strbuilder.Append("<td  width='15%' style='text-align:center'>");
                                strbuilder.Append(_row["RecPendingApproval"]);
                                strbuilder.Append("</td>");
                                strbuilder.Append("</tr>");
                            }
                        }
                    }

                    strbuilder.Append("</table></td></tr>");
                    strbuilder.Append("<tr>Please click on the " + " <a href=" + siteurl + "/_layouts/EY.IAA.Login/LoginPage.aspx>link</a>" + " to review & take action on the same</tr>"
                        + "<tr>Regards<br/>Admin</tr>"
                        + "</table>");

                    objIAAEmail.MailBody = strbuilder.ToString();
                    MailSend(objIAAEmail, oSpWeb);
                }
            }
        }

        public bool MailSend(IAAEmail objIAAEmail, SPWeb oWeb)
        {
            bool result = false;
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    if (!string.IsNullOrEmpty(Convert.ToString(objIAAEmail)))
                    {
                        MailMessage message = new MailMessage(MailFrom, objIAAEmail.ToMailAddress);
                        message.Subject = Convert.ToString(objIAAEmail.MailSubject);
                        message.Body = Convert.ToString(objIAAEmail.MailBody);
                        message.IsBodyHtml = true;
                        NetworkCredential nc = new NetworkCredential(MailUserName, MailPassword);
                        SmtpClient smtpClient = new SmtpClient(smtpClientHost);
                        smtpClient.Port = SMTPPort;
                        smtpClient.Credentials = nc;
                        smtpClient.Send(message);
                        message.Dispose();
                        result = true;
                    }
                });
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

Bulk upload using ProcessBatchData in SharePoint Server 2010

Bulk upload using ProcessBatchData in SharePoint Server 2010

Excel Template Format
Audit Details 
Generated By Generated on
Audit ID(*) Audit Name(*) Entity(*) Locations(*) Audit Status(*) Audit Description Audit Start Date(mm/dd/yyyy)(*) Audit End Date(mm/dd/yyyy) Audit Owner(*) Audit Team(*) Audit Lead(*) Audit Manager(*) Rating Audit Scope(*)



aspx page code

<script type="text/javascript">
    function timedRefresh(timeoutPeriod) {
        setTimeout(function () { _spFormOnSubmitCalled = false; }, 2000);
        return true;
    }
</script>
<div class="speedbar">
    <div class="speedbar-nav">
        IAA > Audit Upload
    </div>
</div>
<div class="contentWrapper">
    <div class="grid-full">
        <div class="title-grid">
            Audit Upload</div>
        <div class="content-gird">
            <div align="center">
                <asp:Label ID="lblExcelError" runat="server"></asp:Label><br />
                <asp:Label ID="lblMessCon" runat="server"></asp:Label></div>
            <div class="control">
                <label class="long">
                    <span>File Upload</span></label>
                <asp:FileUpload ID="AuditExcelUpload" runat="server" />
            </div>
            <div class="control">
                <asp:Button ID="btnAuditUpload" runat="server" Text="Upload Excel Data" CssClass="button-a dark-blue"
                    ValidationGroup="None" OnClientClick="javascript: timedRefresh();" OnClick="btnAuditUpload_Click" />
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:Button ID="btnDownload" runat="server" Text="Download Audit Template" OnClientClick="javascript: timedRefresh(2000)"
                    CssClass="button-a dark-blue btnMarginLeft" OnClick="btnDownload_Click" />
            </div>
              <div class="control" align="center">
              <asp:Label ID="lblAuditID" runat="server" Visible="false" ForeColor="Red" ></asp:Label>
              </div>
            <asp:Label ID="AuditUploadmsg" runat="server" Text="" EnableViewState="false" ForeColor="Red"></asp:Label>
        </div>
    </div>
</div>

.... code End



aspx.cs code


using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web;
using System.IO;
using OfficeOpenXml;
using Microsoft.SharePoint;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Text.RegularExpressions;
using System.Data.OleDb;
using Microsoft.SharePoint.Utilities;

namespace EY.IAA.WebParts.AuditUpload
{
    public partial class AuditUploadUserControl : UserControl
    {
        bool IsAuditID = false;
        string AuditList = "Audit";
        //string AuditList = "Auditss";

        private readonly string BatchXMLBanner = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ows:Batch OnError=\"Return\">{0}</ows:Batch>";

        private readonly string BatchXMLMethod = "<Method ID=\"{0}\"><SetList>{1}</SetList><SetVar Name=\"ID\">New</SetVar><SetVar Name=\"Cmd\">Save</SetVar>{2}</Method>";

        private readonly string BatchXMLSetVar = "<SetVar Name=\"urn:schemas-microsoft-com:office:office#{0}\">{1}</SetVar>";


        protected void Page_Load(object sender, EventArgs e)
        {
        }

        #region Upload Method and events

        protected void btnAuditUpload_Click(object sender, EventArgs e)
        {
            try
            {
                //bulkupload();
                UploadExcelFileToSharePointList();
            }
            catch(Exception ex)
            {
                lblExcelError.Text = ex.Message.ToString();
            }
        }    

        private void UploadExcelFileToSharePointList()
        {
            if (!AuditExcelUpload.HasFile)
            {
                lblExcelError.Visible = true;
                lblExcelError.Text = "Please select a valid Excel File";
                return;
            }
            try
            {

                string Url = SPContext.Current.Web.Url;
                using (SPSite spSite = new SPSite(Url))
                {
                    using (SPWeb spWeb = spSite.OpenWeb())
                    {
                        spWeb.AllowUnsafeUpdates = true;
                        SPList list = spWeb.Lists[AuditList];
                        try
                        {
                            byte[] fileData = AuditExcelUpload.FileBytes;
                            using (MemoryStream memStream = new MemoryStream(fileData))
                            {
                                memStream.Flush();
                                using (ExcelPackage pck = new ExcelPackage(memStream))
                                {
                                    if (pck != null)
                                    {
                                        //CreateListItem(pck, list, spWeb);
                                        CreateListItemTest(pck, list, spWeb);
                                     
                                    }
                                }
                            }

                        }
                        catch (Exception Ex1)
                        {
                            lblExcelError.Text = "Error Occured <br/>" + Ex1.Message;
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                lblExcelError.Text = "Error Occured <br/>" + Ex.Message;
            }
        }

        private void CreateListItem(ExcelPackage pck, SPList list, SPWeb web)
        {
            Dictionary<int, string> column = GetColumnMapping();
            ExcelWorksheet ws = pck.Workbook.Worksheets[1];
            ws.Column(200).Hidden = false;
            int rowCount = ws.Dimension.End.Row + 1;
            int colCount = ws.Dimension.End.Column + 1;
            string Errorline = string.Empty;
            Int32 Errorlinenumber;
            string collistid = string.Empty;
            for (int i = 7; i < rowCount; i++) // Row index starts from 7, as the first row is Title
            {
                try
                {
                    SPListItem item = list.Items.Add();
                    web.AllowUnsafeUpdates = true;
                    if (ws.Cells[i, 200].Value == null)
                    {
                        for (int j = 1; j <= 14; j++)
                        {
                            string v = Convert.ToString(ws.Cells[i, j].Value);
                            switch (j)
                            {
                                case 1:
                                    //collistid = getlist("Audit", v.Trim(), "AuditID");
                                    //item[column[j]] = collistid + ";#" + v.Trim();
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = Convert.ToString(ws.Cells[i, j].Value);
                                    }
                                    break;
                                case 2:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = Convert.ToString(ws.Cells[i, j].Value);
                                    }
                                    break;

                                case 3:

                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;

                                case 4:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = ws.Cells[i, j].Value;
                                    }

                                    break;
                                case 5:

                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;
                                case 6:

                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;
                                case 7:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = Convert.ToDateTime(ws.Cells[i, j].Value);
                                    }
                                    break;
                                case 8:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = Convert.ToDateTime(ws.Cells[i, j].Value);
                                    }
                                    break;
                                case 9:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                       // item[column[j]] = ws.Cells[i, j].Value;
                                        User userApprover = null;
                                        string Approver = string.Empty;
                                        Approver = Convert.ToString(ws.Cells[i, j].Value);
                                        userApprover = GetSiteUser(SPContext.Current.Web.Url, Approver);
                                        item[column[j]] = userApprover;
                                    }
                                    break;
                                case 10:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;
                                case 11:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;
                                case 12:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;
                                case 13:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        collistid = getlist("AuditRating", ws.Cells[i, j].Value.ToString().Trim(), "Rating");
                                        item[column[j]] = collistid + ";#" + ws.Cells[i, j].Value;
                                       // item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;
                                case 14:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        collistid = getlist("AuditProcess", ws.Cells[i, j].Value.ToString().Trim(), "Process Name");
                                        item[column[j]] = collistid + ";#" + ws.Cells[i, j].Value;
                                        //item[column[j]] = ws.Cells[i, j].Value;
                                    }
                                    break;                                        
                            }
                        }
                        item.Update();
                        web.AllowUnsafeUpdates = false;
                        lblExcelError.Visible = true;
                        lblExcelError.ForeColor = System.Drawing.Color.Green;
                        lblExcelError.Text = "Audit uploaded sucessfully.";
                    }
                    else
                    {                    
                        lblExcelError.Visible = true;
                        lblExcelError.ForeColor = System.Drawing.Color.Green;
                        lblExcelError.Text = "Audit uploaded sucessfully.";
                    }
                }
                catch (Exception)
                {
                    Errorlinenumber = i - 6;
                    Errorline += Errorlinenumber + ",";

                }

            }
            //InsertBatchData(web, list);
            lblExcelError.Visible = true;
            if (Errorline != string.Empty)
            {
                Errorline = Errorline.Remove(Errorline.Length - 1);
                lblExcelError.Text = Errorline + " items is not uploaded successfully.";
            }
            else
            {
                lblExcelError.Visible = true;
                lblExcelError.ForeColor = System.Drawing.Color.Green;
                lblExcelError.Text = "Audit uploaded sucessfully";
            }

        }

        private Dictionary<int, string> GetColumnMapping()
        {
            Dictionary<int, string> map = new Dictionary<int, string>();
            //map.Add(1, "Audit ID");
            //map.Add(2, "Audit Name"); // First parameter is the column Index in Excel Sheet and Second Param is SharePoint List's  Column Name (Display Name )
            //map.Add(3, "Entity");
            //map.Add(4, "Locations");
            //map.Add(5, "Audit Status");
            //map.Add(6, "Audit Description");
            //map.Add(7, "Audit Start Date");
            //map.Add(8, "Audit End Date");
            //map.Add(9, "Audit Owner");
            //map.Add(10, "Audit Team");
            //map.Add(11, "Audit Lead");
            //map.Add(12, "Audit Manager");
            //map.Add(13, "Rating");
            //map.Add(14, "Process");
            map.Add(1, "AuditID");
            map.Add(2, "Title");
            map.Add(3, "Entity");
            map.Add(4, "Locations");
            map.Add(5, "AuditStatus");
            map.Add(6, "AuditDescription");
            map.Add(7, "AuditStartDate");
            map.Add(8, "AuditEndDate");
            map.Add(9, "AuditOwner");
            map.Add(10, "AuditTeam");
            map.Add(11, "AuditLead");
            map.Add(12, "AuditManager");
            map.Add(13, "Rating");
            map.Add(14, "AuditScope");
            return map;
        }

        private string getlist(string listname, string fieldname, string listfieldTitle)
        {
            SPSite oSite = new SPSite(SPContext.Current.Web.Url);
            SPWeb oweb = oSite.OpenWeb();
            SPList olist = oweb.Lists[listname];
            string fieldTitle = fieldname;
            Regex rgx = new Regex("/n");
            string result = rgx.Replace(fieldname, "");
            int count = olist.ItemCount;
            SPQuery objQuery = new SPQuery();
            {
                objQuery.Query = @"<Where><Eq><FieldRef Name=" + listfieldTitle + " /><Value Type='Text'>" + result.Trim() + "</Value></Eq></Where>";
            };
            DataTable dt = olist.GetItems(objQuery).GetDataTable();
            string colid = string.Empty;
            if (dt != null)
            {
                SPListItemCollection colItems = olist.GetItems(objQuery);
                colid = colItems[0]["ID"].ToString();
            }
            return colid;
        }

        private SPListItemCollection getsplistitemcoll(SPWeb oweb, string listnme)
        {
            SPList olist = oweb.Lists[listnme];
            DataTable sdqf = olist.GetItems().GetDataTable();
            SPListItemCollection colItems = olist.GetItems();
            return colItems;
        }

        public List<Listval> GetListvalue(SPListItemCollection lisititemcoll, string fieldTitle)
        {
            var count = lisititemcoll.Count;
            List<Listval> lst = new List<Listval>();
            Listval obj = null;
            for (int i = 0; i < count; i++)
            {
                string colid = lisititemcoll[i][fieldTitle].ToString();
                obj = new Listval();
                obj.val = colid;
                lst.Add(obj);
            }
            return lst;
        }

        public void InsertBatchData123(SPWeb web, SPList listdata)
        {
            try
            {
                SPListItemCollection listItem = listdata.GetItems();
                StringBuilder sbadd = new StringBuilder();
                string xmlFormat = @"<?xml version=1.0 encoding=UTF-8?\>";
                sbadd.Append(xmlFormat);
                sbadd.Append("<Batch>");
                sbadd.Append(@"<Method ID='1' Cmd='New'>");

                string buildFields = "<Field Name='Audit ID'>{0}</Field>";
                buildFields = buildFields + "<Field Name='Audit Name'>{1}</Field>";
                buildFields = buildFields + "<Field Name='Entity'>{2}</Field>";
                buildFields = buildFields + "<Field Name='Locations'>{3}</Field>";
                buildFields = buildFields + "<Field Name='Audit Status'>{4}</Field>";
                buildFields = buildFields + "<Field Name='Audit Description'>{5}</Field>";
                buildFields = buildFields + "<Field Name='Audit Start Date'>{6}</Field>";
                buildFields = buildFields + "<Field Name='Audit End Date'>{7}</Field>";
                buildFields = buildFields + "<Field Name='Audit Owner'>{8}</Field>";
                buildFields = buildFields + "<Field Name='Audit Team'>{9}</Field>";
                buildFields = buildFields + "<Field Name='Audit Lead'>{10}</Field>";
                buildFields = buildFields + "<Field Name='Audit Manager'>{11}</Field>";
                buildFields = buildFields + "<Field Name='Rating'>{12}</Field>";
                buildFields = buildFields + "<Field Name='Process'>{13}</Field>";              
                foreach (SPListItem item in listItem)
                {
                    sbadd.Append(string.Format
                       (buildFields, Convert.ToString(item["Audit ID"]).Trim(),
                       Convert.ToString(item["Audit Name"]).Trim(),
                       Convert.ToString(item["Entity"]).Trim(),
                       Convert.ToString(item["Locations"]).Trim(),
                       Convert.ToString(item["Audit Status"]).Trim(),
                       Convert.ToString(item["Audit Description"]).Trim(),
                       Convert.ToDateTime(item["Audit Start Date"]),
                       Convert.ToDateTime(item["Audit End Date"]),
                       Convert.ToString(item["Audit Owner"]).Trim(),
                       Convert.ToString(item["Audit Team"]).Trim(),
                       Convert.ToString(item["Audit Lead"]).Trim(),
                       Convert.ToString(item["Audit Manager"]).Trim(),
                       Convert.ToString(item["Rating"]).Trim(),
                       Convert.ToString(item["Process"]).Trim()
                       ));
                }
                sbadd.Append(@"</Method>");
                sbadd.Append("</Batch>");
                web.ProcessBatchData(sbadd.ToString());
            }
            catch (Exception ex)
            {
                lblExcelError.Text = ex.Message.ToString();
            }
        }

        private string InsertBatchData(SPWeb web, SPList listdata)
        {
            StringBuilder XMLSetVarLines = new StringBuilder();
            StringBuilder XMLSetMethods = new StringBuilder();
            string guid;
            int methodID = 0;
            Dictionary<int, string> listFieldName = GetColumnMapping();
            SPListItemCollection listItem = listdata.GetItems();
            foreach (SPListItem item in listItem)
            {
                guid = Convert.ToString(item["ID"]);
                for (int i = 1; i <= listFieldName.Count; i++)
                {
                    string values;
                    listFieldName.TryGetValue(i, out values);
                    var fieldname = values;
                    var fieldvalue = Convert.ToString(item[fieldname]);
                    XMLSetVarLines.Append(String.Format(BatchXMLSetVar, fieldname, fieldvalue));
                }
                XMLSetMethods.Append(String.Format(BatchXMLMethod, methodID, guid, XMLSetVarLines));
                methodID++;
                XMLSetVarLines.Length = 0;
            }
            return web.ProcessBatchData(String.Format(BatchXMLBanner, XMLSetMethods));
        }

        private void CreateListItemTest(ExcelPackage pck, SPList list, SPWeb web)
        {
            Dictionary<string, User> userDic = new Dictionary<string, User>();
            Dictionary<int, string> column = GetColumnMapping();
            ExcelWorksheet ws = pck.Workbook.Worksheets[1];
            StringBuilder XMLSetVarLines = new StringBuilder();
            StringBuilder XMLSetMethods = new StringBuilder();
            int methodID = 0;
            ws.Column(200).Hidden = false;
            int rowCount = ws.Dimension.End.Row + 1;
            int colCount = ws.Dimension.End.Column + 1;
            string Errorline = string.Empty;
            Int32 Errorlinenumber;
            string collistid = string.Empty;
            string Url = SPContext.Current.Web.Url;
            SPSite site = new SPSite(Url);
            SPWeb CurrentSite = SPContext.Current.Web;
            SPList Auditlists = CurrentSite.Lists[AuditList];
            string guid = Auditlists.ID.ToString();
            web.AllowUnsafeUpdates = true;
            bool AuditIDCheck = false;
            string AuditIDValue = string.Empty;
            for (int i = 7; i < rowCount; i++) // Row index starts from 7, as the first row is Title
            {
                try
                {
                    //SPListItem item = list.Items.Add();                
                    if (ws.Cells[i, 200].Value == null)
                    {
                        for (int j = 1; j <= 14; j++)
                        {
                            string values;
                            column.TryGetValue(j, out values);
                            string v = Convert.ToString(ws.Cells[i, j].Value);
                            switch (j)
                            {
                                case 1:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {                                      
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(ws.Cells[i, j].Value)));
                                        AuditIDCheck = IsAuditIDExist(Convert.ToString(ws.Cells[i, j].Value));
                                        if (AuditIDCheck)
                                        {
                                            AuditIDValue += Convert.ToString(ws.Cells[i, j].Value) + ",";
                                            IsAuditID = AuditIDCheck;
                                        }
                                    }
                                    break;
                                case 2:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(ws.Cells[i, j].Value)));
                                    }
                                    break;
                                case 3:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                         // below code running
                                        //XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(ws.Cells[i, j].Value)));                                      
                                        string EntityData = string.Empty;
                                        EntityData = GetEntitiesParentsChild(Convert.ToString(ws.Cells[i, j].Value));
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(EntityData)));

                                    }
                                    break;
                                case 4:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        // below code running
                                        //XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(ws.Cells[i, j].Value)));
                                        string LocationsData = string.Empty;
                                        LocationsData = GetLocationsParentsChild(Convert.ToString(ws.Cells[i, j].Value));
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(LocationsData)));
                                    }
                                    break;
                                case 5:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(ws.Cells[i, j].Value)));
                                    }
                                    break;
                                case 6:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(ws.Cells[i, j].Value)));
                                    }
                                    break;
                                case 7:
                                   // if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    string AuditStartDate = (SPUtility.CreateISO8601DateTimeFromSystemDateTime(Convert.ToDateTime(ws.Cells[i, j].Value.ToString())));
                                    //DateTime ccc = Convert.ToDateTime(ws.Cells[i, j].Value).Date;
                                   // if (!string.IsNullOrEmpty(Convert.ToDateTime(Convert.ToString(ws.Cells[i, j].Value)).ToString("dd-MMM-yyyy")))
                                    if (!string.IsNullOrEmpty(AuditStartDate))
                                    {
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, AuditStartDate));//Convert.ToDateTime(ws.Cells[i, j].Value).Date));// Convert.ToDateTime(Convert.ToString(ws.Cells[i, j].Value)).ToString("dd-MMM-yyyy")));
                                    }
                                    break;
                                case 8:
                                    string AuditEndDate = (SPUtility.CreateISO8601DateTimeFromSystemDateTime(Convert.ToDateTime(ws.Cells[i, j].Value.ToString())));
                                    if (!string.IsNullOrEmpty(AuditEndDate))
                                    {
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, AuditEndDate));//Convert.ToDateTime(ws.Cells[i, j].Value).Date));// Convert.ToDateTime(Convert.ToString(ws.Cells[i, j].Value)).ToString("dd-MMM-yyyy")));
                                    }
                                    break;
                                case 9:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        SPUser userOwner = EnsureUser(web, Convert.ToString(ws.Cells[i, j].Value));
                                        string userOwners = Convert.ToString(userOwner.ID);
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, userOwners));  
                                    }
                                    break;
                                case 10:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {                                      
                                        SPUser userTeam = EnsureUser(web, Convert.ToString(ws.Cells[i, j].Value));
                                        string userTeams = Convert.ToString(userTeam.ID);
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, userTeams));                                  
                                    }
                                    break;
                                case 11:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        SPUser userLead = EnsureUser(web, Convert.ToString(ws.Cells[i, j].Value));
                                        string userLeands = Convert.ToString(userLead.ID);
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, userLeands));  
                                        // XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(ws.Cells[i, j].Value).Trim()));
                                    }
                                    break;
                                case 12:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        SPUser userManager = EnsureUser(web, Convert.ToString(ws.Cells[i, j].Value));
                                        string userManagers = Convert.ToString(userManager.ID);
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, userManagers));  
                                        //XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, userss));//Convert.ToString(ws.Cells[i, j].Value).Trim()));
                                    }
                                    break;
                                case 13:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        SPList olist = web.Lists["AuditRating"];
                                        string fieldTitle = ws.Cells[i, j].Value.ToString();
                                        SPQuery objQuery = new SPQuery();
                                        {
                                            objQuery.Query = @"<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fieldTitle + "</Value></Eq></Where>";
                                        };
                                        SPListItemCollection colItems = olist.GetItems(objQuery);
                                        string colid = colItems[0]["ID"].ToString();
                                        String fieldValue = colid + ";#" + fieldTitle;                                    
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, fieldValue));
                                    }
                                    break;
                                case 14:
                                    if (!string.IsNullOrEmpty(Convert.ToString(ws.Cells[i, j].Value)))
                                    {
                                        //SPList olist = web.Lists["Scopes"];
                                        //string fieldTitle = ws.Cells[i, j].Value.ToString();
                                        //SPQuery objQuery = new SPQuery();
                                        //{
                                        //    objQuery.Query = @"<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + fieldTitle + "</Value></Eq></Where>";
                                        //};
                                        //SPListItemCollection colItems = olist.GetItems(objQuery);
                                        //string colid = colItems[0]["ID"].ToString();
                                        //String fieldValue = colItems[0]["Title"].ToString();
                                        //String fieldValue = colid + ";#" + fieldTitle;
                                        //String fieldValue = ";#" + fieldTitle;

                                        // below code running
                                        //XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, ws.Cells[i, j].Value));
                                        string AuditScopeData = string.Empty;
                                        AuditScopeData = GetAuditScopeParentsChild(Convert.ToString(ws.Cells[i, j].Value));
                                        XMLSetVarLines.Append(String.Format(BatchXMLSetVar, values, Convert.ToString(AuditScopeData)));

                                     
                                    }
                                    break;
                            }
                        }
                        // item.Update();
                     
                    }
                    else
                    {
                        // updatelistitem(i, list, pck);
                        lblExcelError.Visible = true;
                        lblExcelError.ForeColor = System.Drawing.Color.Green;
                        lblExcelError.Text = "Audit upload sucessfully.";
                    }
                }
                catch (Exception)
                {
                    Errorlinenumber = i - 6;
                    Errorline += Errorlinenumber + ",";
                }
                methodID++;
                XMLSetMethods.Append(String.Format(BatchXMLMethod, methodID, guid, XMLSetVarLines));
            }

            XMLSetVarLines.Length = 0;
            if (IsAuditID)
            {
                lblAuditID.Text = String.Format("AuditID {0} already exists in Audit list.Please rename and upload again.", AuditIDValue.TrimEnd(','));
                lblAuditID.Visible = true;
            }
            else
            {            
                string result = web.ProcessBatchData(String.Format(BatchXMLBanner, XMLSetMethods));
                lblAuditID.Visible = false;
            }
            web.AllowUnsafeUpdates = false;
            //bool IsSave = false;
            //if (!string.IsNullOrEmpty(result))
            //{
            //    try
            //    {
            //        Int64 i = Convert.ToInt64(result);
            //        if (i > 0)
            //        {
            //            IsSave = true;
            //        }
            //    }
            //    catch (Exception)
            //    {
            //        IsSave = false;
            //    }
            //}
            if (!IsAuditID)
            {
                if (methodID > 0)
                {
                    lblExcelError.Visible = true;
                    lblExcelError.ForeColor = System.Drawing.Color.Green;
                    lblExcelError.Text = "Audit upload sucessfully.";
                }
                else
                {
                    lblExcelError.Visible = true;
                    lblExcelError.ForeColor = System.Drawing.Color.Red;
                    lblExcelError.Text = "File is not upload sucessfully"; //result;
                }
            }
        }

   
        public class Listval
        {
            public string val { set; get; }
        }

        public class User
        {
            public int UserId
            {
                get;
                set;
            }

            public string LoginName
            {
                get;
                set;
            }

            public string Email
            {
                get;
                set;
            }

            public string Name { get; set; }
        }

        public static User GetSiteUser(string siteUrl, string userName)
        {
            User user = null;
            //SPSecurity.RunWithElevatedPrivileges(delegate()
            //{
                using (SPSite site = new SPSite(siteUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPUser spUser = web.EnsureUser(userName);
                        if (spUser != null)
                        {
                            user = new User();
                            user.UserId = spUser.ID;
                            user.Email = spUser.Email;
                            user.LoginName = spUser.LoginName;
                            user.Name = spUser.Name;
                        }
                    }
                }
            //});
            return user;
        }


        public void bulkupload()
        {
            try
            {
                string Url = SPContext.Current.Web.Url;
                SPSite site = new SPSite(Url);
                StringBuilder methodBuilder = new StringBuilder();
                string batch = string.Empty;
                DateTime currentDate = DateTime.Now;
                string formattedDate = DateTime.Now.ToString();
                string methodFormat = string.Empty;
                SPWeb CurrentSite = SPContext.Current.Web;
                // Get the list containing the items to update.          
                SPList list = CurrentSite.Lists[AuditList];
                string listGuid = list.ID.ToString();
                for (int i = 0; i < 1000; i++)
                {
                    int itemID = i;
                    string strPost = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                     "<ows:Batch OnError=\"Return\">" +
                       "<Method ID=\"A1\"><SetList>" + listGuid + "</SetList>" +
                         "<SetVar Name=\"ID\">New</SetVar>" +
                         "<SetVar Name=\"Cmd\">Save</SetVar>" +
                         "<SetVar Name=" + "\"urn:schemas-microsoft-com:office:office#Title\">" + "New</SetVar>" +
                         "<SetVar Name=" + "\"urn:schemas-microsoft-com:office:office#EmployeeAccount\">" + CurrentSite.CurrentUser.LoginName.ToString() + "</SetVar>" +
                         "<SetVar Name=" + "\"urn:schemas-microsoft-com:office:office#AssignmentID\">" + "ASN" + i + "</SetVar>" +
                       "</Method>" + "</ows:Batch>";
                    string strProcessBatch = SPContext.Current.Web.ProcessBatchData(strPost);
                }

            }
            catch (Exception ex)
            {
                lblExcelError.Text = ex.Message;
            }
        }

        public bool IsAuditIDExist(string AuditID)
        {
            DataTable dtable = null;
            bool IsAudit = false;
            try
            {
                string Url = SPContext.Current.Web.Url;
                using (SPSite spSite = new SPSite(Url))
                {
                    using (SPWeb spWeb = spSite.OpenWeb())
                    {
                        SPList oSpList = spWeb.Lists.TryGetList(AuditList);
                        if (oSpList != null)
                        {
                            dtable = new DataTable();
                            SPQuery oSpQuery = new SPQuery();
                            oSpQuery.Query = "<Where><Eq><FieldRef Name='AuditID' /><Value Type='Text'>" + AuditID + "</Value></Eq></Where>";
                            oSpQuery.ViewFields = "<FieldRef Name='AuditID' />";
                            oSpQuery.ViewFieldsOnly = true;
                            dtable = oSpList.GetItems(oSpQuery).GetDataTable();
                            if (dtable != null && dtable.Rows.Count > 0)
                            {
                                IsAudit = true;
                            }
                            else
                            {
                                IsAudit = false;
                            }
                        }              
                    }
                }
            }
            catch (Exception ex)
            {
                lblExcelError.Text = ex.Message;
            }
            return IsAudit;
        }

        public DataTable GetEntitiesData(string SiteUrl, string ListName)
        {
            DataTable dtobservationdata = new DataTable();
            using (SPSite site = new SPSite(SiteUrl))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList list = web.Lists.TryGetList(ListName);
                    dtobservationdata = list.GetItems().GetDataTable();
                    return dtobservationdata;
                }
            }
        }

        public string GetEntitiesParentsChild(string EntitiesValue)
        {
            string EntityTitle = string.Empty;
            string strEntityfinal = string.Empty;
            DataTable dtable = null;
            try
            {
                string Url = SPContext.Current.Web.Url;
                using (SPSite spSite = new SPSite(Url))
                {
                    using (SPWeb spWeb = spSite.OpenWeb())
                    {
                        SPList oSpList = spWeb.Lists.TryGetList("Entities");
                        if (oSpList != null)
                        {
                            dtable = new DataTable();
                            SPQuery oSpQuery = new SPQuery();
                            oSpQuery.Query = "<Where><And><Eq><FieldRef Name='Title' /><Value Type='Text'>" + EntitiesValue + "</Value></Eq><Eq><FieldRef Name='IsActive' /><Value Type='Boolean'>1</Value></Eq></And></Where>";
                            oSpQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='EntityId' /><FieldRef Name='ParentEntityID' />";
                            oSpQuery.ViewFieldsOnly = true;
                            dtable = oSpList.GetItems(oSpQuery).GetDataTable();
                            if (dtable != null && dtable.Rows.Count > 0)
                            {
                                bool IsParentEntity = false;
                                int IsParent = 0;
                                int EntityID = 0;
                                foreach (DataRow dritems in dtable.Rows)
                                {
                                    if (IsParent == Convert.ToInt32(dritems["ParentEntityID"]))
                                    {
                                        IsParentEntity = true;
                                    }
                                    EntityID = Convert.ToInt32(dritems["EntityId"]);
                                }
                                if (IsParentEntity)
                                {
                                    SPList oSPLISTs = spWeb.Lists.TryGetList("Entities");
                                    if (oSPLISTs != null)
                                    {
                                        DataTable dtParents = new DataTable();
                                        SPQuery strQuery = new SPQuery();
                                        //<Where><And><Eq><FieldRef Name="ParentEntityID" /><Value Type="Number">1</Value></Eq><Eq><FieldRef Name="IsActive" /><Value Type="Boolean">1</Value></Eq></And></Where>
                                        strQuery.Query = "<Where><And><Eq><FieldRef Name='ParentEntityID' /><Value Type='Number'>" + EntityID + "</Value></Eq><Eq><FieldRef Name='IsActive' /><Value Type='Boolean'>1</Value></Eq></And></Where>";
                                        strQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='EntityId' /><FieldRef Name='ParentEntityID' />";
                                        strQuery.ViewFieldsOnly = true;
                                        dtParents = oSPLISTs.GetItems(strQuery).GetDataTable();
                                        if (dtParents != null && dtParents.Rows.Count > 0)
                                        {
                                            foreach (DataRow drParentsitems in dtParents.Rows)
                                            {
                                                EntityTitle += Convert.ToString(drParentsitems["Title"]) + ",";
                                            }
                                            strEntityfinal = EntitiesValue + "," + EntityTitle;
                                            EntityTitle = strEntityfinal;
                                        }
                                    }
                                }
                                else
                                {
                                    EntityTitle = EntitiesValue;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lblExcelError.Text = ex.Message;
            }
            return EntityTitle.Trim(',');
        }

        public string GetLocationsParentsChild(string LocationsValue)
        {
            string LocationTitle = string.Empty;
            string strLocationfinal = string.Empty;
            DataTable dtable2 = null;
            try
            {
                string Url = SPContext.Current.Web.Url;
                using (SPSite spSite = new SPSite(Url))
                {
                    using (SPWeb spWeb = spSite.OpenWeb())
                    {
                        SPList oSpList = spWeb.Lists.TryGetList("Locations");
                        if (oSpList != null)
                        {
                            dtable2 = new DataTable();
                            SPQuery oSpQuery = new SPQuery();
                            oSpQuery.Query = "<Where><And><Eq><FieldRef Name='Title' /><Value Type='Text'>" + LocationsValue.Trim() + "</Value></Eq><Eq><FieldRef Name='IsActive' /><Value Type='Boolean'>1</Value></Eq></And></Where>";
                            oSpQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='LocationId' /><FieldRef Name='ParentLocationID' />";
                            oSpQuery.ViewFieldsOnly = true;
                            dtable2 = oSpList.GetItems(oSpQuery).GetDataTable();
                            if (dtable2 != null && dtable2.Rows.Count > 0)
                            {
                                bool IsParentLocation = false;
                                int IsParent = 0;
                                int LocationID = 0;
                                foreach (DataRow dritems in dtable2.Rows)
                                {
                                    if (IsParent == Convert.ToInt32(dritems["ParentLocationID"]))
                                    {
                                        IsParentLocation = true;
                                    }
                                    LocationID = Convert.ToInt32(dritems["LocationId"]);
                                }
                                if (IsParentLocation)
                                {
                                    SPList oSPLISTs = spWeb.Lists.TryGetList("Locations");
                                    if (oSPLISTs != null)
                                    {
                                        DataTable dtLocation = new DataTable();
                                        SPQuery strQuery = new SPQuery();
                                        //<Where><And><Eq><FieldRef Name="ParentEntityID" /><Value Type="Number">1</Value></Eq><Eq><FieldRef Name="IsActive" /><Value Type="Boolean">1</Value></Eq></And></Where>
                                        strQuery.Query = "<Where><And><Eq><FieldRef Name='ParentLocationID' /><Value Type='Number'>" + LocationID + "</Value></Eq><Eq><FieldRef Name='IsActive' /><Value Type='Boolean'>1</Value></Eq></And></Where>";
                                        strQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='LocationId' /><FieldRef Name='ParentLocationID' />";
                                        strQuery.ViewFieldsOnly = true;
                                        dtLocation = oSPLISTs.GetItems(strQuery).GetDataTable();
                                        if (dtLocation != null && dtLocation.Rows.Count > 0)
                                        {
                                            foreach (DataRow drParentsitems in dtLocation.Rows)
                                            {
                                                LocationTitle += Convert.ToString(drParentsitems["Title"]) + ",";
                                            }
                                            strLocationfinal = LocationsValue + "," + LocationTitle;
                                            LocationTitle = strLocationfinal;
                                        }
                                    }
                                }
                                else
                                {
                                    LocationTitle = LocationsValue;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lblExcelError.Text = ex.Message;
            }
            return LocationTitle.Trim(',');
        }

        public string GetAuditScopeParentsChild(string AuditScopeValue)
        {
            string AuditScopeTitle = string.Empty;
            string strAuditScopefinal = string.Empty;
            DataTable dtable1 = null;
            try
            {
                string Url = SPContext.Current.Web.Url;
                using (SPSite spSite = new SPSite(Url))
                {
                    using (SPWeb spWeb = spSite.OpenWeb())
                    {
                        SPList oSpList = spWeb.Lists.TryGetList("Scopes");
                        if (oSpList != null)
                        {
                            dtable1 = new DataTable();
                            SPQuery oSpQuery = new SPQuery();
                            oSpQuery.Query = "<Where><And><Eq><FieldRef Name='Title' /><Value Type='Text'>" + AuditScopeValue + "</Value></Eq><Eq><FieldRef Name='IsActive' /><Value Type='Boolean'>1</Value></Eq></And></Where>";
                            oSpQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='Scope_Id' /><FieldRef Name='ParentScopeId' />";
                            oSpQuery.ViewFieldsOnly = true;
                            dtable1 = oSpList.GetItems(oSpQuery).GetDataTable();
                            if (dtable1 != null && dtable1.Rows.Count > 0)
                            {
                                bool IsParentLocation = false;
                                int IsParent = 0;
                                int ScopeID = 0;
                                foreach (DataRow dritems in dtable1.Rows)
                                {
                                    if (IsParent == Convert.ToInt32(dritems["ParentScopeId"]))
                                    {
                                        IsParentLocation = true;
                                    }
                                    ScopeID = Convert.ToInt32(dritems["Scope_Id"]);
                                }
                                if (IsParentLocation)
                                {
                                    SPList oSPLISTs = spWeb.Lists.TryGetList("Scopes");
                                    if (oSPLISTs != null)
                                    {
                                        DataTable dtScopes = new DataTable();
                                        SPQuery strQuery = new SPQuery();
                                        //<Where><And><Eq><FieldRef Name="ParentEntityID" /><Value Type="Number">1</Value></Eq><Eq><FieldRef Name="IsActive" /><Value Type="Boolean">1</Value></Eq></And></Where>
                                        strQuery.Query = "<Where><And><Eq><FieldRef Name='ParentScopeId' /><Value Type='Number'>" + ScopeID + "</Value></Eq><Eq><FieldRef Name='IsActive' /><Value Type='Boolean'>1</Value></Eq></And></Where>";
                                        strQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='Scope_Id' /><FieldRef Name='ParentScopeId' />";
                                        strQuery.ViewFieldsOnly = true;
                                        dtScopes = oSPLISTs.GetItems(strQuery).GetDataTable();
                                        if (dtScopes != null && dtScopes.Rows.Count > 0)
                                        {
                                            foreach (DataRow drParentsitems in dtScopes.Rows)
                                            {
                                                AuditScopeTitle += Convert.ToString(drParentsitems["Title"]) + ",";
                                            }
                                            strAuditScopefinal = AuditScopeValue + "," + AuditScopeTitle;
                                            AuditScopeTitle = strAuditScopefinal;
                                        }
                                    }
                                }
                                else
                                {
                                    AuditScopeTitle = AuditScopeValue;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lblExcelError.Text = ex.Message;
            }
            return AuditScopeTitle.Trim(',');
        }


     #endregion


        #region Download Method and events

        protected void btnDownload_Click(object sender, EventArgs e)
        {
            try
            {
                lblExcelError.Text = "";
                lblExcelError.Text = "";
                DownloadListItemsAsExcelFile();
            }
            catch (Exception ex)
            {
                lblExcelError.Text = ex.Message;
                lblExcelError.Visible = true;
                lblExcelError.ForeColor = System.Drawing.Color.Red;
            }
        }

        protected void DownloadListItemsAsExcelFile()
        {
            try
            {
                string Url = SPContext.Current.Web.Url;
               // int rowindex = 7;
                //using (SPSite spSite = new SPSite(Url))
                //{
                //    using (SPWeb spWeb = spSite.OpenWeb())
                //    {
                        SPSecurity.RunWithElevatedPrivileges(delegate()
                        {
                            string strFileLocationPath = "~/_layouts/AuditTemplate/IAAAuditTemplate.xlsx";
                            string FileLocation = HttpContext.Current.Server.MapPath(strFileLocationPath);
                            string FileName = "AuditTemplate" + DateTime.Now.ToString("dd_MMM_yyyy_HH_mm_ss") + ".xlsx";
                            string strDestPath = "~/_layouts/AuditTemplate/";
                            string DestPath = HttpContext.Current.Server.MapPath(strDestPath + FileName);
                            System.IO.DirectoryInfo myDirInfo = new DirectoryInfo(HttpContext.Current.Server.MapPath(strDestPath));
                            File.Copy(FileLocation, DestPath);
                            string ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileLocation + "; Extended Properties='Excel 12.0 Macro;HDR=NO';";
                            var file = new FileInfo(DestPath);
                            using (var pck = new ExcelPackage(file))
                            {
                                ExcelWorksheet ws = pck.Workbook.Worksheets[1];
                                ExcelWorksheet masterdataAuditRating = pck.Workbook.Worksheets["AuditRating"];
                                ExcelWorksheet masterdataAuditScope = pck.Workbook.Worksheets["AuditScope"];
                                ExcelWorksheet masterdataLocations = pck.Workbook.Worksheets["Locations"];
                                ExcelWorksheet masterdataEntities = pck.Workbook.Worksheets["Entities"];
                                ExcelWorksheet masterdataAuditOwner = pck.Workbook.Worksheets["AuditOwner"];
                                ExcelWorksheet masterdataAuditTeam = pck.Workbook.Worksheets["AuditTeam"];
                                ExcelWorksheet masterdataAuditLead = pck.Workbook.Worksheets["AuditLead"];
                                ExcelWorksheet masterdataAuditManager = pck.Workbook.Worksheets["AuditManager"];                              
                                ws.Cells[4, 1].Value = SPContext.Current.Web.CurrentUser.Name;
                                ws.Cells[4, 4].Value = DateTime.Now.ToString("MM/dd/yyyy");
                                SPListItemCollection AuditRatings = getsplistitemcoll(SPContext.Current.Web, "AuditRating");
                                var objAuditRatingslist = GetListvalue(AuditRatings, "Title");
                                int count0 = 1;
                                foreach (var objAuditRatings in objAuditRatingslist)
                                {
                                    masterdataAuditRating.Cells[count0, 1].Value = objAuditRatings.val.Trim();
                                    count0 = count0 + 1;
                                }
                                SPListItemCollection scopes = getsplistitemcoll(SPContext.Current.Web, "Scopes");
                                var objScopelist = GetListvalue(scopes, "Title");
                                int count = 1;
                                foreach (var objScope in objScopelist)
                                {
                                    masterdataAuditScope.Cells[count, 1].Value = objScope.val.Trim();
                                    count = count + 1;
                                }                            
                                SPListItemCollection SPLocationsColl = getsplistitemcoll(SPContext.Current.Web, "Locations");
                                int count1 = 1;
                                var listLocationsvalue = GetListvalue(SPLocationsColl, "Title");
                                foreach (var bbLocations in listLocationsvalue)
                                {
                                    masterdataLocations.Cells[count1, 1].Value = bbLocations.val.Trim();
                                    count1 = count1 + 1;
                                }
                                SPListItemCollection SPEntitiesColl = getsplistitemcoll(SPContext.Current.Web, "Entities");
                                int count2 = 1;
                                var listEntitiesvalue = GetListvalue(SPEntitiesColl, "Title");
                                foreach (var bbEntities in listEntitiesvalue)
                                {
                                    masterdataEntities.Cells[count2, 1].Value = bbEntities.val.Trim();
                                    count2 = count2 + 1;
                                }
                                int count3 = 1;
                                var listAuditOwnervalue = GetOwner(SPContext.Current.Web, "Business User");                            
                                foreach (var bbAuditOwner in listAuditOwnervalue)
                                {
                                    masterdataAuditOwner.Cells[count3, 1].Value = bbAuditOwner.ToString();
                                    count3 = count3 + 1;
                                }
                                int count4 = 1;
                                var listAuditTeamvalue = GetOwner(SPContext.Current.Web, "Audit User");
                                foreach (var bbAuditTeam in listAuditTeamvalue)
                                {
                                    masterdataAuditTeam.Cells[count4, 1].Value = bbAuditTeam.ToString();
                                    count4 = count4 + 1;
                                }
                                int count5 = 1;
                                var listAuditLeadvalue = GetOwner(SPContext.Current.Web, "Audit User");
                                foreach (var bbAuditLead in listAuditTeamvalue)
                                {
                                    masterdataAuditLead.Cells[count5, 1].Value = bbAuditLead.ToString();
                                    count5 = count5 + 1;
                                }
                                int count6 = 1;
                                var listAuditManagervalue = GetOwner(SPContext.Current.Web, "Audit User");
                                foreach (var bbAuditManager in listAuditManagervalue)
                                {
                                    masterdataAuditManager.Cells[count6, 1].Value = bbAuditManager.ToString();
                                    count6 = count6 + 1;
                                }
                                ws.Cells.AutoFitColumns();
                                ws.Column(200).Hidden = true;
                                pck.SaveAs(this.Page.Response.OutputStream);
                                lblExcelError.Visible = true;
                                lblExcelError.Text = "File Download Successfully";
                                lblExcelError.ForeColor = System.Drawing.Color.Green;
                            }
                            this.Page.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                            this.Page.Response.AddHeader("content-disposition", "attachment;  filename=IAAAuditTemplate_on_" + DateTime.Now.ToString("dd_MMM_yyyy_HH_mm_ss") + ".xlsx");
                            this.Page.Response.Flush();
                            this.Page.Response.End();
                            this.Page.Response.Clear();
                            this.Page.Response.ClearContent();
                            //this.Page.Response.ClearHeaders();
                        });

                //    }
                //}
            }            
            catch (Exception ex)
            {
                lblExcelError.Text = "Error in download file" + ex.Message.ToString();      
            }
        }
     
        private List<String> GetOwner(SPWeb web, string groupName)
        {
            try
            {
                List<String> lstuser = getGroupUsers(groupName, web);
                return lstuser;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public static List<String> getGroupUsers(string groupName, SPWeb web)
        {
            List<String> groupMembers = new List<String>();
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPGroup group = web.SiteGroups[groupName];
                foreach (SPUser user in group.Users)
                {
                    groupMembers.Add(user.Name);
                }

            });

            return groupMembers;
        }
     
        public SPUser EnsureUser(SPWeb web, string username)
        {
            SPUser user = null;
            SPSecurity.RunWithElevatedPrivileges(
                delegate()
                {
                    using (var site = new SPSite(web.Site.ID))
                    {
                        using (SPWeb elevatedWeb = site.OpenWeb(web.ID))
                        {
                            elevatedWeb.AllowUnsafeUpdates = true;
                            user = elevatedWeb.EnsureUser(username);
                        }
                    }
                });

            return user;
        }
     
    #endregion


    }
}


.... code End