1) admin/Attendance.aspx.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Admin_Default : System.Web.UI.Page
{
    MainClass dut = new MainClass();
    DataAccessLayer dal = new DataAccessLayer();
    public string srno = "P-1";
    public string TimeSpend = "0";
    public string ComingTime = "";
    public string GoingTime = "";
    public string Outside = string.Empty;
    public string DoneReminders = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
        download_XL.Visible = true;
        if (!IsPostBack)
        {
            
            if (Session["admin_srno"] == null)
                Response.Redirect("~/Pr-Admin-Log");

            bindDoneReminders();
            BinddropdownList();
            GetoutsideEmp();
        }
    }
    private void BinddropdownList()
    {
        string[] col1 = { "@srno", "@Actiontype" };
        object[] val1 = { "0", "select8" };
        DataSet ds1 = dal.getDataSet("ManageLogin", col1, val1);
        if (ds1.Tables[0].Rows.Count > 0)
        {
            ddlusers.DataSource = ds1.Tables[0];
            ddlusers.DataTextField = "name";
            ddlusers.DataValueField = "srno";
            ddlusers.DataBind();
        }

        ddlusers.Items.Insert(0, new ListItem("All", "0"));
    } 
    private void bindDoneReminders()
    {
        try
        {
            if (Session["admin_srno"] != null)
            {
                string[] col1 = { "@srno", "@Actiontype" };
                object[] val1 = { "0", "select8" };
                DataSet ds = dal.getDataSet("ManageLogin", col1, val1);

                DataSet tableCollection = new DataSet();
                tableCollection.Clear();
                if (ds.Tables[0].Rows.Count > 0)
                {
                    string strDoneReminders = string.Empty;
                    for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                    {
                        string tableName = ds.Tables[0].Rows[j]["name"].ToString().Length > 30 ? ds.Tables[0].Rows[j]["name"].ToString().Substring(0, 30) : ds.Tables[0].Rows[j]["name"].ToString();
                        DataTable table = new DataTable(tableName);
                        table.Clear();
                        table.Columns.Add("Coming Time", typeof(string));
                        table.Columns.Add("Coming Message", typeof(string));
                        table.Columns.Add("Going Time", typeof(string));
                        table.Columns.Add("Going Message", typeof(string));
                        table.Columns.Add("Total Company Time", typeof(string));
                        table.Columns.Add("Total Time Spend", typeof(string));
                        DataRow _dr = table.NewRow();
                        string Time = BindSpendTime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()));
                        string comingMessage;
                        string goingMessage;
                        int isMeetingGoodMorning;
                        string Company_Time = "0";
                        DateTime Coming_Time;
                        DateTime Going_Time;
                        string comingtime1 = comingtimess(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), out comingMessage, out isMeetingGoodMorning,out Coming_Time);
                        string goingtime1 = goingtimess(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), out goingMessage,out Going_Time);

                        if (Going_Time.ToString() == Coming_Time.ToString())
                        {
                            Company_Time = "User not say good night";
                        }
                        else
                        {
                            double double_minutes = Going_Time.Subtract(Coming_Time).TotalMinutes;
                            if (double_minutes > 60)
                            {
                                double Hours = double_minutes / 60;
                                double Min = double_minutes % 60;
                                Company_Time = Hours.ToString().Split('.').ElementAt(0) + " Hours " + Min.ToString("N0") + " Mins";
                            }
                            else
                            {
                                Company_Time = double_minutes.ToString("N0") + " Mins";
                            }
                        }



                        strDoneReminders += "<table class='table table-bordered cart_summary'> <thead><tr>";
                        strDoneReminders += " <th style='text-align: left;'>" + ds.Tables[0].Rows[j]["name"].ToString() + "</th>";
                        strDoneReminders += "<th align='right'>Coming Time :</th><th>" + comingtime1 + "</th></tr> </thead>";
                        strDoneReminders += "<tbody>";
                        _dr["Coming Time"] = comingtime1;
                        //For Coming Message display, if any start
                        if (!String.IsNullOrEmpty(comingMessage))
                        {
                            strDoneReminders += "<tr><td>&nbsp;</td>";
                            if (isMeetingGoodMorning == 1)
                            {
                                strDoneReminders += "<td>Meeting Good Morning Message</td>";
                                _dr["Coming Message"] = "M " + comingMessage;
                            }
                            else
                            {
                                strDoneReminders += "<td>Coming Message</td>";
                                _dr["Coming Message"] = comingMessage;
                            }
                            strDoneReminders += "<td>" + comingMessage + "</td></tr>";
                        }
                        //For Coming Message display, if any end 
                        string[] col2 = { "@Id", "@User_Id", "@Actiontype" };
                        object[] val2 = { "0", ds.Tables[0].Rows[j]["srno"], "Select2" };
                        DataSet ds2 = dal.getDataSet("TimeCalculator", col2, val2);
                        for (int k = 0; k < ds2.Tables[0].Rows.Count; k++)
                        {
                            strDoneReminders += "<tr><td>&nbsp;</td>";
                            string status = "";
                            string CmpPor = "";
                            status = ds2.Tables[0].Rows[k]["Status"].ToString();
                            if (status == "In")
                            {
                                CmpPor = ds2.Tables[0].Rows[k - 1]["Company_Purpose"].ToString();
                                if (CmpPor != "") 
                                {
                                    strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " (" + (double.Parse(ds2.Tables[0].Rows[k]["Company_Purpose_S_Time"].ToString()) / 60).ToString("N0") + " Mins Company purpose) </td>";
                                }
                                else
                                {
                                    strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";
                                }
                            }
                            else
                            {
                                strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";

                            }
                            strDoneReminders += "<td>" + DateTime.Parse(ds2.Tables[0].Rows[k]["Timing"].ToString()).ToString("h:mm tt") + "</td>";
                        }
                        strDoneReminders += "<tr><td>&nbsp;</td>";
                        strDoneReminders += "<td><strong> Total time spend</strong></td>";
                        strDoneReminders += "<td>" + Time + " mins</td>";

                        if (goingtime1 != "")
                        {
                            strDoneReminders += "<tr><td>&nbsp;</td>";
                            strDoneReminders += "<td><strong> Going Time</strong></td>";
                            strDoneReminders += "<td>" + goingtime1 + "</td>";
                            _dr["Going Time"] = goingtime1;
                        }

                        //For Going Message display, if any start
                        if (!String.IsNullOrEmpty(goingMessage))
                        {
                            strDoneReminders += "<tr><td>&nbsp;</td>";
                            if (isMeetingGoodMorning == 1)
                            {
                                strDoneReminders += "<td>Meeting Good Night Message</td>";
                                _dr["Going Message"] = "M " + goingMessage;
                            } 
                            else
                            {
                                strDoneReminders += "<td>Going Message</td>";
                                _dr["Going Message"] = "M " + goingMessage;
                            }
                            strDoneReminders += "<td>" + goingMessage + "</td></tr>";
                        }
                        _dr["Total Company Time"] = Company_Time;
                        _dr["Total Time Spend"] = Time;
                        //For Going Message display, if any end

                        strDoneReminders += "</tbody>";
                        strDoneReminders += "</table>";
                        table.Rows.Add(_dr);
                        tableCollection.Tables.Add(table);
                    }
                    Session["table"] = tableCollection;
                    DoneReminders += strDoneReminders;
                }
            }
        }
        catch (Exception ex)
        {

        }
    } 
    private string BindSpendTime(int User_Id)
    {
        double TotalTime = 0;
        TimeSpend = "0";
        var list = new List<SqlParameter>();
        list.Add(new SqlParameter("@Id", "0"));
        list.Add(new SqlParameter("@User_Id", User_Id));
        list.Add(new SqlParameter("@Actiontype", "select1"));
        DataTable dt = dal.getdataTable("TimeCalculator", list.ToArray());
        if (dt.Rows.Count > 0)
        {
            var listdt1 = (from DataRow dr in dt.Rows
                           select new MyModelClass()
                           {
                               Id = Convert.ToInt32(dr["Id"]),
                               Timing = Convert.ToDateTime(dr["Timing"].ToString()),
                               Company_Purpose = dr["Company_Purpose"].ToString(),
                               Spend_time = dr["Spend_time"].ToString(),
                               User_Id = Convert.ToInt32(dr["User_Id"]),
                               Status = dr["Status"].ToString(),
                           }).ToList();

            foreach (var item in listdt1)
            {
                if (item.Timing.ToString("MM/dd/yyyy").Equals(DateTime.Now.ToString("MM/dd/yyyy")))
                {
                    TotalTime = TotalTime + double.Parse(item.Spend_time);
                }
            }
            TimeSpend = (TotalTime / 60).ToString("N0");
        }
        return TimeSpend;
    } 
    private string BindSpendTime(int User_Id, DateTime date)
    {
        double TotalTime = 0;
        TimeSpend = "0";
        var list = new List<SqlParameter>();
        list.Add(new SqlParameter("@Id", "0"));
        list.Add(new SqlParameter("@User_Id", User_Id));
        list.Add(new SqlParameter("@Actiontype", "select1"));
        DataTable dt = dal.getdataTable("TimeCalculator", list.ToArray());
        if (dt.Rows.Count > 0)
        {
            var listdt1 = (from DataRow dr in dt.Rows
                           select new MyModelClass()
                           {
                               Id = Convert.ToInt32(dr["Id"]),
                               Timing = Convert.ToDateTime(dr["Timing"].ToString()),
                               Company_Purpose = dr["Company_Purpose"].ToString(),
                               Spend_time = dr["Spend_time"].ToString(),
                               User_Id = Convert.ToInt32(dr["User_Id"]),
                               Status = dr["Status"].ToString(),
                           }).ToList();

            foreach (var item in listdt1)
            {
                if (item.Timing.ToString("MM/dd/yyyy").Equals(date.ToString("MM/dd/yyyy")))
                {
                    TotalTime = TotalTime + double.Parse(item.Spend_time);
                }
            }
            TimeSpend = (TotalTime / 60).ToString("N0");
        }
        return TimeSpend;
    }
    private string comingtimess(int User_Id, out string comingMessage, out int isMeetingGoodMorning,out DateTime Coming_Time)
    {
        ComingTime = "";
        comingMessage = "";
        isMeetingGoodMorning = 0;
        Coming_Time = new DateTime();
        var list = new List<SqlParameter>();
        list.Add(new SqlParameter("@Id", "0"));
        list.Add(new SqlParameter("@User_Id", User_Id));
        list.Add(new SqlParameter("@Actiontype", "Select2"));
        DataTable dt = dal.getdataTable("ManageAttendance", list.ToArray());
        if (dt.Rows.Count > 0)
        {
            var listdt1 = (from DataRow dr in dt.Rows
                           select new MyModelClass()
                           {
                               Id = Convert.ToInt32(dr["Id"]),
                               Coming_Time = Convert.ToDateTime(dr["Coming_Time"].ToString()),
                               Going_Time = Convert.ToDateTime(dr["Going_Time"].ToString()),
                               User_Id = Convert.ToInt32(dr["User_Id"]),
                               Status = dr["Status"].ToString(),
                               Coming_Message = dr["Coming_Message"].ToString(),
                               isMeetingGoodMorning = Convert.ToInt32(dr["isMeetingGoodMorning"])
                           }).ToList();

            var LastUpdateDate = (from c in listdt1 select c).FirstOrDefault();
            ComingTime = LastUpdateDate.Coming_Time.ToString("hh:mm tt");
            Coming_Time = LastUpdateDate.Coming_Time;
            comingMessage = LastUpdateDate.Coming_Message;
            isMeetingGoodMorning = LastUpdateDate.isMeetingGoodMorning;
        }
        return ComingTime;
    }
    private string comingtime(int User_Id, DateTime date, out string comingMessage, out int isMeetingGoodMorning)
    {
        ComingTime = "";
        comingMessage = "";
        isMeetingGoodMorning = 0;
        var list = new List<SqlParameter>();
        list.Add(new SqlParameter("@Id", "0"));
        list.Add(new SqlParameter("@ByDate", date));

        list.Add(new SqlParameter("@User_Id", User_Id));
        list.Add(new SqlParameter("@Actiontype", "Select3"));
        DataTable dt = dal.getdataTable("ManageAttendance", list.ToArray());
        if (dt.Rows.Count > 0)
        {
            var listdt1 = (from DataRow dr in dt.Rows
                           select new MyModelClass()
                           {
                               Id = Convert.ToInt32(dr["Id"]),
                               Coming_Time = Convert.ToDateTime(dr["Coming_Time"].ToString()),
                               Going_Time = Convert.ToDateTime(dr["Going_Time"].ToString()),
                               User_Id = Convert.ToInt32(dr["User_Id"]),
                               Status = dr["Status"].ToString(),
                               Coming_Message = dr["Coming_Message"].ToString(),
                               isMeetingGoodMorning = Convert.ToInt32(dr["isMeetingGoodMorning"])
                           }).ToList();

            var LastUpdateDate = (from c in listdt1 select c).FirstOrDefault();
            ComingTime = LastUpdateDate.Coming_Time.ToString();
            comingMessage = LastUpdateDate.Coming_Message;
            isMeetingGoodMorning = LastUpdateDate.isMeetingGoodMorning;
        }
        return ComingTime;
    }
    private string goingtime(int User_Id, DateTime date, out string goingMessage)
    {
        GoingTime = "";
        goingMessage = "";
        //Going_Time = new DateTime();
        var list = new List<SqlParameter>();
        list.Add(new SqlParameter("@Id", "0"));
        list.Add(new SqlParameter("@ByDate", date));
        list.Add(new SqlParameter("@User_Id", User_Id));
        list.Add(new SqlParameter("@Actiontype", "Select3"));
        DataTable dt = dal.getdataTable("ManageAttendance", list.ToArray());
        if (dt.Rows.Count > 0)
        {
            var listdt1 = (from DataRow dr in dt.Rows
                           select new MyModelClass()
                           {
                               Id = Convert.ToInt32(dr["Id"]),
                               Coming_Time = Convert.ToDateTime(dr["Coming_Time"].ToString()),
                               Going_Time = Convert.ToDateTime(dr["Going_Time"].ToString()),
                               User_Id = Convert.ToInt32(dr["User_Id"]),
                               Status = dr["Status"].ToString(),
                               Going_Message = dr["Going_Message"].ToString(),
                           }).ToList();
            //var dd = (from c in listdt1  select c).FirstOrDefault();
            //Going_Time = dd.Going_Time;

            var LastUpdateDate = (from c in listdt1 where c.Status == "Go" select c).FirstOrDefault();
            if (LastUpdateDate != null)
            {
                GoingTime = LastUpdateDate.Going_Time.ToString("hh:mm tt");
                goingMessage = LastUpdateDate.Going_Message;
            }
        }
        return GoingTime;
    }
    private string goingtimess(int User_Id, out string goingMessage,out DateTime Going_Time)
    {
        GoingTime = "";
        goingMessage = "";
        Going_Time = new DateTime();
        var list = new List<SqlParameter>();
        list.Add(new SqlParameter("@Id", "0"));
        list.Add(new SqlParameter("@User_Id", User_Id));
        list.Add(new SqlParameter("@Actiontype", "Select2"));
        DataTable dt = dal.getdataTable("ManageAttendance", list.ToArray());
        if (dt.Rows.Count > 0)
        {
            var listdt1 = (from DataRow dr in dt.Rows
                           select new MyModelClass()
                           {
                               Id = Convert.ToInt32(dr["Id"]),
                               Coming_Time = Convert.ToDateTime(dr["Coming_Time"].ToString()),
                               Going_Time = Convert.ToDateTime(dr["Going_Time"].ToString()),
                               User_Id = Convert.ToInt32(dr["User_Id"]),
                               Status = dr["Status"].ToString(),
                               Going_Message = dr["Going_Message"].ToString()
                           }).ToList();
            var dd = (from c in listdt1 select c).FirstOrDefault();
            Going_Time = dd.Going_Time;
            var LastUpdateDate = (from c in listdt1 where c.Status == "Go" select c).FirstOrDefault();
            if (LastUpdateDate != null)
            {
                GoingTime = LastUpdateDate.Going_Time.ToString("hh:mm tt");
                goingMessage = LastUpdateDate.Going_Message;
            }
        }
        return GoingTime;
    }
    class MyModelClass
    {
        public int Id { get; set; }
        public int User_Id { get; set; }
        public DateTime Timing { get; set; }
        public string Status { get; set; }
        public string Company_Purpose { get; set; }
        public string Spend_time { get; set; }
        public DateTime Coming_Time { get; set; }
        public DateTime Going_Time { get; set; }

        public string Coming_Message { get; set; }

        public string Going_Message { get; set; }
        public int isMeetingGoodMorning { get; set; }
    }
    protected void ddlusers_SelectedIndexChanged(object sender, EventArgs e)
    { 
        if (Session["admin_srno"] == null)
            Response.Redirect("~/Pr-Admin-Log");

        int User_Id = int.Parse(ddlusers.SelectedValue);
        txt_from.Text = "";
        txt_to.Text = "";
        if (User_Id > 0)
        {
            bindDoneReminders(User_Id);
            //download_XL.Visible = true;
        }
        else
        {
            bindDoneReminders();
           // download_XL.Visible = false;
        }
    }
    protected void download_XL_Click(object sender, EventArgs e)
    {
        DataSet dataset = Session["table"] as DataSet;
        ClosedXML.Excel.XLWorkbook wbook = new ClosedXML.Excel.XLWorkbook();
        for (int i = 0; i < dataset.Tables.Count; i++)
        {
            wbook.Worksheets.Add(dataset.Tables[i], dataset.Tables[i].TableName);
        }
        // Prepare the response
        HttpResponse httpResponse = Response;
        httpResponse.Clear();
        httpResponse.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        //Provide you file name here
        httpResponse.AddHeader("content-disposition", "attachment;filename=\"" + "Attendance" + ".xlsx\"");
        // Flush the workbook to the Response.OutputStream
        using (MemoryStream memoryStream = new MemoryStream())
        {
            wbook.SaveAs(memoryStream);
            memoryStream.WriteTo(httpResponse.OutputStream);
            memoryStream.Close();
        }

        httpResponse.End();

    }
    private void bindDoneReminders(int User_Id)
    {
        try
        {
            DoneReminders = "";
            if (Session["admin_srno"] != null)
            {
                string[] col1 = { "@srno", "@Actiontype" };
                object[] val1 = { User_Id, "select9" };
                DataSet ds = dal.getDataSet("ManageLogin", col1, val1);
                string tableName = ds.Tables[0].Rows[0]["name"].ToString().Length > 30 ? ds.Tables[0].Rows[0]["name"].ToString().Substring(0, 30) : ds.Tables[0].Rows[0]["name"].ToString();
                DataTable table = new DataTable(tableName);
                table.Clear();
                table.Columns.Add("Coming Time", typeof(string)); 
                table.Columns.Add("Coming Message", typeof(string));
                table.Columns.Add("Going Time", typeof(string)); 
                table.Columns.Add("Going Message", typeof(string));
                table.Columns.Add("Total Company Time", typeof(string));  
                table.Columns.Add("Total Time Spend", typeof(string));
                var list = new List<SqlParameter>();
                list.Add(new SqlParameter("@Id", "0"));
                list.Add(new SqlParameter("@User_Id", User_Id));
                list.Add(new SqlParameter("@Actiontype", "select6"));
                DataTable dt = dal.getdataTable("ManageAttendance", list.ToArray());
                if (dt.Rows.Count > 0)  
                {
                    var listdt1 = (from DataRow dr in dt.Rows
                                   select new MyModelClass()
                                   {
                                       Id = Convert.ToInt32(dr["Id"]),
                                       User_Id = Convert.ToInt32(dr["User_Id"]),
                                       Status = dr["Status"].ToString(),
                                       Timing = Convert.ToDateTime(dr["Coming_Time"].ToString()),
                                       Going_Time = Convert.ToDateTime(dr["Going_Time1"].ToString()),
                                       Coming_Time = Convert.ToDateTime(dr["Coming_Time1"].ToString()),
                                   }).ToList();

                    var list1 = listdt1.GroupBy(n => new { n.Timing }).Select(g => g.FirstOrDefault()).OrderByDescending(c => c.Timing).ToList();

                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        string strDoneReminders = string.Empty;
                        for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                        {
                            foreach (var item in list1) 
                            {
                                string Time = BindSpendTime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing);
                                string comingMessage1;
                                string goingMessage1;
                                string Company_Time = "0";
                                int isMeetingGoodMorning;
                                DataRow _dr = table.NewRow();
                                string comingtime1 = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning)).ToString("hh:mm tt");
                                string Date = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning)).ToString("dddd, dd MMMM yyyy");
                                string GoingTime1 = goingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out goingMessage1);
                                if (item.Going_Time.ToString() == item.Coming_Time.ToString())
                                {
                                    Company_Time = "User not say good night"; 
                                }
                                else
                                {
                                    double double_minutes = item.Going_Time.Subtract(item.Coming_Time).TotalMinutes;
                                    if (double_minutes > 60)
                                    {
                                        double Hours = double_minutes / 60;
                                        double Min = double_minutes % 60;
                                        Company_Time = Hours.ToString().Split('.').ElementAt(0) + " Hours " + Min.ToString("N0") + " Mins";
                                    }
                                    else
                                    {
                                        Company_Time = double_minutes.ToString("N0") + " Mins";
                                    }
                                }  
                                strDoneReminders += "<table class='table table-bordered cart_summary'> <thead><tr>";
                                strDoneReminders += " <th style='text-align: left;'>" + ds.Tables[0].Rows[j]["name"].ToString() + "</th>";
                                strDoneReminders += "<th align='right'>Coming Time :</th><th>" + comingtime1 + "(" + Date + ")</th></tr> </thead>";
                                strDoneReminders += "<tbody>";

                                _dr["Coming Time"] = comingtime1 + "(" + Date + ")";
                                //For Coming Message display, if any start
                                if (!String.IsNullOrEmpty(comingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Morning Message</td>";
                                        _dr["Coming Message"] ="M "+ comingMessage1; 
                                    }   
                                    else
                                    {
                                        strDoneReminders += "<td>Coming Message</td>";
                                        _dr["Coming Message"] = comingMessage1;
                                    }
                                    strDoneReminders += "<td>" + comingMessage1 + "</td></tr>";
                                }

                                string[] col2 = { "@Id", "@User_Id", "@Actiontype" };
                                object[] val2 = { "0", User_Id, "select1" };
                                DataSet ds2 = dal.getDataSet("TimeCalculator", col2, val2);
                                for (int k = 0; k < ds2.Tables[0].Rows.Count; k++)
                                {
                                    if (item.Timing.ToString("MM/dd/yyyy") == DateTime.Parse(ds2.Tables[0].Rows[k]["Timing"].ToString()).ToString("MM/dd/yyyy"))
                                    {
                                        strDoneReminders += "<tr><td>&nbsp;</td>";
                                        string status = "";
                                        string CmpPor = "";
                                        status = ds2.Tables[0].Rows[k]["Status"].ToString();
                                        if (status == "In")
                                        {
                                            CmpPor = ds2.Tables[0].Rows[k - 1]["Company_Purpose"].ToString();
                                            if (CmpPor != "")
                                            {
                                                strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " (" + (double.Parse(ds2.Tables[0].Rows[k]["Company_Purpose_S_Time"].ToString()) / 60).ToString("N0") + " Mins Company purpose) </td>";
                                            }
                                            else
                                            {
                                                strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";
                                            }
                                        }
                                        else
                                        {
                                            strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";

                                        }
                                        strDoneReminders += "<td>" + DateTime.Parse(ds2.Tables[0].Rows[k]["Timing"].ToString()).ToString("h:mm tt") + "</td>";
                                    }
                                }
                                strDoneReminders += "<tr><td>&nbsp;</td>";
                                strDoneReminders += "<td><strong> Total time spend</strong></td>";
                                strDoneReminders += "<td>" + Time + " mins</td>"; 
                                if (GoingTime1 != "")
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";

                                    strDoneReminders += "<td><strong> Going Time</strong></td>";
                                    strDoneReminders += "<td>" + GoingTime1 + "</td>";
                                    _dr["Going Time"] = GoingTime1;
                                }


                                //For Going Message display, if any start
                                if (!String.IsNullOrEmpty(goingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Night Message</td>";
                                        _dr["Going Message"] = "M "+goingMessage1;
                                    }   
                                    else
                                    {
                                        strDoneReminders += "<td>Going Message</td>";
                                        _dr["Going Message"] = goingMessage1;
                                    }

                                    strDoneReminders += "<td>" + goingMessage1 + "</td></tr>";
                                }
                                _dr["Total Company Time"] = Company_Time;
                                _dr["Total Time Spend"] = Time;
                                //For Going Message display, if any end

                                strDoneReminders += "</tbody>";
                                strDoneReminders += "</table>";
                                table.Rows.Add(_dr);
                            } 
                        } 
                        DoneReminders += strDoneReminders;
                        if (table.Rows.Count > 0)
                        {
                            download_XL.Visible = true;
                        }
                        else
                        {
                           download_XL.Visible = false;
                        }
                        DataSet tableCollection = new DataSet();
                        tableCollection.Clear();
                        tableCollection.Tables.Add(table);
                        Session["table"] = tableCollection;
                    }
                }
                else
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        string strDoneReminders = string.Empty;
                        for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                        {
                            string[] col2 = { "@Id", "@User_Id", "@Actiontype" };
                            object[] val2 = { "0", User_Id, "select1" };
                            DataSet ds2 = dal.getDataSet("ManageAttendance", col2, val2);

                            for (int k = 0; k < ds2.Tables[0].Rows.Count; k++)
                            {
                                string Time = BindSpendTime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()));
                                string comingMessage1;
                                string goingMessage1;
                                string Company_Time = "0";
                                int isMeetingGoodMorning;

                                DataRow _dr = table.NewRow();

                                string comingtime1 = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning)).ToString("hh:mm tt");
                                string Date = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning)).ToString("dddd, dd MMMM yyyy");
                                string GoingTime1 = goingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out goingMessage1);
                                
                                strDoneReminders += "<table class='table table-bordered cart_summary'> <thead><tr>";
                                strDoneReminders += " <th style='text-align: left;'>" + ds.Tables[0].Rows[j]["name"].ToString() + "</th>";
                                strDoneReminders += "<th align='right'>Coming Time :</th><th>" + comingtime1 + "(" + Date + ")</th></tr> </thead>";
                                strDoneReminders += "<tbody>";
                                _dr["Coming Time"] = comingtime1 + "(" + Date + ")";

                                //For Coming Message display, if any start
                                if (!String.IsNullOrEmpty(comingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Morning Message</td>";
                                        _dr["Coming Message"] ="M "+ comingMessage1;
                                    }
                                    else
                                    {
                                        strDoneReminders += "<td>Coming Message</td>";
                                        _dr["Coming Message"] = comingMessage1;
                                    }
                                    strDoneReminders += "<td>" + comingMessage1 + "</td></tr>";
                                }
                                //For Coming Message display, if any end  
                                strDoneReminders += "<tr><td>&nbsp;</td>";
                                strDoneReminders += "<td><strong> Total time spend</strong></td>";
                                strDoneReminders += "<td>" + Time + " mins</td>";
                                
                                if (GoingTime1 != "")
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    strDoneReminders += "<td><strong> Going Time</strong></td>";
                                    strDoneReminders += "<td>" + GoingTime1 + "</td>";
                                    _dr["Going Time"] = GoingTime1;
                                }


                                //For Going Message display, if any start
                                if (!String.IsNullOrEmpty(goingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Night Message</td>";
                                        _dr["Going Message"] ="M "+ goingMessage1;
                                    }
                                    else
                                    {
                                        strDoneReminders += "<td>Going Message</td>";
                                        _dr["Going Message"] = goingMessage1;
                                    }
                                    strDoneReminders += "<td>" + goingMessage1 + "</td></tr>";
                                }
                                _dr["Total Company Time"] = Company_Time;
                                _dr["Total Time Spend"] = Time;
                                //For Going Message display, if any end

                                strDoneReminders += "</tbody>";
                                strDoneReminders += "</table>";
                                table.Rows.Add(_dr);
                            }
                        }
                        DoneReminders += strDoneReminders;
                        if (table.Rows.Count > 0)
                        {
                            download_XL.Visible = true;
                        }
                        else
                        {
                            download_XL.Visible = false;
                        }
                        DataSet tableCollection = new DataSet();
                        tableCollection.Clear();
                        tableCollection.Tables.Add(table);
                        Session["table"] = tableCollection;
                    }
                }
            }
        }
        catch (Exception ex)
        {
              
        }
    }
    private void bindDoneReminders(int User_Id, DateTime StartDate, DateTime EndDate)
    {
        try 
        {
            DoneReminders = "";
            if (Session["admin_srno"] != null) 
            {
                string[] col1 = { "@srno", "@Actiontype" };
                object[] val1 = { User_Id, "select9" };
                DataSet ds = dal.getDataSet("ManageLogin", col1, val1); 

                string tableName = ds.Tables[0].Rows[0]["name"].ToString().Length > 30 ? ds.Tables[0].Rows[0]["name"].ToString().Substring(0, 30) : ds.Tables[0].Rows[0]["name"].ToString();
                DataTable table = new DataTable(tableName);  
                table.Clear();
                table.Columns.Add("Coming Time", typeof(string));
                table.Columns.Add("Coming Message", typeof(string)); 
                table.Columns.Add("Going Time", typeof(string)); 
                table.Columns.Add("Going Message", typeof(string));
                table.Columns.Add("Total Company Time", typeof(string));
                table.Columns.Add("Total Time Spend", typeof(string)); 

                var list = new List<SqlParameter>();
                list.Add(new SqlParameter("@Id", "0"));
                list.Add(new SqlParameter("@StartDate", StartDate));
                list.Add(new SqlParameter("@EndDate", EndDate));
                list.Add(new SqlParameter("@User_Id", User_Id));
                list.Add(new SqlParameter("@Actiontype", "select7"));
                DataTable dt = dal.getdataTable("ManageAttendance", list.ToArray());
                if (dt.Rows.Count > 0)
                {
                    var listdt1 = (from DataRow dr in dt.Rows
                                   select new MyModelClass()
                                   {
                                       Id = Convert.ToInt32(dr["Id"]),
                                       User_Id = Convert.ToInt32(dr["User_Id"]),
                                       Status = dr["Status"].ToString(),
                                       Timing = Convert.ToDateTime(dr["Coming_Time"].ToString()),
                                       Going_Time = Convert.ToDateTime(dr["Going_Time1"].ToString()),
                                       Coming_Time = Convert.ToDateTime(dr["Coming_Time1"].ToString()),
                                   }).ToList();

                    var list1 = listdt1.GroupBy(n => new { n.Timing }).Select(g => g.FirstOrDefault()).OrderByDescending(c => c.Timing).ToList();


                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        string strDoneReminders = string.Empty;
                        for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                        {
                            foreach (var item in list1)
                            {
                                string Time = BindSpendTime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing);
                                string comingMessage1;
                                string goingMessage1;
                                string Company_Time = "0";
                                int isMeetingGoodMorning;
                                DataRow _dr = table.NewRow();
                                string comingtime1 = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning)).ToString("hh:mm tt");
                                string Date = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning)).ToString("dddd, dd MMMM yyyy"); ;
                                string GoingTime1 = goingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out goingMessage1);
                                if (item.Going_Time.ToString()== item.Coming_Time.ToString())
                                {
                                    Company_Time = "User not say good night";
                                }
                                else
                                {
                                    double double_minutes = item.Going_Time.Subtract(item.Coming_Time).TotalMinutes;
                                    if (double_minutes > 60)
                                    {
                                        double Hours = double_minutes / 60;
                                        double Min = double_minutes % 60;
                                        Company_Time = Hours.ToString().Split('.').ElementAt(0) + " Hours " + Min.ToString("N0") + " Mins";
                                    }
                                    else
                                    {
                                        Company_Time = double_minutes.ToString("N0") + " Mins";
                                    }
                                }  
                                strDoneReminders += "<table class='table table-bordered cart_summary'> <thead><tr>";
                                strDoneReminders += " <th style='text-align: left;'>" + ds.Tables[0].Rows[j]["name"].ToString() + "</th>";
                                strDoneReminders += "<th align='right'>Coming Time :</th><th>" + comingtime1 + " (" + Date + ")</th></tr> </thead>";
                                strDoneReminders += "<tbody>";
                                _dr["Coming Time"] = comingtime1 + "(" + Date + ")"; 
                                //For Coming Message display, if any start
                                if (!String.IsNullOrEmpty(comingMessage1))
                                { 
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Morning Message</td>";
                                        _dr["Coming Message"] = "M"+comingMessage1;
                                    }    
                                    else
                                    {
                                        strDoneReminders += "<td>Coming Message</td>";
                                        _dr["Coming Message"] = comingMessage1;
                                    }
                                    strDoneReminders += "<td>" + comingMessage1 + "</td></tr>";
                                }
                                //For Coming Message display, if any end

                                string[] col2 = { "@Id", "@User_Id", "@Actiontype" };
                                object[] val2 = { "0", ds.Tables[0].Rows[j]["srno"], "Select1" };
                                DataSet ds2 = dal.getDataSet("TimeCalculator", col2, val2);
                                for (int k = 0; k < ds2.Tables[0].Rows.Count; k++)
                                {
                                    if (item.Timing.ToString("MM/dd/yyyy") == DateTime.Parse(ds2.Tables[0].Rows[k]["Timing"].ToString()).ToString("MM/dd/yyyy"))
                                    {
                                        strDoneReminders += "<tr><td>&nbsp;</td>";
                                        string status = "";
                                        string CmpPor = "";
                                        status = ds2.Tables[0].Rows[k]["Status"].ToString();
                                        if (status == "In") 
                                        {
                                            CmpPor = ds2.Tables[0].Rows[k - 1]["Company_Purpose"].ToString();
                                            if (CmpPor != "") 
                                            {
                                                strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " (" + (double.Parse(ds2.Tables[0].Rows[k]["Company_Purpose_S_Time"].ToString()) / 60).ToString("N0") + " Mins Company purpose) </td>";
                                            }    
                                            else
                                            {
                                                strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";
                                            }
                                        }
                                        else
                                        {
                                            strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";
                                        }
                                        strDoneReminders += "<td>" + DateTime.Parse(ds2.Tables[0].Rows[k]["Timing"].ToString()).ToString("h:mm tt") + "</td>";
                                    }
                                }
                                strDoneReminders += "<tr><td>&nbsp;</td>";
                                strDoneReminders += "<td><strong> Total time spend</strong></td>";
                                strDoneReminders += "<td>" + Time + " mins</td>"; 
                                if (GoingTime1 != "")
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    strDoneReminders += "<td><strong> Going Time</strong></td>";
                                    strDoneReminders += "<td>" + GoingTime1 + "</td>";
                                    _dr["Going Time"] = GoingTime1;
                                }

                                //For Going Message display, if any start
                                if (!String.IsNullOrEmpty(goingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Night Message</td>";
                                        _dr["Going Message"] = "M"+goingMessage1;
                                    }
                                    else
                                    {
                                        strDoneReminders += "<td>Going Message</td>";
                                        _dr["Going Message"] = goingMessage1;
                                    }
                                    strDoneReminders += "<td>" + goingMessage1 + "</td></tr>";
                                }
                                _dr["Total Company Time"] = Company_Time;
                                _dr["Total Time Spend"] = Time;
                                //For Going Message display, if any end

                                strDoneReminders += "</tbody>";
                                strDoneReminders += "</table>";
                                table.Rows.Add(_dr);
                            }
                        }
                        DoneReminders += strDoneReminders;
                        if (table.Rows.Count > 0)
                        {
                            download_XL.Visible = true;
                        }
                        else
                        {
                            download_XL.Visible = false;
                        }
                        DataSet tableCollection = new DataSet();
                        tableCollection.Clear();
                        tableCollection.Tables.Add(table);
                        Session["table"] = tableCollection;
                    }
                }
                else
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        string strDoneReminders = string.Empty;
                        for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                        {
                            string[] col2 = { "@Id", "@User_Id", "@StartDate", "@EndDate", "@Actiontype" };
                            object[] val2 = { "0", User_Id, StartDate, EndDate, "Select5" };
                            DataSet ds2 = dal.getDataSet("ManageAttendance", col2, val2);

                            for (int k = 0; k < ds2.Tables[0].Rows.Count; k++)
                            {
                                string Time = BindSpendTime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()));
                                string comingMessage1;
                                string goingMessage1;
                                string Company_Time = "0";
                                int isMeetingGoodMorning;
                                DataRow _dr = table.NewRow();
                                string comingtime1 = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning)).ToString("hh:mm tt");
                                string Date = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out comingMessage1, out isMeetingGoodMorning)).ToString("dddd, dd MMMM yyyy");
                                string GoingTime1 = goingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), DateTime.Parse(ds2.Tables[0].Rows[k]["Coming_Time"].ToString()), out goingMessage1);

                                strDoneReminders += "<table class='table table-bordered cart_summary'> <thead><tr>";
                                strDoneReminders += " <th style='text-align: left;'>" + ds.Tables[0].Rows[j]["name"].ToString() + "</th>";
                                strDoneReminders += "<th align='right'>Coming Time :</th><th>" + comingtime1 + "(" + Date + ")</th></tr> </thead>";
                                strDoneReminders += "<tbody>";
                                _dr["Coming Time"] = comingtime1 + "(" + Date + ")";
                                //For Coming Message display, if any start
                                if (!String.IsNullOrEmpty(comingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";

                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Morning Message</td>";
                                        _dr["Coming Message"] ="M "+ comingMessage1;
                                    }
                                    else
                                    {
                                        strDoneReminders += "<td>Coming Message</td>";
                                        _dr["Coming Message"] = comingMessage1;
                                    }
                                    strDoneReminders += "<td>" + comingMessage1 + "</td></tr>";
                                }
                                //For Coming Message display, if any end  
                                strDoneReminders += "<tr><td>&nbsp;</td>";
                                strDoneReminders += "<td><strong> Total time spend</strong></td>";
                                strDoneReminders += "<td>" + Time + " mins</td>"; 
                                if (GoingTime1 != "")
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    strDoneReminders += "<td><strong> Going Time</strong></td>";
                                    strDoneReminders += "<td>" + GoingTime1 + "</td>";
                                    _dr["Going Time"] = GoingTime1;
                                }

                                //For Going Message display, if any start
                                if (!String.IsNullOrEmpty(goingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Night Message</td>";
                                        _dr["Going Message"] ="M "+ goingMessage1;
                                    }
                                    else
                                    {
                                        strDoneReminders += "<td>Going Message</td>";
                                        _dr["Going Message"] = goingMessage1;
                                    }
                                    strDoneReminders += "<td>" + goingMessage1 + "</td></tr>";
                                }
                                _dr["Total Company Time"] = Company_Time;
                                _dr["Total Time Spend"] = Time;
                                //For Going Message display, if any end

                                strDoneReminders += "</tbody>";
                                strDoneReminders += "</table>";
                                table.Rows.Add(_dr);
                            }
                        }
                        DoneReminders += strDoneReminders;
                        if (table.Rows.Count > 0)
                        {
                            download_XL.Visible = true;
                        }
                        else
                        {
                            download_XL.Visible = false;
                        }
                        DataSet tableCollection = new DataSet();
                        tableCollection.Clear();
                        tableCollection.Tables.Add(table);
                        Session["table"] = tableCollection;
                    }
                }
            }
        }
        catch (Exception ex)
        {

        }
    }

    private void bindDoneReminders(DateTime StartDate)
    {
        try
        {
            DoneReminders = "";
            if (Session["admin_srno"] != null)
            {
                string[] col1 = { "@srno", "@Actiontype" };
                object[] val1 = { "0", "select8" };
                DataSet ds = dal.getDataSet("ManageLogin", col1, val1);
                DataSet tableCollection = new DataSet();
                tableCollection.Clear();
                var list = new List<SqlParameter>();
                list.Add(new SqlParameter("@Id", "0"));
                list.Add(new SqlParameter("@StartDate", StartDate));
                list.Add(new SqlParameter("@Actiontype", "select8"));
                DataTable dt = dal.getdataTable("ManageAttendance", list.ToArray());
                if (dt.Rows.Count > 0)
                {
                    var listdt1 = (from DataRow dr in dt.Rows
                                   select new MyModelClass()
                                   {
                                       Id = Convert.ToInt32(dr["Id"]),
                                       User_Id = Convert.ToInt32(dr["User_Id"]),
                                       Status = dr["Status"].ToString(),
                                       Timing = Convert.ToDateTime(dr["Coming_Time"].ToString()),
                                   }).ToList();

                    var list1 = listdt1.GroupBy(n => new { n.Timing }).Select(g => g.FirstOrDefault()).ToList();

                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        string strDoneReminders = string.Empty;
                        for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                        {
                            string tableName = ds.Tables[0].Rows[j]["name"].ToString().Length > 30 ? ds.Tables[0].Rows[j]["name"].ToString().Substring(0, 30) : ds.Tables[0].Rows[j]["name"].ToString();
                            DataTable table = new DataTable(tableName);
                            table.Clear();
                            table.Columns.Add("Coming Time", typeof(string));
                            table.Columns.Add("Coming Message", typeof(string));
                            table.Columns.Add("Going Time", typeof(string));
                            table.Columns.Add("Going Message", typeof(string));
                            table.Columns.Add("Total Company Time", typeof(string));
                            table.Columns.Add("Total Time Spend", typeof(string));

                            foreach (var item in list1)
                            {
                                DataRow _dr = table.NewRow();
                                string comingMessage1;
                                string goingMessage1;
                                int isMeetingGoodMorning;
                                string Company_Time = "0";
                                string Time = BindSpendTime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing);
                                string comingtime1 = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning)).ToString("hh:mm tt");
                                string Date = comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning) == "" ? "" : DateTime.Parse(comingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out comingMessage1, out isMeetingGoodMorning)).ToString("dddd, dd MMMM yyyy"); ;
                                string GoingTime1 = goingtime(int.Parse(ds.Tables[0].Rows[j]["srno"].ToString()), item.Timing, out goingMessage1);
                                if (item.Going_Time.ToString() == item.Coming_Time.ToString())
                                {
                                    Company_Time = "User not say good night";
                                }
                                else
                                {
                                    double double_minutes = item.Going_Time.Subtract(item.Coming_Time).TotalMinutes;
                                    if (double_minutes > 60)
                                    {
                                        double Hours = double_minutes / 60;
                                        double Min = double_minutes % 60;
                                        Company_Time = Hours.ToString().Split('.').ElementAt(0) + " Hours " + Min.ToString("N0") + " Mins";
                                    }
                                    else
                                    {
                                        Company_Time = double_minutes.ToString("N0") + " Mins";
                                    }
                                }
                                strDoneReminders += "<table class='table table-bordered cart_summary'> <thead><tr>";
                                strDoneReminders += " <th style='text-align: left;'>" + ds.Tables[0].Rows[j]["name"].ToString() + "</th>";
                                strDoneReminders += "<th align='right'>Coming Time :</th><th>" + comingtime1 + "(" + Date + ")</th></tr> </thead>";
                                strDoneReminders += "<tbody>";
                                _dr["Coming Time"] = comingtime1 + "(" + Date + ")";

                                //For Coming Message display, if any start
                                if (!String.IsNullOrEmpty(comingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";

                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Morning Message</td>";
                                        _dr["Coming Message"] = "M " + comingMessage1;
                                    }
                                    else
                                    {
                                        strDoneReminders += "<td>Coming Message</td>";
                                        _dr["Coming Message"] = comingMessage1;
                                    }
                                    strDoneReminders += "<td>" + comingMessage1 + "</td></tr>";
                                }
                                //For Coming Message display, if any end

                                string[] col2 = { "@Id", "@User_Id", "@Actiontype" };
                                object[] val2 = { "0", ds.Tables[0].Rows[j]["srno"], "Select1" };
                                DataSet ds2 = dal.getDataSet("TimeCalculator", col2, val2);
                                for (int k = 0; k < ds2.Tables[0].Rows.Count; k++)
                                {
                                    if (item.Timing.ToString("MM/dd/yyyy") == DateTime.Parse(ds2.Tables[0].Rows[k]["Timing"].ToString()).ToString("MM/dd/yyyy"))
                                    {
                                        strDoneReminders += "<tr><td>&nbsp;</td>";
                                        string status = "";
                                        string CmpPor = "";
                                        status = ds2.Tables[0].Rows[k]["Status"].ToString();
                                        if (status == "In")
                                        {
                                            CmpPor = ds2.Tables[0].Rows[k - 1]["Company_Purpose"].ToString();
                                            if (CmpPor != "")
                                            {
                                                strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " (" + (double.Parse(ds2.Tables[0].Rows[k]["Company_Purpose_S_Time"].ToString()) / 60).ToString("N0") + " Mins Company purpose) </td>";
                                            }
                                            else
                                            {
                                                strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";
                                            }
                                        }
                                        else
                                        {
                                            strDoneReminders += "<td>" + ds2.Tables[0].Rows[k]["Status"] + " " + ds2.Tables[0].Rows[k]["Company_Purpose"] + " " + "</td>";

                                        }
                                        strDoneReminders += "<td>" + DateTime.Parse(ds2.Tables[0].Rows[k]["Timing"].ToString()).ToString("h:mm tt") + "</td>";
                                    }
                                }
                                strDoneReminders += "<tr><td>&nbsp;</td>";
                                strDoneReminders += "<td><strong> Total time spend</strong></td>";
                                strDoneReminders += "<td>" + Time + " mins</td>";

                                if (GoingTime1 != "")
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";
                                    strDoneReminders += "<td><strong> Going Time</strong></td>";
                                    strDoneReminders += "<td>" + GoingTime1 + "</td>";
                                    _dr["Going Time"] = GoingTime1;
                                }

                                //For Going Message display, if any start
                                if (!String.IsNullOrEmpty(goingMessage1))
                                {
                                    strDoneReminders += "<tr><td>&nbsp;</td>";

                                    if (isMeetingGoodMorning == 1)
                                    {
                                        strDoneReminders += "<td>Meeting Good Night Message</td>";
                                        _dr["Going Message"] = "M " + goingMessage1;
                                    }
                                    else
                                    {
                                        strDoneReminders += "<td>Going Message</td>";
                                        _dr["Going Message"] = goingMessage1;
                                    }
                                    strDoneReminders += "<td>" + goingMessage1 + "</td></tr>";
                                }
                                //For Going Message display, if any end
                                _dr["Total Company Time"] = Company_Time;
                                _dr["Total Time Spend"] = Time;
                                strDoneReminders += "</tbody>";
                                strDoneReminders += "</table>";
                                table.Rows.Add(_dr);
                                tableCollection.Tables.Add(table);
                            }
                        }
                        Session["table"] = tableCollection;
                        DoneReminders += strDoneReminders;
                    }
                }
            }
        }
        catch (Exception ex)
        {

        }
    }
    protected void btnsubmit_Click(object sender, EventArgs e)
    {
        try
        {
            
            if (Session["admin_srno"] == null)
                Response.Redirect("~/Pr-Admin-Log");


            int User_Id = int.Parse(ddlusers.SelectedValue);
            if (User_Id > 0)
            {
                //download_XL.Visible = true;
                bindDoneReminders(User_Id, DateTime.Parse(txt_from.Text), DateTime.Parse(txt_to.Text));
            }
            else
            {//In case of All
                //download_XL.Visible = false;
                bindDoneReminders(DateTime.Parse(txt_from.Text));
            }
        }
        catch (Exception ex)
        {
            throw;
        }
    }
    private void GetoutsideEmp()
    {

        string[] col1 = { "@srno", "@Actiontype" };
        object[] val1 = { "0", "select8" };
        DataSet ds = dal.getDataSet("ManageLogin", col1, val1);

        if (ds.Tables[0].Rows.Count > 0)
        {
            string strDoneReminders = string.Empty;
            for (int k = 0; k < ds.Tables[0].Rows.Count; k++)
            {
                var list = new List<SqlParameter>();
                list.Add(new SqlParameter("@Id", "0"));
                list.Add(new SqlParameter("@User_Id", int.Parse(ds.Tables[0].Rows[k]["srno"].ToString())));
                list.Add(new SqlParameter("@Actiontype", "Select2"));
                DataTable dt = dal.getdataTable("TimeCalculator", list.ToArray());
                if (dt.Rows.Count > 0)
                {
                    var listdt1 = (from DataRow dr in dt.Rows
                                   select new MyModelClass()
                                   {
                                       Id = Convert.ToInt32(dr["Id"]),
                                       Company_Purpose = dr["Company_Purpose"].ToString(),
                                       Spend_time = dr["Spend_time"].ToString(),
                                       User_Id = Convert.ToInt32(dr["User_Id"]),
                                       Status = dr["Status"].ToString(),
                                       Timing = Convert.ToDateTime(dr["Timing"].ToString()),
                                   }).LastOrDefault();
                    if (listdt1 != null)
                    {
                        if (listdt1.Status == "Out")
                        {
                            strDoneReminders += "<tr><th style='text-align: left;'>" + ds.Tables[0].Rows[k]["name"] + "</th><th align='right'>Out Side :</th><th>" + listdt1.Timing.ToString("h:mm tt") + "</th>";

                        }
                    }
                }
            }
            Outside += strDoneReminders;
        }
    }
}

Comments

Popular posts from this blog

20-03-2020--------------admin/Hr_Permission.aspx

1) New change in Developer/attendance.aspx.cs

lave page for developer