Пример #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");
        }