Example #1
0
 public virtual void SetUp()
 {
     fixture = new Fixture();
     fixture.Customize(new AutoNSubstituteCustomization());
     // some fake GUIDs
     UploadTokens.Init(
         "C14A3DB5-BEE5-4612-9F9C-62972B2C6C83",
         "72DCCD9B-B71B-4B73-8A06-EC137C44F49E",
         "161A6F24-66F6-41F9-BC7D-8BA8A949159A",
         "4AF854D9-647E-4DB0-9219-AD78D64C058D");
 }
        public UploadTokens UploadTokens2(HttpPostedFileBase file)
        {
            //Token tokensVM = new TokensVM();
            var transactions = _db.Database.BeginTransaction();

            try
            {
                string    cs = ConfigurationManager.ConnectionStrings["conUploading"].ConnectionString;
                DataTable dt = new DataTable();
                dt.Columns.Add("ID");
                dt.Columns.Add("GuestId");
                dt.Columns.Add("Token");
                dt.Columns.Add("IsUsed");
                dt.Columns.Add("TokenStatus");
                dt.Columns.Add("DateLocked");
                dt.Columns.Add("DateUsed");
                dt.Columns.Add("IsLocked");
                dt.Columns.Add("ScoresUrl");
                dt.Columns.Add("Lang");
                dt.Columns.Add("IsArchived");
                StreamReader reader = new StreamReader(file.InputStream);
                string       line;
                int          counter = 0;
                while ((line = reader.ReadLine()) != null)
                {
                    string[] split = line.Split('\t');
                    if (split[0] != "")
                    {
                        DataRow dr = dt.NewRow();
                        dr["GuestId"]     = DBNull.Value;
                        dr["Token"]       = split[0].ToString();
                        dr["IsUsed"]      = DBNull.Value;
                        dr["TokenStatus"] = DBNull.Value;
                        dr["DateLocked"]  = DBNull.Value;
                        dr["DateUsed"]    = DBNull.Value;
                        dr["IsLocked"]    = DBNull.Value;
                        dr["ScoresUrl"]   = DBNull.Value;
                        dr["Lang"]        = DBNull.Value;
                        dr["IsArchived"]  = DBNull.Value;
                        dt.Rows.Add(dr);
                    }
                }

                using (SqlConnection connection
                           = new SqlConnection(cs))
                {
                    // make sure to enable triggers
                    // more on triggers in next post
                    SqlBulkCopy bulkCopy =
                        new SqlBulkCopy
                        (
                            connection,
                            SqlBulkCopyOptions.TableLock |
                            SqlBulkCopyOptions.FireTriggers |
                            SqlBulkCopyOptions.UseInternalTransaction,
                            null
                        );

                    // set the destination table name
                    bulkCopy.DestinationTableName = "Tokens";
                    bulkCopy.BatchSize            = 10000;
                    connection.Open();

                    // write the data in the "dataTable"
                    bulkCopy.WriteToServer(dt);
                    connection.Close();
                }
                // reset
                //dt.Clear();
                transactions.Commit();
                UploadTokens uploadTokens = new UploadTokens("", true, counter);
                return(uploadTokens);
            }
            catch (Exception ex)
            {
                transactions.Rollback();
                throw ex;
            }
            finally
            {
                _db.Dispose();
            }
        }