Exemple #1
0
        private int[] GetCodPresenca(int[] Cod_Usuarios, DateTime Data, int Cod_Comum)
        {
            List <int> result = new List <int>();
            Context    cx     = new Context();

            try{
                cx.BeginTransaction();
                List <Presenca>         presencas = Presenca.ListInCod_Usuario(Cod_Usuarios, Data, cx);
                List <FaltaJustificada> faltas    = FaltaJustificada.ListInCod_Usuario(Cod_Usuarios, Data, cx);

                foreach (var Cod_Usuario in Cod_Usuarios)
                {
                    if (Cod_Usuario != 0)
                    {
                        UsuarioComum usuario  = UsuarioComum.Find(Cod_Usuario, Cod_Comum, cx);
                        Presenca     presenca = presencas.FirstOrDefault(e => e.Cod_Usuario == Cod_Usuario);

                        if (presenca == null && usuario != null)
                        {
                            presenca             = new Presenca();
                            presenca.Cod_Usuario = usuario.Cod_Usuario;
                            presenca.Data        = Data;
                            presenca.Instrutor   = UserSession.Get(Request.HttpContext).Cod_Usuario();
                            presenca.Save(cx);
                            result.Add(presenca.Cod_Presenca);
                        }

                        FaltaJustificada falta = faltas.FirstOrDefault(e => e.Cod_Usuario == Cod_Usuario);
                        if (falta != null)
                        {
                            FaltaJustificada.Delete(falta.Cod_Justificativa, cx);
                            string nome = Usuario.Find(Cod_Usuario).Nome;
                            Monitor.Add <FaltaJustificada>(HttpContext, 'D', GEM.Helpers.Util.ShortName(nome) + " data: " + Data.ToString("dd/MM/yyyy"));
                        }
                    }
                }

                cx.Commit();

                AddSessaoPresenca(result.ToArray());
                return(result.ToArray());
            }catch {
                cx.Rollback();
            }

            return(new int[] { });
        }