public Eleicao( DateTime dataInicio, int duracaoGestao, DateTime?terminoMandatoAnterior, Usuario usuarioCriacao, Estabelecimento estabelecimento, Grupo grupo, Conta conta) { DataInicio = dataInicio.Date; DuracaoGestao = duracaoGestao; TerminoMandatoAnterior = terminoMandatoAnterior; Estabelecimento = estabelecimento ?? throw new CustomException("O estabelecimento deve ser informado."); if (Estabelecimento.EleicoesDoAnoCorrente.Any()) { throw new CustomException($"Já há uma eleição cadastrada para este estabelecimento no ano de {Gestao}."); } if (Estabelecimento.EleicoesEmAndamento.Any()) { throw new CustomException($"Existe uma eleição aberta para este estabelecimento."); } Usuario = usuarioCriacao ?? throw new CustomException("O usuário de criação deve ser informado."); _grupo = grupo ?? estabelecimento.Grupo ?? throw new CustomException("O grupo deve ser informado."); Conta = conta ?? throw new CustomException("O usuário de criação da eleição deve estar vinculado à uma conta.");; _dimensionamento = new Dimensionamento(0, 0, 0, 0); Configuracao = new ConfiguracaoEleicao(true, true, true); }
public Eleicao( DateTime dataInicio, int duracaoGestao, DateTime?terminoMandatoAnterior, Usuario usuarioCriacao, Estabelecimento estabelecimento, Grupo grupo) : this(dataInicio, duracaoGestao, terminoMandatoAnterior, usuarioCriacao, estabelecimento, grupo, usuarioCriacao?.Conta) { }