Ejemplo n.º 1
0
        public string InitializeTimelinesParticipacion()
        {
            var db = new edayRoomEntities();
            db.ClearParticipacion();
            var mesas = db.Mesas.Include("Testigoes").ToList();
            var tlParticipacion = new List<ParticipacionTimeline>();
            var participacionList = new List<Participacion>();

            foreach (var m in mesas)
            {
                tlParticipacion.Add(new ParticipacionTimeline
                                        {
                                            activa = true,
                                            id_mesa = m.id,
                                            fecha = DateTime.Now
                                        });
                var testigo = m.Testigoes.FirstOrDefault(t => t.activo);

                participacionList.Add(new Participacion
                                          {
                                              active = true,
                                              id_mesa = m.id,
                                              fecha = DateTime.Now,
                                              cola = 0,
                                              conteo = 0,
                                              id_parent = null,
                                              id_testigo = testigo == null ? null : (int?)testigo.id

                                          });
            }

            using (
                var con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnSimple"].ConnectionString)
                )
            {
                con.Open();

                #region Participacion Timeline

                using (var tran = con.BeginTransaction())
                {
                    var bc = new SqlBulkCopy(con,
                                             SqlBulkCopyOptions.CheckConstraints |
                                             SqlBulkCopyOptions.FireTriggers |
                                             SqlBulkCopyOptions.KeepNulls, tran) { BatchSize = 1000, DestinationTableName = "participacionTimeline" };

                    bc.WriteToServer(tlParticipacion.AsDataReader());

                    tran.Commit();
                }

                #endregion

                #region Participacion Items

                using (var tran = con.BeginTransaction())
                {
                    var bc = new SqlBulkCopy(con,
                                             SqlBulkCopyOptions.CheckConstraints |
                                             SqlBulkCopyOptions.FireTriggers |
                                             SqlBulkCopyOptions.KeepNulls, tran) { BatchSize = 1000, DestinationTableName = "participacion" };

                    bc.WriteToServer(participacionList.AsDataReader());

                    tran.Commit();
                }

                #endregion

                con.Close();
            }

            return "todo inicializado, bien";
        }