public void btnAddNewAtivityWorker_Click(object sender, EventArgs e)
        {
            System.Text.StringBuilder sb = null;

            double hoursWorked;

            if (!Double.TryParse(txtAddHours.Text.Replace('.', ','), out hoursWorked) || hoursWorked <= 0)
            {
                this.lblAddErrorMessage.Text = "Valor das horas não é válido!";
                return;
            }


            if (string.IsNullOrWhiteSpace(txtAddComment.Text))
            {
                this.lblAddErrorMessage.Text = "É necessário informar um comentário!";
                return;
            }


            int workerID = Convert.ToInt32(hfNewActivityWorker.Value);

            Activity activity = CurrentActivity();

            WorkerBusinessLogic workerBusinessLogic = new WorkerBusinessLogic();
            Worker worker = workerBusinessLogic.GetByID(workerID);

            ActivityBusinessLogic activityBusinessLogic = new ActivityBusinessLogic();

            double hoursAvaiable = activityBusinessLogic.GetAvaiablesHoursByWorkerOnDate(worker, activity.Date);

            if (hoursWorked > hoursAvaiable)
            {
                this.lblAddErrorMessage.Text = "As horas trabalhas superam as horas dispónives!";
                return;
            }



            activityBusinessLogic.AttachWoker(activity, worker, hoursWorked, txtAddComment.Text);



            ScriptManager.RegisterClientScriptBlock(this,
                                                    this.GetType(),
                                                    "EditHideModalScript",
                                                    Util.GetScriptToHideModalDialog("addModal"),
                                                    false);

            BindDdListWorkers();
            BindGridVeiwWorksByActivity();
        }