Wednesday, October 6, 2010

Loop through values from a LINQ ResultSet and post the file stored in a database

To iterate through a data retrieved from LINQ

SPDDataDataContext dataObj = new SPDDataDataContext();
    ISingleResult<SelectBidTab4ViewResult> selectObj = null;
protected void Page_Load(object sender, EventArgs e)
    {
        string clerkId = Session["Clerk_ID"].ToString();

        selectObj = dataObj.SelectBidTab4View(clerkId);
        BidTabView.DataSource = dataObj.SelectBidTab4View(clerkId); ;
        BidTabView.DataBind();

    }
    public void BidtabViewCommand(Object sender, GridViewCommandEventArgs e)
    {
        SPDDataDataContext dataObj = new SPDDataDataContext();
        byte[] buffer = null;
        string urlStr = "";
       
        if (e.CommandName == "Download")
        {
            int index = Convert.ToInt32(e.CommandArgument);
            string fileNUm = BidTabView.DataKeys[index].Value.ToString();
            GridViewRow selectRow = BidTabView.Rows[index];
            Label lblDesc = selectRow.FindControl("LabelDesc") as Label;
            string fileDesc = lblDesc.Text.ToString();
            string fileType = "";

            foreach (var dr in selectObj)
            {
                if(dr.File_Identity.ToString() == fileNUm)
                {
                    string fileContent = dr.FileName.ToString();
                    if (dr.FileName.ToString() != "")
                    {
                        buffer = dr.SPD_File.ToArray();
                        fileType = dr.File_Type.ToString();
                    }
                    else
                    {
                        urlStr = fileDesc;
                    }
                }
            }

            if (fileType != "")
            {
                if (fileType == "doc")
                {
                    Response.ContentType = "Application/msword";
                }
                else if (fileType == "pdf")
                {
                    Response.ContentType = "Application/pdf";
                }
                else if (fileType == "xls")
                {
                    Response.ContentType = "Application/x-msexcel";
                }
                else if (fileType == "html")
                {
                    Response.ContentType = "text/HTML";
                }
                else if (fileType == "gif")
                {
                    Response.ContentType = "image/GIF";
                }
                else if (fileType == "jpeg")
                {
                    Response.ContentType = "image/JPEG";
                }

                Response.AddHeader("content-length", buffer.Length.ToString());
                Response.BinaryWrite(buffer);
            }
            else
            {
                Response.Redirect(urlStr);
            }
        }//e.CommandName == "Download"
}

No comments:

Post a Comment