Esempio n. 1
0
        public int CriarAcompanhante(Acompanhante acompanhante)
        {
            if (acompanhante == null)
            {
                throw new ArgumentNullException(nameof(acompanhante));
            }

            var internacao = this._context.Internacoes.SingleOrDefault(i => i.Id == acompanhante.InternacaoId);
            if (internacao == null)
            {
                throw new BusinessException("Internação inválida!");
            }

            if (internacao.DataSaida.HasValue)
            {
                throw new BusinessException("Internação já encerrada!");
            }

            try
            {
                this._context.Acompanhantes.Add(acompanhante);
                this._context.SaveChanges();
            }
            catch (RetryLimitExceededException ex)
            {
                this._logger.Error(ex.StackTrace);
                throw;
            }

            return acompanhante.Id;
        }
        public JsonResult CriarAcompanhante(string jsonData)
        {
            try
            {
                var viewModel = JsonConvert.DeserializeObject<AcompanhanteViewModel>(jsonData);
                var acompanhante = new Acompanhante
                {
                    Nome = viewModel.Nome,
                    Documento = viewModel.Documento,
                    DataNascimento = viewModel.DataNascimento,
                    NomeMae = viewModel.NomeMae,
                    NomePai = viewModel.NomePai,
                    InternacaoId = viewModel.InternacaoId
                };

                using (var servico = DependencyResolver.Current.GetService<IAcompanhanteService>())
                {
                    var acompanhanteId = servico.CriarAcompanhante(acompanhante);
                    this.LogAcao(acompanhanteId);

                    return this.Json(new { ok = true, id = acompanhanteId });
                }
            }
            catch (Exception ex)
            {
                this._logger.Error(ex.StackTrace);
            }

            return this.Json(new { ok = false });
        }