public ManipuladorDeTarefaDTO Calcular(Tarefa tarefa, IEnumerable <DateTime> diasARetirar, bool pularFinaisDeSemana) { try { Incluir(tarefa); decimal totalDias = tarefa.TempoEmDias; DateTime dia = tarefa.Inicio; ManipuladorDeTarefaDTO manipuladorDeTarefaDTO = new ManipuladorDeTarefaDTO(); totalDias = CalcularTotalDeDias(dia, totalDias, pularFinaisDeSemana, diasARetirar); IList <DateTime> dias = MontarListaDias(dia, totalDias); DateTime inicio = dias.OrderBy(p => p).FirstOrDefault(); DateTime fim = dias.OrderByDescending(p => p).FirstOrDefault(); manipuladorDeTarefaDTO = new ManipuladorDeTarefaDTO { Inicio = inicio, Fim = fim, ProximoDia = fim.AddDays(CalcularTotalDeDias(fim.AddDays(1), 1, pularFinaisDeSemana, diasARetirar)) }; return(manipuladorDeTarefaDTO); } catch (Exception) { throw; } }
private void ButtonCalcular_Click(object sender, EventArgs e) { try { Tarefa tarefa = CriarTarefa(); ManipuladorDeTarefaDTO manipuladorDeTarefaDTO = manipuladorDeTarefas.Calcular(tarefa, gerenciadorDiasARetirar.getDias(), checkBoxRetirarFinaisDeSemana.Checked); dateTimePickerInicio.Value = manipuladorDeTarefaDTO.ProximoDia; richTextBoxTarefas.AppendText(string.Format("{1}{0}{2}{0}", Environment.NewLine, tarefa.Nome, manipuladorDeTarefaDTO.ToString())); } catch (Exception ex) { MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }