Exemple #1
0
        // PUT: api/Guests/5
        //[ResponseType(typeof(void))]
        //public IHttpActionResult PutGuest(long id, Guest guest)
        //{
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }

        //    if (id != guest.ID)
        //    {
        //        return BadRequest();
        //    }

        //    db.Entry(guest).State = EntityState.Modified;

        //    try
        //    {
        //        db.SaveChanges();
        //    }
        //    catch (DbUpdateConcurrencyException)
        //    {
        //        if (!GuestExists(id))
        //        {
        //            return NotFound();
        //        }
        //        else
        //        {
        //            throw;
        //        }
        //    }

        //    return StatusCode(HttpStatusCode.NoContent);
        //}

        // POST: api/Guests
        //[ResponseType(typeof(Guest))]
        //public IHttpActionResult PostGuest(Guest guest)
        //{
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }

        //    db.Guests.Add(guest);
        //    db.SaveChanges();

        //    return CreatedAtRoute("DefaultApi", new { id = guest.ID }, guest);
        //}

        // DELETE: api/Guests/5
        //[ResponseType(typeof(Guest))]
        //public IHttpActionResult DeleteGuest(long id)
        //{
        //    Guest guest = db.Guests.Find(id);
        //    if (guest == null)
        //    {
        //        return NotFound();
        //    }

        //    db.Guests.Remove(guest);
        //    db.SaveChanges();

        //    return Ok(guest);
        //}

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
        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();
            }
        }