/// <summary> /// Contrata um nutricionista /// </summary> /// <param name="pContrato">Contrato a ser incluido</param> public void ContratarNutricionista(Entidades.Contrato.Contrato pContrato) { if (pContrato == null) { throw new ArgumentException("Os dados do contrato são obrigatórios."); } if (pContrato.DataInicio < Constantes.DateTimeNow()) { throw new ArgumentException("Data/hora de início não pode ser menor que o dia/hora atual"); } if (pContrato.DataTermino < Constantes.DateTimeNow()) { throw new ArgumentException("Data/hora de término não pode ser menor que o dia atual"); } if (pContrato.DataInicio > pContrato.DataTermino) { throw new ArgumentException("A data de início não pode ser maior que a data de término"); } if (pContrato.DataInicio == pContrato.DataTermino && pContrato.DataInicio.TimeOfDay > pContrato.DataTermino.TimeOfDay) { throw new ArgumentException("O horário de início não pode ser maior que o horário de término"); } if (pContrato.DataInicio == pContrato.DataTermino && pContrato.DataTermino.TimeOfDay == pContrato.DataTermino.TimeOfDay) { throw new ArgumentException("O horário de início e término não podem ser iguais"); } if (pContrato.IdNutricionista <= 0) { throw new ArgumentException("O nutricionista é obrigatório"); } if (pContrato.IdUsuario <= 0) { throw new ArgumentException("O paciente é obrigatório"); } if (pContrato.Status != Enumerados.Contrato.StatusContratoEnum.PendenteAceitacaoNutricionista) { throw new ArgumentException($"O status do cadastrado do contrato deve ser {Enumerados.Contrato.StatusContratoEnum.PendenteAceitacaoNutricionista.GetDescription()}"); } if (_ContratoRepository.VerificarContratoExistenteNaData(pContrato.DataInicio, pContrato.DataTermino, pContrato.IdUsuario)) { throw new Exception($"Você já possui uma consulta entre o dia/horário {pContrato.DataInicio.ToString(Constantes.MascaraDataHora)} até {pContrato.DataTermino.ToString(Constantes.MascaraDataHora)}. Não foi possível realizar o agendamento."); } pContrato.DataCadastro = Constantes.DateTimeNow(); _ContratoRepository.ContratarNutricionista(pContrato); }
/// <summary> /// Contrata um nutricionista /// </summary> /// <param name="pContrato">Contrato a ser cadastrado</param> public void ContratarNutricionista(Entidades.Contrato.Contrato pContrato) { if (pContrato == null) { throw new ArgumentException("O contrato é obrigatório."); } if (pContrato.UF == UnidadeFederacaoEnum.NaoDefinido) { throw new ArgumentException("Unidade de federação é obrigatório."); } new Entidades.Nutricionista.Endereco(pContrato.IdUsuario, pContrato.Logradouro, pContrato.Bairro, pContrato.Cidade, pContrato.CEP, pContrato.UF); _UnitOfWork.Executar(_UnitOfWork.MontaInsertPorAttributo(pContrato).ToString()); }