public Retail Create(Retail retail)
        {
            Retail retrieved = null;

            SqlConnection connection = ConnectionFactory.GetConnection ();
            SqlCommand command = new SqlCommand (QUERY_CREATE, connection);

            command.Parameters.AddWithValue ("@ItemId", retail.Item.Id);
            command.Parameters.AddWithValue ("@StoreId", retail.Store.Id);
            command.Parameters.AddWithValue ("@Price", retail.Price);
            command.Parameters.AddWithValue ("@Position", retail.Position);

            try
            {
                connection.Open ();
                int id = (int) command.ExecuteScalar ();
                retrieved = GetById (id);
            }
            finally
            {
                connection.Close ();
            }

            return retrieved;
        }
        public Retail GetById(int id)
        {
            Retail retail = new Retail ();

            SqlConnection connection = ConnectionFactory.GetConnection ();
            SqlCommand command = new SqlCommand (QUERY_BY_ID, connection);
            command.Parameters.AddWithValue ("@Id", id);

            try
            {
                connection.Open ();
                SqlDataReader reader = command.ExecuteReader ();
                while ( reader.Read () )
                {
                    retail = ReadRetail (reader);
                }
                reader.Close ();
            }
            finally
            {
                connection.Close ();
            }
            return retail;
        }
        private Retail ReadRetail(SqlDataReader reader)
        {
            Retail retail = new Retail ();
            Item item = new Item ();
            Store store = new Store ();

            item.Id = (int) reader["ItemId"];
            item.Name = reader["ItemName"].ToString ();
            item.Category = reader["Category"].ToString ();
            item.Brand = reader["Brand"].ToString ();
            item.Description = reader["Description"].ToString ();

            store.Id = (int) reader["StoreId"];
            store.Name = reader["StoreName"].ToString ();
            store.Franchise = reader["Franchise"].ToString ();
            store.Address = reader["Address"].ToString ();
            store.Longitude = (double) reader["Longitude"];
            store.Latitude = (double) reader["Latitude"];

            retail.Id = (int) reader["Id"];
            retail.Store = store;
            retail.Item = item;
            retail.Price = (decimal) reader["Price"];
            retail.Position = (int) reader["Position"];

            return retail;
        }