/// <summary>
        /// Delete a service.
        /// </summary>
        /// <param name="serviceId">Id of the service.</param>
        /// <returns>Return the number of rows affected or return -1 if occur exception.</returns>
        public void DeleteService(Guid serviceId)
        {
            try
            {
                OrderBusiness OB = new OrderBusiness();
                List<OrderOfServiceDetail> listDetail = OB.GetOrderDetailsByServiceId(serviceId, false);
                if (listDetail.Count == 0)
                {
                    List<OrderOfServiceDetail> listDetailRemoved = OB.GetOrderDetailsByServiceId(serviceId, true);
                    if (listDetailRemoved.Count > 0)
                        OB.DeleteOrderDetail(null, serviceId.ToString());

                    int result = SD.Delete(serviceId);
                    if (result == -1)
                    {
                        throw new Exception("An error occurred while executing this operation.");
                    }
                }
                else
                {
                    throw new Exception("This service's data is also related to some other data. It could be not deleted.");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        OB = new OrderBusiness();
        EB = new EmployeeBusiness();
        CB = new CompanyBLL();

        loadData();
        String script = WebHelper.Instance.GetJqueryScript("App_Themes/js/jquery/custom_jquery.js");
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "MessageWarning", script, true);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        OB = new OrderBusiness();
        CB = new CompanyBLL();

        DataTable dtCompany = CB.Company_ShowAllDisplay("");
        dtCompany.Columns.Add("Payment", typeof(double));
        foreach (DataRow item in dtCompany.Rows)
        {
            Guid comId = new Guid(item["Company_Id"].ToString());
            double companyPayment = 0;
            List<Order> listOrder = OB.GetOrdersByCompanyId(comId, false);
            foreach (Order order in listOrder)
            {
                companyPayment += Double.Parse(order.Total_Charge);
            }
            listOrder = OB.GetOrdersByCompanyId(comId, true);
            foreach (Order order in listOrder)
            {
                companyPayment += Double.Parse(order.Total_Charge);
            }
            item["Payment"] = companyPayment;
        }

        DataView dv = dtCompany.DefaultView;
        dv.Sort = "Payment DESC";

        dtCompany = dv.Table;
        //for (int i = 0; i < newDataTable.Rows.Count; i++)// change 'newDataTable.Rows.Count' by a prametter.
        //{
        //}
        DataRow dr = dtCompany.Rows[0];
        imgCompany1.ImageUrl = WebHelper.Instance.GetImageURL(dr["Company_Logo"].ToString(), 50, 50, false);
        lnkCompanyName1.Text = dr["Company_Name"].ToString();
        lblAddress1.Text = dr["Company_Address"].ToString();

        dr = dtCompany.Rows[1];
        imgCompany2.ImageUrl = WebHelper.Instance.GetImageURL(dr["Company_Logo"].ToString(), 50, 50, false);
        lnkCompanyName2.Text = dr["Company_Name"].ToString();
        lblAddress2.Text = dr["Company_Address"].ToString();

        dr = dtCompany.Rows[2];
        imgCompany3.ImageUrl = WebHelper.Instance.GetImageURL(dr["Company_Logo"].ToString(), 50, 50, false);
        lnkCompanyName3.Text = dr["Company_Name"].ToString();
        lblAddress3.Text = dr["Company_Address"].ToString();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        pnlRed.Visible = false;
        pnlGreen.Visible = false;
        pnlYellow.Visible = false;
        pnlBlue.Visible = false;

        OB = new OrderBusiness();

        GetRouteData();
        if (!IsPostBack)
            loadData();
        else
        {
            String script = WebHelper.Instance.GetJqueryScript("App_Themes/js/jquery/custom_jquery.js");
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "MessageWarning", script, true);
        }
    }
        /// <summary>
        /// Delete permanently an employee.
        /// </summary>
        /// <param name="emId">Id of the employee that you want to delete.</param>
        public void DeleteEmployee(Guid emId)
        {
            try
            {
                Employee employee = ED.GetEmployee(emId);

                // Check related datas
                OrderBusiness OB   = new OrderBusiness();
                List <Order>  list = OB.GetOrdersByEmployeeId(emId, false);
                if (list.Count == 0)
                {
                    // Delete account of this employee first.
                    AccountBusiness AB      = new AccountBusiness();
                    Account         account = AB.GetAccountOfEmployee(emId);
                    if (account != null)
                    {
                        AB.DeleteAccount(account.Account_Id);
                    }
                    // Then delete orders of this employee
                    foreach (Order item in list)
                    {
                        OB.DeleteOrder(item.OrderOfService_Id);
                    }
                    int result = ED.DeleteEmployee(employee);
                    if (result == -1)
                    {
                        throw new Exception("An error occurred while executing this operation.");
                    }
                }
                else
                {
                    throw new Exception("This employee's data is also related to some other data. It could be not deleted.");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        pnlRed.Visible = false;
        pnlGreen.Visible = false;
        pnlYellow.Visible = false;
        pnlBlue.Visible = false;

        OB = new OrderBusiness();
        SB = new ServiceBusiness();

        if (IsPostBack)
        {
            String script = WebHelper.Instance.GetJqueryScript("App_Themes/js/jquery/custom_jquery.js");
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "MessageWarning", script, true);
        }
        else
        {
            List<Service> listService = SB.GetServices();
            ddlService.Items.Clear();
            ListItem item = new ListItem("All", "");
            ddlService.Items.Add(item);
            foreach (Service service in listService)
            {
                item = new ListItem();
                item.Text = service.Service_Name;
                item.Value = service.Service_Id.ToString();
                ddlService.Items.Add(item);
            }
            ddlService.SelectedIndex = 0;

            ddlStatus.Items.Clear();
            ListItem itemStatus = new ListItem("All", "");
            ddlStatus.Items.Add(itemStatus);
            itemStatus = new ListItem("Pending", "0");
            ddlStatus.Items.Add(itemStatus);
            itemStatus = new ListItem("In Progress", "99");
            ddlStatus.Items.Add(itemStatus);
            itemStatus = new ListItem("Resolved", "1");
            ddlStatus.Items.Add(itemStatus);
            ddlStatus.SelectedIndex = 0;
        }
        loadData();
    }
        /// <summary>
        /// Delete permanently an employee.
        /// </summary>
        /// <param name="emId">Id of the employee that you want to delete.</param>
        public void DeleteEmployee(Guid emId)
        {
            try
            {
                Employee employee = ED.GetEmployee(emId);

                // Check related datas
                OrderBusiness OB = new OrderBusiness();
                List<Order> list = OB.GetOrdersByEmployeeId(emId, false);
                if (list.Count == 0)
                {
                    // Delete account of this employee first.
                    AccountBusiness AB = new AccountBusiness();
                    Account account = AB.GetAccountOfEmployee(emId);
                    if (account != null)
                        AB.DeleteAccount(account.Account_Id);
                    // Then delete orders of this employee
                    foreach (Order item in list)
                    {
                        OB.DeleteOrder(item.OrderOfService_Id);
                    }
                    int result = ED.DeleteEmployee(employee);
                    if (result == -1)
                    {
                        throw new Exception("An error occurred while executing this operation.");
                    }
                }
                else
                {
                    throw new Exception("This employee's data is also related to some other data. It could be not deleted.");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        pnlRed.Visible = false;
        pnlGreen.Visible = false;
        pnlYellow.Visible = false;
        pnlBlue.Visible = false;

        SB = new ServiceBusiness();
        AB = new AccountBusiness();
        EB = new EmployeeBusiness();
        DB = new DepartmentBusiness();
        CB = new CompanyBLL();
        OB = new OrderBusiness();

        GetRouteData();
        cvBillDate.ValueToCompare = DateTime.Now.Date.ToShortDateString();
        if (!IsPostBack)
            loadData();
        else
        {
            String script = WebHelper.Instance.GetJqueryScript("App_Themes/js/jquery/custom_jquery.js");
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "MessageWarning", script, true);
        }
    }