protected void btnUpdate_Click(object sender, EventArgs e) { System.Text.StringBuilder sb = null; double hoursWorked; if (!Double.TryParse(txtEditHours.Text.Replace('.', ','), out hoursWorked) || hoursWorked <= 0) { this.lblEditErrorMessage.Text = "Valor das horas não é válido!"; return; } if (string.IsNullOrWhiteSpace(txtEditComment.Text)) { this.lblEditErrorMessage.Text = "É necessário informar um comentário!"; return; } int id = Convert.ToInt32(HfUpdateID.Value); Activity activity = CurrentActivity(); ActivityWorker activityWorker = activity.ActivityWorkers.Where(a => a.ID == id).SingleOrDefault(); ActivityBusinessLogic activityBusinessLogic = new ActivityBusinessLogic(); double maxHoursByDay = ActivityBusinessLogic.MaxWorkHoursByDay(); double temp = activityWorker.Hours; activityWorker.Hours = hoursWorked; double hoursAvaiable = activityBusinessLogic.GetAvaiablesHoursByWorkerOnDate(activityWorker.Worker, activity.Date); if (hoursAvaiable < 0 || hoursWorked > maxHoursByDay || (hoursWorked - hoursAvaiable) > maxHoursByDay) { activityWorker.Hours = temp; this.lblEditErrorMessage.Text = "As horas trabalhas superam as horas dispónives!"; return; } activityWorker.Hours = hoursWorked; activityWorker.Comment = txtEditComment.Text; ActivityWorkerBusinessLogic activityWorkerBusinessLogic = new ActivityWorkerBusinessLogic(); activityWorkerBusinessLogic.Update(activityWorker); BindGridVeiwWorksByActivity(); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "EditHideModalScript", Util.GetScriptToHideModalDialog("editModal"), false); this.txtEditDate.Text = string.Empty; this.txtEditWorkername.Text = string.Empty; }