Example #1
0
        } //end of Retrieve()

        public object RetrieveAll(Type type)
        {
            List <CustomerProp> list   = new List <CustomerProp>();
            DBDataReader        reader = null;
            CustomerProp        props;

            try
            {
                reader = RunProcedure("usp_CustomerSelectAll");
                if (!reader.IsClosed)
                {
                    while (reader.Read())
                    {
                        props = new CustomerProp();
                        props.SetState(reader);
                        list.Add(props);
                    }
                }
                return(list);
            }
            catch (Exception e)
            {
                // log this exception
                throw;
            }
            finally
            {
                if (!reader.IsClosed)
                {
                    reader.Close();
                }
            }
        }//end of retrieve all
Example #2
0
        public void TestCreateCustomer()
        {
            CustomerProp p2 = (CustomerProp)DB.Create(p);
            CustomerProp p3 = (CustomerProp)DB.Retrieve(p2.ID);

            Assert.True(p3.Name.Trim() == p.Name.Trim());
        }
Example #3
0
        public void UpdateContact(CustomerProp CustomerProp)
        {
            // Skapar och initierar ett anslutningsobjekt.
            using (SqlConnection conn = CreateConnection())
            {
                try
                {
                    SqlCommand cmd = new SqlCommand("AppSchema.UppKund", conn);
                    cmd.CommandType = CommandType.StoredProcedure;

                    // Lägger till de paramterar den lagrade proceduren kräver. Använder här det effektiva sätttet att
                    // göra det på - något "svårare" men ASP.NET behöver inte "jobba" så mycket.
                    cmd.Parameters.Add("@KundID", SqlDbType.VarChar, 50).Value    = CustomerProp.CustomerId;
                    cmd.Parameters.Add("@Förnamn", SqlDbType.VarChar, 50).Value   = CustomerProp.Förnamn;
                    cmd.Parameters.Add("@Efternamn", SqlDbType.VarChar, 50).Value = CustomerProp.Efternamn;
                    cmd.Parameters.Add("@Ort", SqlDbType.VarChar, 50).Value       = CustomerProp.Ort;

                    // Öppnar anslutningen till databasen.
                    conn.Open();

                    // Den lagrade proceduren innehåller en UPDATE-sats och returnerar inga poster varför metoden
                    // ExecuteNonQuery används för att exekvera den lagrade proceduren.
                    cmd.ExecuteNonQuery();
                }
                catch
                {
                    // Kastar ett eget undantag om ett undantag kastas.
                    throw new ApplicationException("An error occured in the data hgdfghaccess layer.");
                }
            }
        }
Example #4
0
        public void TestUpdate()
        {
            IBaseProps temp = DB.Retrieve(2);

            p      = (CustomerProp)temp;
            p.Name = "changed";
            Assert.True(DB.Update(p));
        }
Example #5
0
        public void SetUp()
        {
            DB = new CustomerDB(dataSource);
            p  = new CustomerProp();

            p.Name    = "TEST";
            p.Address = "Test Address";
            p.City    = "REEEEEE";
            p.State   = "OR";
        }
Example #6
0
        }//end of retrieve all

        public bool Update(IBaseProps p)
        {
            int          rowsAffected = 0;
            CustomerProp props        = (CustomerProp)p;

            DBCommand command = new DBCommand();

            command.CommandText = "usp_CustomerUpdate";
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.Add("@CustomerID", SqlDbType.Int);
            command.Parameters.Add("@Name", SqlDbType.VarChar);
            command.Parameters.Add("@Address", SqlDbType.NVarChar);
            command.Parameters.Add("@City", SqlDbType.VarChar);
            command.Parameters.Add("@State", SqlDbType.Char);
            command.Parameters.Add("@ZipCode", SqlDbType.Char);
            command.Parameters.Add("@ConcurrencyID", SqlDbType.Int);
            command.Parameters["@CustomerID"].Value    = props.ID;
            command.Parameters["@Name"].Value          = props.Name;
            command.Parameters["@Address"].Value       = props.Address;
            command.Parameters["@City"].Value          = props.City;
            command.Parameters["@State"].Value         = props.State;
            command.Parameters["@ZipCode"].Value       = props.Zipcode;
            command.Parameters["@ConcurrencyID"].Value = props.ConcurrencyID;


            try
            {
                rowsAffected = RunNonQueryProcedure(command);
                if (rowsAffected == 1)
                {
                    props.ConcurrencyID++;
                    return(true);
                }
                else
                {
                    string message = "Record cannot be updated. It has been edited by another user.";
                    throw new Exception(message);
                }
            }
            catch (Exception e)
            {
                // log this exception
                throw;
            }
            finally
            {
                if (mConnection.State == ConnectionState.Open)
                {
                    mConnection.Close();
                }
            }
        } // end of Update()
Example #7
0
        public IBaseProps Create(IBaseProps p)
        {
            int          rowsAffected = 0;
            CustomerProp props        = (CustomerProp)p;

            DBCommand command = new DBCommand();

            command.CommandText = "usp_CustomerCreate";
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.Add("@CustomerID", SqlDbType.Int);
            command.Parameters.Add("@Name", SqlDbType.VarChar);
            command.Parameters.Add("@Address", SqlDbType.VarChar);
            command.Parameters.Add("@City", SqlDbType.VarChar);
            command.Parameters.Add("@State", SqlDbType.Char);
            command.Parameters.Add("@ZipCode", SqlDbType.Char);
            command.Parameters.Add("@ConcurrencyID", SqlDbType.Int);
            command.Parameters[0].Direction            = ParameterDirection.Output;
            command.Parameters["@CustomerID"].Value    = props.ID;
            command.Parameters["@Name"].Value          = props.Name;
            command.Parameters["@Address"].Value       = props.Address;
            command.Parameters["@City"].Value          = props.City;
            command.Parameters["@State"].Value         = props.State;
            command.Parameters["@ZipCode"].Value       = props.Zipcode;
            command.Parameters["@ConcurrencyID"].Value = props.ConcurrencyID;

            try
            {
                rowsAffected = RunNonQueryProcedure(command);
                if (rowsAffected == 1)
                {
                    props.ID            = (int)command.Parameters[0].Value;
                    props.ConcurrencyID = 1;
                    return(props);
                }
                else
                {
                    throw new Exception("Unable to insert record. " + props.ToString());
                }
            }
            catch (Exception e)
            {
                // log this error
                throw;
            }
            finally
            {
                if (mConnection.State == ConnectionState.Open)
                {
                    mConnection.Close();
                }
            }
        }
Example #8
0
        public void SetUp()
        {
            p = new CustomerProp();

            p.ID            = 1234;
            p.Name          = "TEST";
            p.Address       = "REEEEE";
            p.City          = "Eugene";
            p.State         = "OR";
            p.Zipcode       = "97402";
            p.ConcurrencyID = 1;

            p1 = new CustomerProp();
        }
Example #9
0
        public void ContactFormView_InsertItem(CustomerProp CustomerProp)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ServiceCustomer.SaveContact(CustomerProp);
                    Message = String.Format("Ny kontakt lades till i databasen.");

                    Response.Redirect(Request.RawUrl);
                }
                catch (Exception)
                {
                    ModelState.AddModelError(String.Empty, "Ett oväntat fel inträffade då kunduppgiften skulle läggas till.");
                }
            }
        }
Example #10
0
        protected override void SetUp()
        {
            mProps    = new CustomerProp();
            mOldProps = new CustomerProp();

            if (this.mConnectionString == "")
            {
                mdbReadable  = new CustomerDB();
                mdbWriteable = new CustomerDB();
            }

            else
            {
                mdbReadable  = new CustomerDB(this.mConnectionString);
                mdbWriteable = new CustomerDB(this.mConnectionString);
            }
        }
Example #11
0
        public IBaseProps Retrieve(Object key)
        {
            DBDataReader data    = null;
            CustomerProp props   = new CustomerProp();
            DBCommand    command = new DBCommand();

            command.CommandText = "usp_CustomersSelect";
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.Add("@CustomerID", SqlDbType.Int);
            command.Parameters["@CustomerID"].Value = (Int32)key;

            try
            {
                data = RunProcedure(command);
                if (!data.IsClosed)
                {
                    if (data.Read())
                    {
                        props.SetState(data);
                    }
                    else
                    {
                        throw new Exception("Record does not exist in the database.");
                    }
                }
                return(props);
            }
            catch (Exception e)
            {
                // log this exception
                throw;
            }
            finally
            {
                if (data != null)
                {
                    if (!data.IsClosed)
                    {
                        data.Close();
                    }
                }
            }
        } //end of Retrieve()
Example #12
0
        public void InsertContact(CustomerProp customerProp)
        {
            // Skapar och initierar ett anslutningsobjekt.
            using (SqlConnection conn = CreateConnection())
            {
                try
                {
                    // Skapar och initierar ett SqlCommand-objekt som används till att
                    // exekveras specifierad lagrad procedur.
                    SqlCommand cmd = new SqlCommand("AppSchema.NyKund", conn);
                    cmd.CommandType = CommandType.StoredProcedure;

                    // Lägger till de paramterar den lagrade proceduren kräver. Använder här det effektiva sätttet att
                    // göra det på - något "svårare" men ASP.NET behöver inte "jobba" så mycket.
                    cmd.Parameters.Add("@Förnamn", SqlDbType.VarChar, 50).Value   = customerProp.Förnamn;
                    cmd.Parameters.Add("@Efternamn", SqlDbType.VarChar, 50).Value = customerProp.Efternamn;
                    cmd.Parameters.Add("@Ort", SqlDbType.VarChar, 50).Value       = customerProp.Ort;

                    // Den här parametern är lite speciell. Den skickar inte något data till den lagrade proceduren,
                    // utan hämtar data från den. (Fungerar ungerfär som ref- och out-prameterar i C#.) Värdet
                    // parametern kommer att ha EFTER att den lagrade proceduren exekverats är primärnycklens värde
                    // den nya posten blivit tilldelad av databasen.
                    cmd.Parameters.Add("@KundID", SqlDbType.Int, 4).Direction = ParameterDirection.Output;

                    // Öppnar anslutningen till databasen.
                    conn.Open();

                    // Den lagrade proceduren innehåller en INSERT-sats och returnerar inga poster varför metoden
                    // ExecuteNonQuery används för att exekvera den lagrade proceduren.
                    cmd.ExecuteNonQuery();

                    // Hämtar primärnyckelns värde för den nya posten och tilldelar Customer-objektet värdet.
                    customerProp.CustomerId = (int)cmd.Parameters["@KundID"].Value;
                }
                catch
                {
                    // Kastar ett eget undantag om ett undantag kastas.
                    throw new ApplicationException("An error occured in the data access layer.");
                }
            }
        }
Example #13
0
        public bool Delete(IBaseProps p)
        {
            CustomerProp props        = (CustomerProp)p;
            int          rowsAffected = 0;

            DBCommand command = new DBCommand();

            command.CommandText = "usp_CustomerDelete";
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.Add("@CustomerID", SqlDbType.Int);
            command.Parameters.Add("@ConcurrencyID", SqlDbType.Int);
            command.Parameters["@CustomerID"].Value    = props.ID;
            command.Parameters["@ConcurrencyID"].Value = props.ConcurrencyID;

            try
            {
                rowsAffected = RunNonQueryProcedure(command);
                if (rowsAffected == 1)
                {
                    return(true);
                }
                else
                {
                    string message = "Record cannot be deleted. It has been edited by another user.";
                    throw new Exception(message);
                }
            }
            catch (Exception e)
            {
                throw new Exception("Something has gone terribly wrong");
            }
            finally
            {
                if (mConnection.State == ConnectionState.Open)
                {
                    mConnection.Close();
                }
            }
        }
        public void InsertContact(CustomerProp customerProp)
        {
            // Skapar och initierar ett anslutningsobjekt.
            using (SqlConnection conn = CreateConnection())
            {

                try
                {
                    // Skapar och initierar ett SqlCommand-objekt som används till att
                    // exekveras specifierad lagrad procedur.
                    SqlCommand cmd = new SqlCommand("AppSchema.NyKund", conn);
                    cmd.CommandType = CommandType.StoredProcedure;

                    // Lägger till de paramterar den lagrade proceduren kräver. Använder här det effektiva sätttet att
                    // göra det på - något "svårare" men ASP.NET behöver inte "jobba" så mycket.
                    cmd.Parameters.Add("@Förnamn", SqlDbType.VarChar, 50).Value = customerProp.Förnamn;
                    cmd.Parameters.Add("@Efternamn", SqlDbType.VarChar, 50).Value = customerProp.Efternamn;
                    cmd.Parameters.Add("@Ort", SqlDbType.VarChar, 50).Value = customerProp.Ort;

                    // Den här parametern är lite speciell. Den skickar inte något data till den lagrade proceduren,
                    // utan hämtar data från den. (Fungerar ungerfär som ref- och out-prameterar i C#.) Värdet
                    // parametern kommer att ha EFTER att den lagrade proceduren exekverats är primärnycklens värde
                    // den nya posten blivit tilldelad av databasen.
                    cmd.Parameters.Add("@KundID", SqlDbType.Int, 4).Direction = ParameterDirection.Output;

                    // Öppnar anslutningen till databasen.
                    conn.Open();

                    // Den lagrade proceduren innehåller en INSERT-sats och returnerar inga poster varför metoden
                    // ExecuteNonQuery används för att exekvera den lagrade proceduren.
                    cmd.ExecuteNonQuery();

                    // Hämtar primärnyckelns värde för den nya posten och tilldelar Customer-objektet värdet.
                    customerProp.CustomerId = (int)cmd.Parameters["@KundID"].Value;
                }
                catch
                {
                    // Kastar ett eget undantag om ett undantag kastas.
                    throw new ApplicationException("An error occured in the data access layer.");
                }
            }
        }
Example #15
0
 // *** I added these 2 so that I could create a
 // business object from a properties object
 // I added the new constructors to the base class
 public Customer(CustomerProp props)
     : base(props)
 {
 }
Example #16
0
 public Customer(CustomerProp props, string cnString)
     : base(props, cnString)
 {
 }
        public void UpdateContact(CustomerProp CustomerProp)
        {
            // Skapar och initierar ett anslutningsobjekt.
            using (SqlConnection conn = CreateConnection())
            {
                try
                {
                    SqlCommand cmd = new SqlCommand("AppSchema.UppKund", conn);
                    cmd.CommandType = CommandType.StoredProcedure;

                    // Lägger till de paramterar den lagrade proceduren kräver. Använder här det effektiva sätttet att
                    // göra det på - något "svårare" men ASP.NET behöver inte "jobba" så mycket.
                    cmd.Parameters.Add("@KundID", SqlDbType.VarChar, 50).Value = CustomerProp.CustomerId;
                    cmd.Parameters.Add("@Förnamn", SqlDbType.VarChar, 50).Value = CustomerProp.Förnamn;
                    cmd.Parameters.Add("@Efternamn", SqlDbType.VarChar, 50).Value = CustomerProp.Efternamn;
                    cmd.Parameters.Add("@Ort", SqlDbType.VarChar, 50).Value = CustomerProp.Ort;

                    // Öppnar anslutningen till databasen.
                    conn.Open();

                    // Den lagrade proceduren innehåller en UPDATE-sats och returnerar inga poster varför metoden
                    // ExecuteNonQuery används för att exekvera den lagrade proceduren.
                    cmd.ExecuteNonQuery();
                }
                catch
                {
                    // Kastar ett eget undantag om ett undantag kastas.
                    throw new ApplicationException("An error occured in the data hgdfghaccess layer.");
                }
            }
        }
Example #18
0
 public void TestDelete()
 {
     p = (CustomerProp)DB.Retrieve(2);
     Assert.True(DB.Delete(p));
 }
Example #19
0
 public void TestRetrieveProduct()
 {
     p = (CustomerProp)DB.Retrieve(3);
     Assert.True(p.Name == "TEST");
 }