Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static Vacina Manter(Vacina vacina)
- {
- if (String.IsNullOrEmpty(vacina.nome))
- throw new Exception(VACINA_NOME_INVALIDO);
- if (vacina.restricao_sexo < 0)
- throw new Exception(RESTRICAO_SEXO_INVALIDO);
- if (vacina.flag_idade_minima == FlagData.ANO)
- {
- vacina.idade_minima = vacina.idade_minima * 12;
- }
- if (vacina.idade_minima < 0)
- throw new Exception(IDADE_MINIMA_INVALIDA);
- if (vacina.flag_idade_maxima == FlagData.ANO)
- {
- vacina.idade_maxima = vacina.idade_maxima * 12;
- }
- if (vacina.idade_maxima > (130*12))
- throw new Exception(IDADE_MAXIMA_INVALIDA);
- if (vacina.idade_maxima < vacina.idade_minima)
- throw new Exception(IDADE_VACINA_FINAL_MENOR);
- using (var ctx = new Repositorio())
- {
- Vacina _vacina = ctx.Vacinas.Include(c => c.Doses).Where(c => c.id == vacina.id).FirstOrDefault();
- if (_vacina != null)
- {//Existe a vacina
- _vacina.nome = vacina.nome;
- _vacina.descricao = vacina.descricao;
- _vacina.codigo = vacina.codigo;
- _vacina.restricao_sexo = vacina.restricao_sexo;
- _vacina.ativo = vacina.ativo;
- _vacina.idade_minima = vacina.idade_minima;
- _vacina.flag_idade_minima = vacina.flag_idade_minima;
- _vacina.idade_maxima = vacina.idade_maxima;
- _vacina.flag_idade_maxima = vacina.flag_idade_maxima;
- _vacina.gestante = vacina.gestante;
- _vacina.hanseniase = vacina.hanseniase;
- _vacina.puerpera = vacina.puerpera;
- _vacina.viajante = vacina.viajante;
- //há elemento
- if (_vacina.Doses.Count > 0)
- {
- foreach (var item in vacina.Doses)
- {
- var _dose = _vacina.Doses.Where(c => c.id == item.id).FirstOrDefault();
- if (_dose == null)
- {
- if (item.idade_padrao < 0)
- throw new Exception(DOSE_IDADE_NEGATIVA);
- if (item.intervalo_minimo_entre_doses < 0)
- throw new Exception(INTERVALO_DOSE_NEGATIVA);
- if (item.flag_idade_padrao == FlagData.ANO)
- item.idade_padrao = item.idade_padrao * 12;
- if (item.flag_intervalo_minimo == FlagData.ANO)
- item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
- _vacina.Doses.Add(item);
- }
- else
- {
- if (item.intervalo_minimo_entre_doses < 0)
- throw new Exception(INTERVALO_DOSE_NEGATIVA);
- if (item.idade_padrao < 0)
- throw new Exception(DOSE_IDADE_NEGATIVA);
- if (item.flag_idade_padrao == FlagData.ANO)
- item.idade_padrao = item.idade_padrao * 12;
- if (item.flag_intervalo_minimo == FlagData.ANO)
- item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
- _dose.grupo_alvo = item.grupo_alvo;
- _dose.idade_padrao = item.idade_padrao;
- _dose.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses;
- _dose.tipo_dose_vacina_id = item.tipo_dose_vacina_id;
- _dose.ativo = item.ativo;
- }
- }
- }
- else
- {
- _vacina.Doses = new List<DoseVacina>();
- foreach (var item in vacina.Doses)
- {
- if (item.idade_padrao < 0)
- throw new Exception(DOSE_IDADE_NEGATIVA);
- if (item.intervalo_minimo_entre_doses < 0)
- throw new Exception(INTERVALO_DOSE_NEGATIVA);
- if (item.flag_idade_padrao == FlagData.ANO)
- item.idade_padrao = item.idade_padrao * 12;
- if (item.flag_intervalo_minimo == FlagData.ANO)
- item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
- _vacina.Doses.Add(item);
- }
- }
- ctx.SaveChanges();
- return _vacina;
- }
- var doses = vacina.Doses;
- vacina.Doses = new List<DoseVacina>();
- foreach (var item in doses)
- {
- if (item.idade_padrao < 0)
- throw new Exception(DOSE_IDADE_NEGATIVA);
- if (item.intervalo_minimo_entre_doses < 0)
- throw new Exception(INTERVALO_DOSE_NEGATIVA);
- if (item.flag_idade_padrao == FlagData.ANO)
- item.idade_padrao = item.idade_padrao * 12;
- if (item.flag_intervalo_minimo == FlagData.ANO)
- item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
- vacina.Doses.Add(item);
- }
- ctx.Vacinas.AddOrUpdate(vacina);
- ctx.SaveChanges();
- return vacina;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement