public void ExcluirInternacao(Internacao internacao) { if (internacao == null) { throw new ArgumentNullException(nameof(internacao)); } try { this._context.Internacoes.Remove(internacao); this._context.SaveChanges(); } catch (RetryLimitExceededException ex) { this._logger.Error(ex.StackTrace); throw; } }
public void AtualizarInternacao(Internacao internacao) { if (internacao == null) { throw new ArgumentNullException(nameof(internacao)); } try { this._context.Entry(internacao).State = EntityState.Modified; this._context.SaveChanges(); } catch (RetryLimitExceededException ex) { this._logger.Error(ex.StackTrace); throw; } }
public int CriarInternacao(Internacao internacao) { if (internacao == null) { throw new ArgumentNullException(nameof(internacao)); } try { this._context.Internacoes.Add(internacao); this._context.SaveChanges(); } catch (RetryLimitExceededException ex) { this._logger.Error(ex.StackTrace); throw; } return internacao.Id; }
public ActionResult Criar([Bind(Exclude = "Id")] InternacaoViewModel viewModel) { if (!this.ModelState.IsValid) { return this.View(viewModel); } Paciente paciente; using (var servico = DependencyResolver.Current.GetService<IPacienteService>()) { paciente = servico.GetPaciente(viewModel.NomePaciente); } if (paciente == null) { this.ViewBag.Erros = new List<string>(); this.ViewBag.Erros.Add(StringResources.PacienteNaoEncontrado); return this.View(viewModel); } var internado = paciente.Internacoes.Any(i => i.DataSaida == null); if (internado) { this.ViewBag.Erros = new List<string>(); this.ViewBag.Erros.Add(StringResources.MensagemJaInternado); return this.View(viewModel); } // Busca leito disponível var leito = this._servicoLeito.GetLeitoLivre(viewModel.SetorLeito); if (leito == null) { this.ViewBag.Erros = new List<string>(); this.ViewBag.Erros.Add(StringResources.MensagemSemLeitos); return this.View(viewModel); } var internacao = new Internacao { PacienteId = paciente.Id, DataInternacao = DateTimeOffset.UtcNow, LeitoId = leito.Id }; this._servico.CriarInternacao(internacao); this.LogAcao(internacao.Id); // Atualiza leito leito.Ocupado = true; this._servicoLeito.AtualizarLeito(leito); this.LogAcao(leito.Id); return this.RedirectToAction("Index"); }