Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.19 KB | None | 0 0
  1.  public static Vacina Manter(Vacina vacina)
  2.         {
  3.             if (String.IsNullOrEmpty(vacina.nome))
  4.                 throw new Exception(VACINA_NOME_INVALIDO);
  5.  
  6.             if (vacina.restricao_sexo < 0)
  7.                 throw new Exception(RESTRICAO_SEXO_INVALIDO);
  8.  
  9.             if (vacina.flag_idade_minima == FlagData.ANO)
  10.             {
  11.                 vacina.idade_minima = vacina.idade_minima * 12;
  12.             }
  13.  
  14.             if (vacina.idade_minima < 0)
  15.                 throw new Exception(IDADE_MINIMA_INVALIDA);
  16.          
  17.             if (vacina.flag_idade_maxima == FlagData.ANO)
  18.             {
  19.                 vacina.idade_maxima = vacina.idade_maxima * 12;
  20.             }
  21.  
  22.             if (vacina.idade_maxima > (130*12))
  23.                 throw new Exception(IDADE_MAXIMA_INVALIDA);
  24.  
  25.             if (vacina.idade_maxima < vacina.idade_minima)
  26.                 throw new Exception(IDADE_VACINA_FINAL_MENOR);
  27.  
  28.             using (var ctx = new Repositorio())
  29.             {
  30.                 Vacina _vacina = ctx.Vacinas.Include(c => c.Doses).Where(c => c.id == vacina.id).FirstOrDefault();
  31.  
  32.                 if (_vacina != null)
  33.                 {//Existe a vacina
  34.                     _vacina.nome = vacina.nome;
  35.                     _vacina.descricao = vacina.descricao;
  36.                     _vacina.codigo = vacina.codigo;
  37.                     _vacina.restricao_sexo = vacina.restricao_sexo;
  38.                     _vacina.ativo = vacina.ativo;                    
  39.                     _vacina.idade_minima = vacina.idade_minima;
  40.                     _vacina.flag_idade_minima = vacina.flag_idade_minima;                      
  41.                     _vacina.idade_maxima = vacina.idade_maxima;
  42.                     _vacina.flag_idade_maxima = vacina.flag_idade_maxima;
  43.                     _vacina.gestante = vacina.gestante;
  44.                     _vacina.hanseniase = vacina.hanseniase;
  45.                     _vacina.puerpera = vacina.puerpera;
  46.                     _vacina.viajante = vacina.viajante;
  47.                
  48.                     //há elemento
  49.                     if (_vacina.Doses.Count > 0)
  50.                     {
  51.                         foreach (var item in vacina.Doses)
  52.                         {
  53.                             var _dose = _vacina.Doses.Where(c => c.id == item.id).FirstOrDefault();
  54.                             if (_dose == null)
  55.                             {
  56.                                 if (item.idade_padrao < 0)
  57.                                     throw new Exception(DOSE_IDADE_NEGATIVA);
  58.  
  59.                                 if (item.intervalo_minimo_entre_doses < 0)
  60.                                     throw new Exception(INTERVALO_DOSE_NEGATIVA);
  61.  
  62.                                 if (item.flag_idade_padrao == FlagData.ANO)
  63.                                     item.idade_padrao = item.idade_padrao * 12;
  64.    
  65.                                 if (item.flag_intervalo_minimo == FlagData.ANO)
  66.                                     item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
  67.  
  68.                                 _vacina.Doses.Add(item);
  69.                             }
  70.                             else
  71.                             {
  72.                                 if (item.intervalo_minimo_entre_doses < 0)
  73.                                     throw new Exception(INTERVALO_DOSE_NEGATIVA);
  74.                                 if (item.idade_padrao < 0)
  75.                                     throw new Exception(DOSE_IDADE_NEGATIVA);
  76.  
  77.                                 if (item.flag_idade_padrao == FlagData.ANO)
  78.                                     item.idade_padrao = item.idade_padrao * 12;
  79.  
  80.                                 if (item.flag_intervalo_minimo == FlagData.ANO)
  81.                                     item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
  82.  
  83.                                 _dose.grupo_alvo = item.grupo_alvo;
  84.                                 _dose.idade_padrao = item.idade_padrao;
  85.                                 _dose.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses;
  86.                                 _dose.tipo_dose_vacina_id = item.tipo_dose_vacina_id;
  87.                                 _dose.ativo = item.ativo;
  88.                             }
  89.                         }
  90.                     }
  91.                     else
  92.                     {
  93.                         _vacina.Doses = new List<DoseVacina>();
  94.                         foreach (var item in vacina.Doses)
  95.                         {
  96.                             if (item.idade_padrao < 0)
  97.                                 throw new Exception(DOSE_IDADE_NEGATIVA);
  98.  
  99.                             if (item.intervalo_minimo_entre_doses < 0)
  100.                                 throw new Exception(INTERVALO_DOSE_NEGATIVA);
  101.  
  102.                             if (item.flag_idade_padrao == FlagData.ANO)
  103.                                 item.idade_padrao = item.idade_padrao * 12;
  104.  
  105.                             if (item.flag_intervalo_minimo == FlagData.ANO)
  106.                                 item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
  107.                             _vacina.Doses.Add(item);
  108.                         }
  109.                     }
  110.                     ctx.SaveChanges();
  111.                     return _vacina;
  112.                 }
  113.  
  114.                 var doses = vacina.Doses;
  115.                 vacina.Doses = new List<DoseVacina>();
  116.  
  117.                 foreach (var item in doses)
  118.                 {
  119.                     if (item.idade_padrao < 0)
  120.                         throw new Exception(DOSE_IDADE_NEGATIVA);
  121.  
  122.                     if (item.intervalo_minimo_entre_doses < 0)
  123.                         throw new Exception(INTERVALO_DOSE_NEGATIVA);
  124.  
  125.                     if (item.flag_idade_padrao == FlagData.ANO)
  126.                         item.idade_padrao = item.idade_padrao * 12;
  127.  
  128.                     if (item.flag_intervalo_minimo == FlagData.ANO)
  129.                         item.intervalo_minimo_entre_doses = item.intervalo_minimo_entre_doses * 12;
  130.  
  131.                     vacina.Doses.Add(item);
  132.                 }
  133.  
  134.                 ctx.Vacinas.AddOrUpdate(vacina);
  135.                 ctx.SaveChanges();
  136.                 return vacina;
  137.             }
  138.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement