public void AlterarPrioridade(PrioridadeEnum prioridadeEnum) { if ((StatusAtual == StatusEnum.Concluido) | (StatusAtual == StatusEnum.Cancelado)) { AddNotification("Status", "Não é possível alterar a prioridade de um ticket concluído ou cancelado"); } else { PrioridadeAtual = prioridadeEnum; } }
public TarefaEntity(string titulo, PrioridadeEnum prioridade, TimeSpan hora, string descricao, bool realizado, NotificacaoTempoEnum notificacaoTempo, int idNotificacao) { Id = Guid.NewGuid(); Titulo = titulo; Prioridade = prioridade; Hora = hora; Descricao = descricao; Realizado = realizado; NotificacaoTempo = notificacaoTempo; IdNotificacao = idNotificacao; }
public static TarefaEntity NewTarefa(Guid id, string titulo, PrioridadeEnum prioridade, TimeSpan hora, string descricao, bool realizado, NotificacaoTempoEnum notificacaoTempo, int idNotificacao) { var tarefa = new TarefaEntity() { Id = id, Titulo = titulo, Prioridade = prioridade, Hora = hora, Descricao = descricao, Realizado = realizado, NotificacaoTempo = notificacaoTempo, IdNotificacao = idNotificacao }; return(tarefa); }
public static bool Cadastrar(DateTime dia, DateTime?diaFinal, List <DiaSemanaEnum> diasSemanas, string titulo, PrioridadeEnum prioridade, TimeSpan hora, string descricao, NotificacaoTempoEnum notificacaoTempo) { try { hora = new TimeSpan(hora.Days, hora.Hours, hora.Minutes, 0); var tarefa = new TarefaEntity(titulo, prioridade, hora, descricao, false, notificacaoTempo, NextIdNotification()); if (DataTarefas.Any(df => df.Dia == dia)) { DataTarefas.Find(df => df.Dia == dia).AddTarefa(tarefa); } else { var dataTarefa = new DataTarefaEntity(dia, new List <TarefaEntity>()); dataTarefa.AddTarefa(tarefa); DataTarefas.Add(dataTarefa); } var dataHoraNotificacao = DataTarefas.Find(df => df.Dia == dia).NotificacaoBaseDateTime(tarefa.Id); if (tarefa.NotificacaoTempo.Minutos != 0) { dataHoraNotificacao = dataHoraNotificacao.AddMinutes(tarefa.NotificacaoTempo.Minutos); } CrossLocalNotifications.Current.Show(titulo, descricao, tarefa.IdNotificacao, dataHoraNotificacao); if (diaFinal.HasValue && diasSemanas != null && diasSemanas.Any(ds => ds.Ativo && ds.Aplicar)) { foreach (var date in Enumerable.Range(0, 1 + diaFinal.Value.Subtract(dia).Days) .Select(offset => dia.AddDays(offset)) .ToList() .FindAll(date => date > dia && diasSemanas.Where(ds => ds.Aplicar && ds.Ativo).Select(ds => ds.Id).Contains(date.DayOfWeek)) ) { var res = Cadastrar(date, null, null, titulo, prioridade, hora, descricao, notificacaoTempo); } } } catch (Exception e) { return(false); } SaveChanges(); return(true); }
public static bool Alterar(Guid idDataTarefa, DateTime dia, Guid idTarefa, string titulo, PrioridadeEnum prioridade, TimeSpan hora, string descricao, bool realizado, NotificacaoTempoEnum notificacaoTempo) { try { hora = new TimeSpan(hora.Days, hora.Hours, hora.Minutes, 0); var idNotificacao = DataTarefas.Find(dt => dt.Tarefas.Exists(t => t.Id == idTarefa)).Tarefas .Find(t => t.Id == idTarefa).IdNotificacao; var tarefa = TarefaEntity.TarefaFactory.NewTarefa(idTarefa, titulo, prioridade, hora, descricao, realizado, notificacaoTempo, idNotificacao); if (DataTarefas.Any(df => df.Dia == dia && df.Id == idDataTarefa)) { var index = DataTarefas.Find(df => df.Id == idDataTarefa).Tarefas.IndexOf(DataTarefas.Find(df => df.Id == idDataTarefa).Tarefas.Find(t => t.Id == idTarefa)); DataTarefas.Find(df => df.Id == idDataTarefa).Tarefas[index] = tarefa; } else { if (DataTarefas.Any(df => df.Dia == dia)) { DataTarefas.Find(df => df.Dia == dia).AddTarefa(tarefa); } else { var dataTarefa = new DataTarefaEntity(dia, new List <TarefaEntity>()); dataTarefa.AddTarefa(tarefa); DataTarefas.Add(dataTarefa); } DataTarefas.Find(df => df.Id == idDataTarefa).RemoveTarefa(tarefa); if (!DataTarefas.Find(df => df.Id == idDataTarefa).Tarefas.Any()) { DataTarefas.Remove(DataTarefas.Find(df => df.Id == idDataTarefa)); } } CrossLocalNotifications.Current.Cancel(tarefa.IdNotificacao); if (!tarefa.Realizado) { var dataHoraNotificacao = DataTarefas.Find(df => df.Dia == dia).NotificacaoBaseDateTime(tarefa.Id); if (tarefa.NotificacaoTempo.Minutos != 0) { dataHoraNotificacao = dataHoraNotificacao.AddMinutes(tarefa.NotificacaoTempo.Minutos); } CrossLocalNotifications.Current.Show(titulo, descricao, tarefa.IdNotificacao, dataHoraNotificacao); } } catch (Exception e) { return(false); } SaveChanges(); return(true); }