public void AddOcorrencia(Ocorrencia ocorrencia, string projetoId, string responsavelId) { var projeto = ProjetosController.GetInstance().Projetos.FirstOrDefault(x => x.Id == projetoId); if (projeto == null) { throw new ApplicationException($"Projeto com ID = '{projetoId}' não foi encontrado"); } var responsavel = FuncionariosController.GetInstance().Funcionarios.FirstOrDefault(x => x.Id == responsavelId); if (responsavel == null) { throw new ApplicationException($"Funcionario com ID = '{responsavelId}' não foi encontrado"); } if (responsavel.Ocorrencias.Where(x => x.Estado == EstadoOcorrenciaEnum.ABERTA).Count() == 10) { throw new ApplicationException($"Funcionario com ID = '{responsavelId}' pode ter no máximo 10 ocorrências abertas"); } ocorrencia.Estado = EstadoOcorrenciaEnum.ABERTA; ocorrencia.Responsavel = responsavel; projeto.Ocorrencias.Add(ocorrencia); responsavel.Ocorrencias.Add(ocorrencia); Ocorrencias.Add(ocorrencia); }
public void MudaResponsavel(string ocorrenciaId, string novoResponsavelId) { var ocorrencia = Ocorrencias.FirstOrDefault(x => x.Id == ocorrenciaId); if (ocorrencia == null) { throw new ApplicationException($"Ocorrencia com ID = '{ocorrenciaId}' não foi encontrada"); } if (ocorrencia.Estado == EstadoOcorrenciaEnum.FECHADA) { throw new ApplicationException($"Ocorrencia com ID = '{ocorrenciaId}' foi fechada e não permite a mudança de responsável"); } var novoResponsavel = FuncionariosController.GetInstance().Funcionarios.FirstOrDefault(x => x.Id == novoResponsavelId); if (novoResponsavel == null) { throw new ApplicationException($"Funcionario com ID = '{novoResponsavelId}' não foi encontrado"); } if (novoResponsavel.Ocorrencias.Where(x => x.Estado == EstadoOcorrenciaEnum.ABERTA).Count() == 10) { throw new ApplicationException($"Funcionario com ID = '{novoResponsavelId}' pode ter no máximo 10 ocorrências abertas"); } ocorrencia.Responsavel.Ocorrencias.Remove(ocorrencia); ocorrencia.Responsavel = novoResponsavel; novoResponsavel.Ocorrencias.Add(ocorrencia); }
public static FuncionariosController GetInstance() { if (_instance == null) { _instance = new FuncionariosController(); } return(_instance); }