public static DataTable GetAllTurnos(Inscripcion inscripcion)
 {
     try
     {
         InscripcionDAO inscripcionDAO = new InscripcionDAO(connectionString);
         return inscripcionDAO.SelectAllTurnos(inscripcion.DNI);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 public static void DeleteInscriptionsInTurn(Inscripcion inscripcion)
 {
     try
     {
         InscripcionDAO inscripcionDAO = new InscripcionDAO(connectionString);
         inscripcionDAO.DeleteAllByTurnoInscripcionIdVuelta(inscripcion.TurnoInscripcion, inscripcion.IdVuelta);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        /// <summary>
        /// Method to Suscribe Student
        /// </summary>
        private void SuscribeStudent()
        {
            try
            {
                bool cleanInscriptions = true;
                bool mailStatus = false;
                bool userEmployee = false;
                listCarro = new List<Carro>();
                listPreCarro = new List<Carro>();
                deletedCarro = new List<Carro>();
                listCarro = (List<Carro>)Session["carro"];
                listPreCarro = (List<Carro>)Session["preCarro"];

                if (Session["idVuelta"] != null)
                    idVuelta = Convert.ToInt32(Session["idVuelta"]);

                if (Session["userEmployee"] != null)
                    userEmployee = true;

                using (TransactionScope scope = new TransactionScope())
                {
                    for (int count = 0; count < listCarro.Count; count++)
                    {
                        if (listCarro[count].IdEstadoInscripcion != IdEstadoBajaModificacion)
                        {
                            inscripcion = new Inscripcion();
                            inscripcion.IdTipoInscripcion = listCarro[count].IdTipoInscripcion;
                            inscripcion.TurnoInscripcion = listCarro[count].TurnoInscripcion;
                            inscripcion.IdVuelta = listCarro[count].IdVuelta;
                            inscripcion.IdMateria = listCarro[count].IdMateria;
                            inscripcion.CatedraComision = listCarro[count].CatedraComision;
                            inscripcion.DNI = ((Usuario)Session["user"]).DNI;
                            inscripcion.IdEstadoInscripcion = listCarro[count].IdEstadoInscripcion;

                            //LOGICA PARA ACTUALIZAR Y SETEAR DATOS DE AUDITORIA
                            if (listPreCarro != null)
                            {
                                auxCarro = new Carro();
                                var tagged = listPreCarro.Select((carro, i) => new { Carro = carro, Index = i });
                                auxCarro = (from obj in tagged
                                            where obj.Carro.CatedraComision == listCarro[count].CatedraComision
                                            && obj.Carro.IdMateria == listCarro[count].IdMateria
                                            && obj.Carro.IdVuelta == listCarro[count].IdVuelta
                                            select obj.Carro).SingleOrDefault();
                            }

                            if (auxCarro != null)
                            {
                                if (auxCarro.OrigenInscripcion != String.Empty && auxCarro.OrigenInscripcion != null)
                                    inscripcion.OrigenInscripcion = auxCarro.OrigenInscripcion;
                                else
                                {
                                    if (!userEmployee)
                                        inscripcion.OrigenInscripcion = IdOrigenInscripcionWeb;
                                    else
                                        inscripcion.OrigenInscripcion = IdOrigenInscripcionFacu;
                                }
                                if (auxCarro.IdEstadoInscripcion == IdEstadoBajaModificacion)
                                {
                                    if (!userEmployee)
                                        inscripcion.OrigenModificacion = IdOrigenInscripcionWeb;
                                    else
                                        inscripcion.OrigenModificacion = IdOrigenInscripcionFacu;
                                    inscripcion.FechaModificacionInscripcion = DateTime.Now;
                                }
                                else
                                {
                                    inscripcion.OrigenModificacion = null;
                                    inscripcion.FechaModificacionInscripcion = (DateTime)SqlDateTime.Null;
                                }

                                if (auxCarro.FechaAltaInscripcion != null && auxCarro.FechaAltaInscripcion != DateTime.MinValue && auxCarro.FechaAltaInscripcion != (DateTime)SqlDateTime.Null)
                                    inscripcion.FechaAltaInscripcion = auxCarro.FechaAltaInscripcion;
                                else
                                    inscripcion.FechaAltaInscripcion = DateTime.Now;
                            }
                            else
                            {
                                if (listCarro[count].OrigenInscripcion != String.Empty && listCarro[count].OrigenInscripcion != null)
                                    inscripcion.OrigenInscripcion = listCarro[count].OrigenInscripcion;
                                else
                                {
                                    if (!userEmployee)
                                        inscripcion.OrigenInscripcion = IdOrigenInscripcionWeb;
                                    else
                                        inscripcion.OrigenInscripcion = IdOrigenInscripcionFacu;
                                }

                                if (listCarro[count].OrigenModificacion != String.Empty && listCarro[count].OrigenModificacion != null)
                                    inscripcion.OrigenModificacion = listCarro[count].OrigenModificacion;
                                else
                                    inscripcion.OrigenModificacion = null;

                                if (listCarro[count].FechaAltaInscripcion != null && listCarro[count].FechaAltaInscripcion != DateTime.MinValue && listCarro[count].FechaAltaInscripcion != (DateTime)SqlDateTime.Null)
                                    inscripcion.FechaAltaInscripcion = listCarro[count].FechaAltaInscripcion;
                                else
                                    inscripcion.FechaAltaInscripcion = DateTime.Now;

                                inscripcion.FechaModificacionInscripcion = (DateTime)SqlDateTime.Null;
                            }

                            if (userEmployee)
                            {
                                if (listCarro[count].DNIEmpleadoAlta != 0)
                                    inscripcion.DNIEmpleadoAlta = listCarro[count].DNIEmpleadoAlta;
                                else
                                    inscripcion.DNIEmpleadoAlta = listCarro[count].OrigenInscripcion == IdOrigenInscripcionWeb ? 0 : ((Usuario)Session["userEmployee"]).DNI;
                                if (listPreCarro != null && listPreCarro.Count > 0)
                                    inscripcion = SetDNIEmpleado(inscripcion, listPreCarro, false);
                            }
                            else
                            {
                                if (listPreCarro != null && listPreCarro.Count > 0)
                                    inscripcion = SetDNIEmpleado(inscripcion, listPreCarro, true);

                                if (inscripcion.DNIEmpleadoAlta == 0)
                                    inscripcion.DNIEmpleadoAlta = listCarro[count].DNIEmpleadoAlta;
                                if (inscripcion.DNIEmpleadoMod == 0)
                                    inscripcion.DNIEmpleadoMod = listCarro[count].DNIEmpleadoMod;
                            }

                            if (cleanInscriptions)
                            {
                                InscripcionDTO.DeleteInscriptions(inscripcion);
                                cleanInscriptions = false;
                            }

                            inscripcion.IdInscripcion = InscripcionDTO.InsertInscripcion(inscripcion);
                        }
                    }

                    if ((listPreCarro != null) && (listPreCarro.Count > 0))
                        ChangeInscriptionsBajaMod(listCarro, listPreCarro, 1, cleanInscriptions, userEmployee);

                    if(Session["deletedCarro"] != null)
                        ChangeInscriptionsBajaMod(listCarro, (List<Carro>)Session["deletedCarro"], 2, cleanInscriptions, userEmployee);
                    if(Session["listDuplicated"] != null)
                        ChangeInscriptionsBajaMod(listCarro, (List<Carro>)Session["listDuplicated"], 2, cleanInscriptions, userEmployee);

                    scope.Complete();
                }

                if (listCarro.Count > 0)
                    mailStatus = SendMailInscriptions(listCarro);
                else
                {
                    if (Session["deletedCarro"] != null)
                        mailStatus = SendMailInscriptions((List<Carro>)Session["deletedCarro"]);
                }

                if (mailStatus)
                {
                    if (Session["userEmployee"] == null)
                        Response.Redirect(ConfigurationManager.AppSettings["UrlStudentInscripcion"] + "?result=ok&email=ok");
                    else
                        ToolkitScriptManager.RegisterStartupScript(this.Page, this.GetType(), "jsPrint", scriptingBuilder.ToString(), false);
                }
                else
                {
                    if (Session["userEmployee"] == null)
                        Response.Redirect(ConfigurationManager.AppSettings["UrlStudentInscripcion"] + "?result=ok&email=error");
                    else
                        ToolkitScriptManager.RegisterStartupScript(this.Page, this.GetType(), "jsPrint", scriptingBuilder.ToString(), false);
                }
            }
            catch (ThreadAbortException)
            {

            }
            catch (Exception ex)
            {
                LogWriter log = new LogWriter();
                log.WriteLog(ex.Message, "DeleteCartItem", Path.GetFileName(Request.PhysicalPath));
                Response.Redirect(ConfigurationManager.AppSettings["UrlStudentInscripcion"] + "?result=error");
            }
        }
        /// <summary>
        /// Method to Set Employee DNI in the object
        /// </summary>
        private Inscripcion SetDNIEmpleado(Inscripcion inscripcion, List<Carro> listPreCarro, bool altaMod)
        {
            try
            {
                for (int i = 0; i < listPreCarro.Count; i++)
                {
                    if (listPreCarro[i].IdMateria == inscripcion.IdMateria && listPreCarro[i].CatedraComision == inscripcion.CatedraComision)
                    {
                        if (altaMod)
                        {
                            inscripcion.DNIEmpleadoAlta = listPreCarro[i].DNIEmpleadoAlta;
                            inscripcion.DNIEmpleadoMod = listPreCarro[i].DNIEmpleadoMod;
                        }
                        else
                            inscripcion.DNIEmpleadoMod = ((Usuario)Session["userEmployee"]).DNI;
                        break;
                    }
                }

                return inscripcion;
            }
            catch (Exception ex)
            {
                LogWriter log = new LogWriter();
                log.WriteLog(ex.Message, "SetDNIEmpleado", Path.GetFileName(Request.PhysicalPath));
                throw ex;
            }
        }
        /// <summary>
        /// Method to compare the original inscriptions and the new inscriptions, except the errased inscriptions and insert with the M state
        /// </summary>
        /// <param name="newList"></param>
        /// <param name="oldList"></param>
        private void ChangeInscriptionsBajaMod(List<Carro> newList, List<Carro> oldList, int actionStatus, bool clean, bool userEmployee)
        {
            try
            {
                List<Carro> listDifference;

                if (actionStatus == 1)
                    listDifference = oldList.Except(newList, new Carro()).ToList();
                else
                    listDifference = oldList;

                for (int i = 0; i < listDifference.Count; i++)
                {
                    inscripcion = new Inscripcion();
                    inscripcion.IdTipoInscripcion = listDifference[i].IdTipoInscripcion;
                    inscripcion.TurnoInscripcion = listDifference[i].TurnoInscripcion;
                    inscripcion.IdVuelta = listDifference[i].IdVuelta;
                    inscripcion.IdMateria = listDifference[i].IdMateria;
                    inscripcion.CatedraComision = listDifference[i].CatedraComision;
                    inscripcion.DNI = ((Usuario)Session["user"]).DNI;

                    if (actionStatus == 1)
                        inscripcion.IdEstadoInscripcion = IdEstadoBajaModificacion;
                    else
                        inscripcion.IdEstadoInscripcion = listDifference[i].IdEstadoInscripcion;

                    inscripcion.OrigenInscripcion = listDifference[i].OrigenInscripcion;

                    if (listDifference[i].OrigenModificacion != null && listDifference[i].OrigenModificacion != String.Empty)
                        inscripcion.OrigenModificacion = listDifference[i].OrigenModificacion;
                    else
                    {
                        if (Session["userEmployee"] == null)
                        {
                            if (actionStatus == 2 && listDifference[i].IdEstadoInscripcion == IdEstadoAltaInscripcion)
                                inscripcion.OrigenModificacion = null;
                            else
                                inscripcion.OrigenModificacion = IdOrigenInscripcionWeb;
                        }
                        else
                        {
                            if (actionStatus == 2 && listDifference[i].IdEstadoInscripcion == IdEstadoAltaInscripcion)
                                inscripcion.OrigenModificacion = null;
                            else
                                inscripcion.OrigenModificacion = IdOrigenInscripcionFacu;
                        }
                    }

                    if (listDifference[i].FechaModificacionInscripcion != null && listDifference[i].FechaModificacionInscripcion != DateTime.MinValue && listDifference[i].FechaModificacionInscripcion != (DateTime)SqlDateTime.Null)
                        inscripcion.FechaModificacionInscripcion = listDifference[i].FechaModificacionInscripcion;
                    else
                    {
                        if (actionStatus == 2 && listDifference[i].IdEstadoInscripcion == IdEstadoAltaInscripcion)
                            inscripcion.FechaModificacionInscripcion = listDifference[i].FechaModificacionInscripcion != DateTime.MinValue ? listDifference[i].FechaModificacionInscripcion : (DateTime)SqlDateTime.Null;
                        else
                            inscripcion.FechaModificacionInscripcion = DateTime.Now;
                    }

                    inscripcion.FechaAltaInscripcion = listDifference[i].FechaAltaInscripcion;
                    inscripcion.DNIEmpleadoAlta = listDifference[i].DNIEmpleadoAlta;

                    if (userEmployee)
                        inscripcion.DNIEmpleadoMod = ((Usuario)Session["userEmployee"]).DNI;
                    else
                        inscripcion.DNIEmpleadoMod = listDifference[i].DNIEmpleadoMod;

                    if (clean)
                    {
                        InscripcionDTO.DeleteInscriptions(inscripcion);
                        clean = false;
                    }

                    InscripcionDTO.InsertInscripcion(inscripcion);
                }
            }
            catch (Exception ex)
            {
                LogWriter log = new LogWriter();
                log.WriteLog(ex.Message, "ChangeInscriptionsBajaMod", Path.GetFileName(Request.PhysicalPath));
                throw ex;
            }
        }
        protected void btnRequest_Click(object sender, EventArgs e)
        {
            try
            {
                ddInscripciones.RefreshControl();

                RemoveSessionVars();
                user = ValidateStudent(Convert.ToInt32(txtDni.Text));

                if (user != null && user.DNI != 0)
                {
                    SetStudentData();
                    Session.Remove("user");
                    Session.Add("user", user);
                    listInscripcionesActivas = new List<InscripcionActiva>();
                    listInscripcionesActivas = InscripcionActivaDTO.ValidateInscipcionesActivas(DateTime.Now, 1);
                    Session.Add("inscripcionesActivas", listInscripcionesActivas);

                    if (listInscripcionesActivas.Count != 0)
                    {
                        inscripcion = new Inscripcion();
                        inscripcion.IdTipoInscripcion = listInscripcionesActivas[0].IdTipoInscripcion;
                        inscripcion.TurnoInscripcion = listInscripcionesActivas[0].TurnoInscripcion;
                        inscripcion.IdVuelta = listInscripcionesActivas[0].IdVuelta;
                        inscripcion.DNI = ((Usuario)Session["user"]).DNI;
                        Session.Add("idVuelta", inscripcion.IdVuelta);

                        //Seteamos el estado en A, para que traiga las inscripciones en alta
                        inscripcion.IdEstadoInscripcion = IdEstadoAltaInscripcion;

                        listCarroAlta = new List<Carro>();
                        listCarroBaja = new List<Carro>();
                        listCarroAlta = InscripcionDTO.GetInscriptionsInTurn(inscripcion);

                        SetCartLimit();
                        ddInscripciones.Visible = true;

                        if (listCarroAlta.Count > 0)
                        {
                            //Seteamos el estado en M, para que traiga las inscripciones en baja
                            inscripcion.IdEstadoInscripcion = IdEstadoBajaModificacion;
                            listCarroBaja = InscripcionDTO.GetInscriptionsInTurn(inscripcion);

                            Session.Add("carro", RemoveDuplicateItemsDifRounds(listCarroAlta, listCarroBaja));
                            Session.Add("preCarro", listCarroBaja);

                            if ((listCarroAlta != null) && (listCarroAlta.Count != 0))
                            {
                                ((GridView)ddInscripciones.FindControl("wucCarro").FindControl("GridCarro")).DataSource = listCarroAlta;
                                setGridCartHeaders();
                                ((GridView)ddInscripciones.FindControl("wucCarro").FindControl("GridCarro")).DataBind();
                                ShowEmptyCartHeader(false);
                            }
                        }
                        else
                        {
                            ((GridView)ddInscripciones.FindControl("wucCarro").FindControl("GridCarro")).DataSource = null;
                            ((GridView)ddInscripciones.FindControl("wucCarro").FindControl("GridCarro")).DataBind();
                            ShowEmptyCartHeader(true);
                        }
                    }
                    else
                        SetMessage(ConfigurationManager.AppSettings["ContentInscripcionActivaNoDisponible"], 2);
                }
                else
                    SetMessage(ConfigurationManager.AppSettings["ErrorMessageDniInexistente"], 1);

            }
            catch (Exception ex)
            {
                LogWriter log = new LogWriter();
                log.WriteLog(ex.Message, "btnRequest_Click", Path.GetFileName(Request.PhysicalPath));
                throw ex;
            }
        }
 public static List<Carro> GetInscriptionsInTurn(Inscripcion inscripcion)
 {
     try
     {
         InscripcionDAO inscripcionDAO = new InscripcionDAO(connectionString);
         return inscripcionDAO.GetInscriptionsInTurn(inscripcion.IdTipoInscripcion, inscripcion.TurnoInscripcion, inscripcion.IdVuelta, inscripcion.DNI, inscripcion.IdEstadoInscripcion);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 public static int InsertInscripcion(Inscripcion inscripcion)
 {
     try
     {
         InscripcionDAO inscripcionDAO = new InscripcionDAO(connectionString);
         return inscripcionDAO.Insert(inscripcion);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    RemoveSessionVars();
                    if (!Utils.CheckLoggedUser(Session["user"], UserTypeStudent))
                        Response.Redirect(Page.ResolveUrl("~") + ConfigurationManager.AppSettings["UrlLogin"]);

                    if (!Utils.CheckAccountStatus(Session["user"], UserTypeStudent))
                        Response.Redirect(Page.ResolveUrl("~") + ConfigurationManager.AppSettings["UrlStudentPasswordChange"]);

                    listInscripcionesActivas = new List<InscripcionActiva>();
                    listInscripcionesActivas = InscripcionActivaDTO.ValidateInscipcionesActivas(DateTime.Now, 2);
                    Session.Add("inscripcionesActivas", listInscripcionesActivas);

                    if (listInscripcionesActivas.Count != 0)
                    {
                        if (!Convert.ToBoolean(ConfigurationManager.AppSettings["InscripcionDisable"]))
                        {
                            inscripcion = new Inscripcion();
                            inscripcion.IdTipoInscripcion = listInscripcionesActivas[0].IdTipoInscripcion;
                            inscripcion.TurnoInscripcion = listInscripcionesActivas[0].TurnoInscripcion;
                            inscripcion.IdVuelta = listInscripcionesActivas[0].IdVuelta;
                            inscripcion.DNI = ((Usuario)Session["user"]).DNI;
                            Session.Add("idVuelta", inscripcion.IdVuelta);

                            //Seteamos el estado en A, para que traiga todas las inscripciones excepto las baja por modificacion
                            inscripcion.IdEstadoInscripcion = IdEstadoAltaInscripcion;

                            listCarroAlta = new List<Carro>();
                            listCarroBaja = new List<Carro>();
                            listCarroAlta = InscripcionDTO.GetInscriptionsInTurn(inscripcion);

                            if (listCarroAlta.Count > 0)
                            {
                                //Seteamos el estado en M, para que traiga las inscripciones en baja por modificacion
                                inscripcion.IdEstadoInscripcion = IdEstadoBajaModificacion;
                                listCarroBaja = InscripcionDTO.GetInscriptionsInTurn(inscripcion);

                                Session.Add("carro", RemoveDuplicateItemsDifRounds(listCarroAlta, listCarroBaja));
                                Session.Add("preCarro", listCarroBaja);
                            }
                            SetCartLimit();
                        }
                        else
                            SetMessage(ConfigurationManager.AppSettings["ContentInscripcionProcesandoDatos"]);
                    }
                    else
                        SetMessage(ConfigurationManager.AppSettings["ContentInscripcionActivaNoDisponible"]);
                }
            }
            catch (ThreadAbortException)
            {

            }
            catch (Exception ex)
            {
                LogWriter log = new LogWriter();
                log.WriteLog(ex.Message, "Page_Load", Path.GetFileName(Request.PhysicalPath));
                throw ex;
            }
        }
 public static DataTable GetStudentInscriptions(Inscripcion inscripcion)
 {
     try
     {
         InscripcionDAO inscripcionDAO = new InscripcionDAO(connectionString);
         return inscripcionDAO.SelectHistoricoByDNI(inscripcion.DNI, inscripcion.TurnoInscripcion, inscripcion.IdTipoInscripcion);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        /// <summary>
        /// Creates a new instance of the Inscripcion class and populates it with data from the specified SqlDataReader.
        /// </summary>
        private Inscripcion MapDataReader(SqlDataReader dataReader)
        {
            Inscripcion inscripcion = new Inscripcion();
            inscripcion.IdInscripcion = dataReader.GetInt32("IdInscripcion", 0);
            inscripcion.IdTipoInscripcion = dataReader.GetString("IdTipoInscripcion", String.Empty);
            inscripcion.TurnoInscripcion = dataReader.GetDateTime("TurnoInscripcion", new DateTime(0));
            inscripcion.IdVuelta = dataReader.GetInt32("IdVuelta", 0);
            inscripcion.IdMateria = dataReader.GetInt32("IdMateria", 0);
            inscripcion.CatedraComision = dataReader.GetString("CatedraComision", String.Empty);
            inscripcion.DNI = dataReader.GetInt32("DNI", 0);
            inscripcion.IdEstadoInscripcion = dataReader.GetString("IdEstadoInscripcion", String.Empty);
            inscripcion.OrigenInscripcion = dataReader.GetString("OrigenInscripcion", String.Empty);
            inscripcion.FechaAltaInscripcion = dataReader.GetDateTime("FechaAltaInscripcion", new DateTime(0));
            inscripcion.FechaModificacionInscripcion = dataReader.GetDateTime("FechaModificacionInscripcion", new DateTime(0));
            inscripcion.OrigenModificacion = dataReader.GetString("OrigenModificacion", String.Empty);
            inscripcion.DNIEmpleadoAlta = dataReader.GetInt32("DNIEmpleadoAlta", 0);
            inscripcion.DNIEmpleadoMod = dataReader.GetInt32("DNIEmpleadoMod", 0);

            return inscripcion;
        }
        /// <summary>
        /// Updates a record in the Inscripcion table.
        /// </summary>
        public void Update(Inscripcion inscripcion)
        {
            ValidationUtility.ValidateArgument("inscripcion", inscripcion);

            SqlParameter[] parameters = new SqlParameter[]
            {
                new SqlParameter("@IdInscripcion", inscripcion.IdInscripcion),
                new SqlParameter("@IdTipoInscripcion", inscripcion.IdTipoInscripcion),
                new SqlParameter("@TurnoInscripcion", inscripcion.TurnoInscripcion),
                new SqlParameter("@IdVuelta", inscripcion.IdVuelta),
                new SqlParameter("@IdMateria", inscripcion.IdMateria),
                new SqlParameter("@CatedraComision", inscripcion.CatedraComision),
                new SqlParameter("@DNI", inscripcion.DNI),
                new SqlParameter("@IdEstadoInscripcion", inscripcion.IdEstadoInscripcion),
                new SqlParameter("@OrigenInscripcion", inscripcion.OrigenInscripcion),
                new SqlParameter("@FechaAltaInscripcion", inscripcion.FechaAltaInscripcion),
                new SqlParameter("@FechaModificacionInscripcion", inscripcion.FechaModificacionInscripcion),
                new SqlParameter("@OrigenModificacion", inscripcion.OrigenModificacion),
                new SqlParameter("@DNIEmpleadoAlta", inscripcion.DNIEmpleadoAlta),
                new SqlParameter("@DNIEmpleadoMod", inscripcion.DNIEmpleadoMod)
            };

            SqlClientUtility.ExecuteNonQuery(connectionStringName, CommandType.StoredProcedure, "InscripcionUpdate", parameters);
            SqlConnection.ClearAllPools();
        }
        /// <summary>
        /// Saves a record to the Inscripcion table.
        /// </summary>
        public int Insert(Inscripcion inscripcion)
        {
            ValidationUtility.ValidateArgument("inscripcion", inscripcion);

            SqlParameter[] parameters = new SqlParameter[]
            {
                new SqlParameter("@IdTipoInscripcion", inscripcion.IdTipoInscripcion),
                new SqlParameter("@TurnoInscripcion", inscripcion.TurnoInscripcion),
                new SqlParameter("@IdVuelta", inscripcion.IdVuelta),
                new SqlParameter("@IdMateria", inscripcion.IdMateria),
                new SqlParameter("@CatedraComision", inscripcion.CatedraComision),
                new SqlParameter("@DNI", inscripcion.DNI),
                new SqlParameter("@IdEstadoInscripcion", inscripcion.IdEstadoInscripcion),
                new SqlParameter("@OrigenInscripcion", inscripcion.OrigenInscripcion),
                new SqlParameter("@FechaAltaInscripcion", inscripcion.FechaAltaInscripcion),
                new SqlParameter("@FechaModificacionInscripcion", inscripcion.FechaModificacionInscripcion),
                new SqlParameter("@OrigenModificacion", inscripcion.OrigenModificacion),
                new SqlParameter("@DNIEmpleadoAlta", inscripcion.DNIEmpleadoAlta),
                new SqlParameter("@DNIEmpleadoMod", inscripcion.DNIEmpleadoMod)
            };
            var id = Convert.ToInt32(SqlClientUtility.ExecuteScalar(connectionStringName, CommandType.StoredProcedure, "InscripcionInsert", parameters));
            SqlConnection.ClearAllPools();
            return id;
        }
        /// <summary>
        /// Method to upload the Inscripciones file
        /// </summary>
        /// <returns></returns>
        private void UploadInscripciones()
        {
            if (fuInscripciones.HasFile)
            {
                try
                {
                    bool cleanInscriptions = true;
                    int count = 0;

                    StringBuilder dniError = new StringBuilder();
                    if (fuInscripciones.PostedFile.ContentType == C_FILE_TYPE)
                    {
                        string filename = Path.GetFileName(fuInscripciones.FileName);
                        fuInscripciones.SaveAs(Server.MapPath("~/") + C_FILE_DIRECTORY + filename);
                        sFile = fuInscripciones.PostedFile.InputStream;
                        srReadFile = new StreamReader(sFile);

                        while ((line = srReadFile.ReadLine()) != null)
                        {
                            string[] tmpArray = line.Split(Convert.ToChar(";"));
                            inscripcion = new Inscripcion();

                            if (!ValidateStudentsInPadron(Convert.ToInt32(tmpArray[5])))
                            {
                                Usuario missedUser = new Usuario(Convert.ToInt32(tmpArray[5]), "Sin Datos", null, 2, null, false, false, -1, -1, null,
                                    null, null, null, false, null, null, null, null, null, null, null);
                                UsuarioDTO.ImportPadron(missedUser);

                                if (dniError.ToString().IndexOf(tmpArray[5]) == -1)
                                    dniError.Append(tmpArray[5] + "<br/>");
                            }

                            inscripcion.IdTipoInscripcion = tmpArray[0];
                            inscripcion.TurnoInscripcion = Convert.ToDateTime(tmpArray[1]);
                            inscripcion.IdVuelta = Convert.ToInt32(tmpArray[2]);
                            inscripcion.IdMateria = Convert.ToInt32(tmpArray[3]);
                            inscripcion.CatedraComision = tmpArray[4];
                            inscripcion.DNI = Convert.ToInt32(tmpArray[5]);
                            inscripcion.IdEstadoInscripcion = tmpArray[6];
                            inscripcion.OrigenInscripcion = tmpArray[7];
                            if (tmpArray[8].Trim() != String.Empty)
                                inscripcion.FechaAltaInscripcion = Convert.ToDateTime(tmpArray[8] + " " + tmpArray[9]);
                            else
                                inscripcion.FechaAltaInscripcion = (DateTime)SqlDateTime.Null;

                            if (tmpArray[10].Trim() != String.Empty)
                                inscripcion.OrigenModificacion = tmpArray[10];
                            else
                                inscripcion.OrigenModificacion = null;
                            if (tmpArray[11].Trim() != String.Empty)
                                inscripcion.FechaModificacionInscripcion = Convert.ToDateTime(tmpArray[11] + " " + tmpArray[12]);
                            else
                                inscripcion.FechaModificacionInscripcion = (DateTime)SqlDateTime.Null;

                            inscripcion.DNIEmpleadoAlta = tmpArray[13].Trim() != String.Empty ? Convert.ToInt32(tmpArray[13]) : 0;
                            inscripcion.DNIEmpleadoMod = tmpArray[14].Trim() != String.Empty ? Convert.ToInt32(tmpArray[14]) : 0;

                            if (cleanInscriptions)
                            {
                                InscripcionDTO.DeleteInscriptionsInTurn(inscripcion);
                                cleanInscriptions = false;
                            }
                            InscripcionDTO.InsertInscripcion(inscripcion);
                            count++;
                        }
                        if (dniError.Length > 0)
                            lblEstadoImportarInscripciones.Text = "Se han importado las inscripciones correctamente, y se dieron parcialmnete de alta algunos alumnos. <br/> Listado DNI: <br/>"
                                + dniError.ToString() + "<br/><br/>Total de Registros procesados: " + count.ToString();
                        else
                            lblEstadoImportarInscripciones.Text = "Se han importado las inscripciones correctamente";
                    }
                    else
                        lblEstadoImportarInscripciones.Text = "Formato de archivo invalido (unicamente .txt)";
                }
                catch (Exception ex)
                {
                    LogWriter log = new LogWriter();
                    log.WriteLog(ex.Message, "UploadInscripciones", Path.GetFileName(Request.PhysicalPath));
                    lblEstadoImportarInscripciones.Text = "No se pudo subir el archivo. En el registro -->" + inscripcion.IdTipoInscripcion
                        + "; " + inscripcion.TurnoInscripcion.ToString("MM/yyyy") + "; " + inscripcion.IdVuelta.ToString() + "; " + inscripcion.IdMateria.ToString()
                        + "; " + inscripcion.CatedraComision + "; " + inscripcion.DNI.ToString() + "<-- ocurrio el siguiente error: " + ex.Message;
                }
            }
        }
        /// <summary>
        /// Method to Get all the inscriptions of students
        /// </summary>
        private void GetStudentInscriptions(DateTime turno, string tipoInscripcion)
        {
            try
            {
                historicoInscripcion = new Inscripcion();
                historicoInscripcion.DNI = ((Usuario)Session["user"]).DNI;
                historicoInscripcion.TurnoInscripcion = turno;
                historicoInscripcion.IdTipoInscripcion = GetIdTipoInscripcion(tipoInscripcion);

                GridResultados.DataSource = RemoveDuplicates(InscripcionDTO.GetStudentInscriptions(historicoInscripcion));
                Session.Add("inscripciones", GridResultados.DataSource);
                setHeaders();
                GridResultados.DataBind();

                if (GridResultados.Rows.Count == 0)
                    btnImprimir.Visible = false;
            }
            catch (Exception ex)
            {
                LogWriter log = new LogWriter();
                log.WriteLog(ex.Message, "GetStudentInscriptions", Path.GetFileName(Request.PhysicalPath));
                throw ex;
            }
        }