private AttdLeavePost AttdPostLeave(AttdLeavePost attdLeaveObj, string location, out bool output)
        {
            string baseuri = Utils.Helper.GetDescription("select AttdWebApiHost From MastNetwork", Utils.Helper.constr);

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(baseuri);

                var content = new StringContent(JsonConvert.SerializeObject(attdLeaveObj),
                                                Encoding.UTF8, "application/json");

                var responseTask = client.PostAsync("/api/leavepost", content);
                responseTask.Wait();

                var result = responseTask.Result;
                output = result.IsSuccessStatusCode;

                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync <AttdLeavePost>();
                    readTask.Wait();

                    var attdLeave = readTask.Result;

                    return(attdLeave);
                }
                else
                {
                    var readTask = result.Content.ReadAsAsync <AttdLeavePost>();
                    readTask.Wait();

                    var attdLeave = readTask.Result;
                    // Some error was there, return it without changing posting flags


                    return(attdLeave);
                }
            }
        }
        private void btnImport_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            DataTable dtMaterial = new DataTable();
            DataTable sortedDT   = new DataTable();

            try
            {
                foreach (GridColumn column in grd_view1.VisibleColumns)
                {
                    if (column.FieldName != string.Empty)
                    {
                        dtMaterial.Columns.Add(column.FieldName, column.ColumnType);
                    }
                }


                for (int i = 0; i < grd_view1.DataRowCount; i++)
                {
                    DataRow row = dtMaterial.NewRow();

                    foreach (GridColumn column in grd_view1.VisibleColumns)
                    {
                        row[column.FieldName] = grd_view1.GetRowCellValue(i, column);
                    }
                    dtMaterial.Rows.Add(row);
                }

                DataView dv = dtMaterial.DefaultView;
                dv.Sort  = "EmpUnqID asc";
                sortedDT = dv.ToTable();

                int srno = 0;

                using (SqlConnection con = new SqlConnection(Utils.Helper.constr))
                {
                    DateTime fdt;
                    DateTime tdt;

                    con.Open();
                    foreach (DataRow dr in sortedDT.Rows)
                    {
                        string tEmpUnqID = dr["EmpUnqID"].ToString();
                        srno += 1;



                        try
                        {
                            fdt = Convert.ToDateTime(dr["FromDate"]);
                        }
                        catch (Exception ex)
                        {
                            dr["Remarks"] = "FromDate Conversion failed...";
                            continue;
                        }

                        try
                        {
                            tdt = Convert.ToDateTime(dr["ToDate"]);
                        }
                        catch (Exception ex)
                        {
                            dr["Remarks"] = "ToDate Conversion failed...";
                            continue;
                        }

                        if (tdt > fdt)
                        {
                            dr["Remarks"] = "Invalid Date Range";
                            continue;
                        }

                        if ((tdt - fdt).Days > 0 && Convert.ToBoolean(dr["HalfDayFlg"].ToString()))
                        {
                            dr["Remarks"] = "Multiple HalfDay not allowed";
                            continue;
                        }

                        if (string.IsNullOrEmpty(dr["HalfDayFlg"].ToString().Trim()))
                        {
                            dr["HalfDayFlg"] = 0;
                        }

                        if (!string.IsNullOrEmpty(dr["HalfDayFlg"].ToString().Trim()))
                        {
                            if (dr["HalfDayFlg"].ToString().Trim() == "0")
                            {
                                dr["HalfDayFlg"] = 0;
                            }
                            else if (dr["HalfDayFlg"].ToString().Trim() == "1")
                            {
                                dr["HalfDayFlg"] = 1;
                            }
                            else
                            {
                                dr["HalfDayFlg"] = 0;
                            }
                        }


                        string err = DataValidate(dr);

                        if (!string.IsNullOrEmpty(err))
                        {
                            dr["Remarks"] = err;
                            continue;
                        }

                        AttdLeavePost tmpvar = new AttdLeavePost();
                        tmpvar.AppID    = srno;
                        tmpvar.EmpUnqID = dr["EmpUnqID"].ToString().Trim();
                        tmpvar.FromDate = Convert.ToDateTime(dr["FromDate"]);
                        tmpvar.ToDate   = Convert.ToDateTime(dr["ToDate"]);
                        tmpvar.LeaveTyp = dr["LeaveType"].ToString().Trim().ToUpper();
                        tmpvar.HalfDay  = Convert.ToBoolean(dr["HalfDayFlg"]);
                        tmpvar.AttdUser = (string.IsNullOrEmpty(dr["PostID"].ToString()) ? Utils.User.GUserID : dr["PostID"].ToString()).Trim();
                        tmpvar.ERROR    = string.Empty;
                        tmpvar.Location = (string.IsNullOrEmpty(dr["Location"].ToString()) ? "IPU" : dr["Location"].ToString()).Trim();
                        tmpvar.Remarks  = "";

                        bool   outres = false;
                        string tloc   = (string.IsNullOrEmpty(dr["Location"].ToString()) ? "IPU" : dr["Location"].ToString()).Trim();

                        AttdLeavePost retObj = AttdPostLeave(tmpvar, tloc, out outres);

                        if (retObj.PostedFlg)
                        {
                            dr["Remarks"] = "Leave Posted Sucussfully";
                        }

                        if (!string.IsNullOrEmpty(retObj.ERROR))
                        {
                            dr["Remarks"] = dr["Remarks"].ToString().Trim() + retObj.ERROR;
                        }
                    }//using foreach

                    con.Close();
                }//using connection

                Cursor.Current = Cursors.Default;
                MessageBox.Show("file uploaded Successfully, please check the remarks for indivisual record status...", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            DataSet ds = new DataSet();

            ds.Tables.Add(sortedDT);
            grd_view.DataSource = ds;
            grd_view.DataMember = ds.Tables[0].TableName;
            grd_view.Refresh();

            Cursor.Current = Cursors.Default;
        }