public bool Remove(int id) { var _hardwareSalaService = new HardwareDeSalaService(_context); var _minhaSalaService = new SalaParticularService(_context); var _horarioSalaService = new HorarioSalaService(_context); var _planejamentoService = new PlanejamentoService(_context); try { if (_hardwareSalaService.GetByIdSala(id).Count == 0 && _minhaSalaService.GetByIdSala(id).Count == 0 && _horarioSalaService.GetByIdSala(id).Count == 0 && _planejamentoService.GetByIdSala(id).Count == 0) { var x = _context.Sala.Where(s => s.Id == id).FirstOrDefault(); if (x != null) { _context.Remove(x); return(_context.SaveChanges() == 1); } } else { throw new ServiceException("Essa sala nao pode ser removida pois existem outros registros associados a ela!"); } } catch (Exception e) { throw e; } return(false); }
public bool MonitorarSala(int idUsuario, MonitoramentoModel model) { if (model.SalaParticular) { var _salaParticular = new SalaParticularService(_context); if (_salaParticular.GetByIdUsuarioAndIdSala(idUsuario, model.SalaId) == null) { throw new ServiceException("Houve um problema e o monitoramento não pode ser finalizado, por favor tente novamente mais tarde!"); } } else { var _horarioSalaService = new HorarioSalaService(_context); if (!_horarioSalaService.VerificaSeEstaEmHorarioAula(idUsuario, model.SalaId)) { throw new ServiceException("Você não está no horário reservado para monitorar essa sala!"); } } if (!EnviarComandosMonitoramento(model)) { throw new ServiceException("Não foi possível concluir seu monitoramento pois não foi possível estabelecer conexão com a sala!"); } return(Update(model)); }
public bool Remove(int id) { var plan = new PlanejamentoService(_context); var particular = new SalaParticularService(_context); var horarios = new HorarioSalaService(_context); var usuarioOrg = new UsuarioOrganizacaoService(_context); var x = _context.Usuario.Where(u => u.Id == id).FirstOrDefault(); if (x != null) { //atualizar depois para escolher da qual org //removendo tudo associado ao usuario, pois na tela de remover irá aparecer se tem itens associados // se o usuario concordar, obviamente irá excluir tudo //planejamentos plan.RemoveByUsuario(x.Id); //salas particulares particular.RemoveByUsuario(x.Id); //reservas horarios.RemoveByUsuario(x.Id); // associacao usuarioOrg.RemoveByUsuario(x.Id); using (var transaction = _context.Database.BeginTransaction()) { try { _context.Remove(x); transaction.Commit(); return(_context.SaveChanges() == 1 ? true : false); } catch (Exception e) { transaction.Rollback(); throw e; } } } else { new ServiceException("Houve um erro ao remover o usuário!"); } return(false); }
private bool InsertReservasPlanejamento(PlanejamentoModel planejamento) { try { var _horarioSalaService = new HorarioSalaService(_context); var dataCorrente = planejamento.DataInicio; var addDays = 1; while (dataCorrente >= planejamento.DataInicio && dataCorrente <= planejamento.DataFim) { if (((int)dataCorrente.DayOfWeek) == PlanejamentoViewModel.GetCodigoDia(planejamento.DiaSemana)) { _horarioSalaService.Insert( new HorarioSalaModel { HorarioFim = planejamento.HorarioFim, HorarioInicio = planejamento.HorarioInicio, SalaId = planejamento.SalaId, UsuarioId = planejamento.UsuarioId, Objetivo = planejamento.Objetivo, Planejamento = planejamento.Id, Situacao = HorarioSalaModel.SITUACAO_APROVADA, Data = dataCorrente }); addDays = 7; } dataCorrente = dataCorrente.AddDays(addDays); } return(true); } catch (Exception e) { throw e; } }
public bool Remove(int id, bool excluiReservas) { using (var transaction = _context.Database.BeginTransaction()) { try { var _reservaContext = new HorarioSalaService(_context); if (excluiReservas) { _reservaContext.RemoveByIdPlanejamento(id); } else { _reservaContext.UpdateColumnPlanejamentoForNull(id); } var x = _context.Planejamento.Where(th => th.Id == id).FirstOrDefault(); if (x != null) { _context.Remove(x); var save = _context.SaveChanges() == 1 ? true : false; transaction.Commit(); return(save); } else { throw new ServiceException("Algo deu errado, tente novamente em alguns minutos."); } } catch (Exception e) { transaction.Rollback(); throw e; } } }