public PlayerViewModelBase(Player player)
        {
            //_player = player;

            if (player != null)
            {
                _playerId = player.PlayerId;
                _firstName = player.FirstName;
                _lastName = player.LastName;
                _tvName = player.TvName;
                _hometown = player.Hometown;
                _state = player.State;
                _position = player.Position;
                _positionFull = player.PositionFull;
                _height = player.Height;
                _weight = player.Weight;
                _class = player.Class;
                _headshot = player.Headshot;
                _kiperRank = player.KiperRank;
                _mcShayRank = player.McShayRank;
                _school = player.School;
                _pick = player.Pick;
                _tradeTidbit = player.TradeTidbit;

                _tidbits = player.Tidbits;

                loadTidbits();
            }
        }
 public TeamEditViewModel(Team team)
     : base(team)
 {
     if (ConfigurationManager.AppSettings["EnableTeamTidbitPreview"].ToString().ToUpper() == "TRUE")
     {
         PreviewTidbitButtonVisibility = Visibility.Visible;
     }
 }
        public TeamViewModelBase(Team team)
        {
            _team = team;

            loadTidbits();
        }
        public static bool TradePick(Pick pick, Team newTeam)
        {
            OracleConnection cn = null;
            OracleCommand cmd = null;
            OracleDataAdapter adp = null;

            MySqlConnection cnMySql = null;
            MySqlCommand cmdMySql = null;

            DataTable tbl = null;

            string sql = "";
            bool saved = false;

            int fromTeam = 0;

            try
            {
                cn = createConnectionSDR();

                sql = "select teamid from draftorder where pick = " + pick.OverallPick;
                cmd = new OracleCommand(sql, cn);
                adp = new OracleDataAdapter(cmd);

                tbl = new DataTable();

                adp.Fill(tbl);

                if (tbl.Rows.Count > 0)
                {
                    fromTeam = int.Parse(tbl.Rows[0][0].ToString());
                }

                sql = "update draftorder set teamid = " + newTeam.ID + " where pick = " + pick.OverallPick;
                cmd = new OracleCommand(sql, cn);
                cmd.ExecuteNonQuery();

                //update the MySql database's teams table with the new total pick counts
                try
                {
                    cnMySql = createConnectionMySql();

                    sql = "select count(*) from draftorder where teamid = " + fromTeam;
                    cmd = new OracleCommand(sql, cn);
                    adp = new OracleDataAdapter(cmd);

                    tbl = new DataTable();

                    adp.Fill(tbl);

                    if (tbl.Rows.Count > 0)
                    {
                        sql = "update teams set totalpicks = '" + tbl.Rows[0][0].ToString() + "' where id = " + fromTeam;
                        cmdMySql = new MySqlCommand(sql, cnMySql);
                        cmdMySql.ExecuteNonQuery();
                    }

                    sql = "select count(*) from draftorder where teamid = " + newTeam.ID;
                    cmd = new OracleCommand(sql, cn);
                    adp = new OracleDataAdapter(cmd);

                    tbl = new DataTable();

                    adp.Fill(tbl);

                    if (tbl.Rows.Count > 0)
                    {
                        sql = "update teams set totalpicks = '" + tbl.Rows[0][0].ToString() + "' where id = " + newTeam.ID;
                        cmdMySql = new MySqlCommand(sql, cnMySql);
                        cmdMySql.ExecuteNonQuery();
                    }
                }
                finally
                {
                    cmd.Dispose();
                    adp.Dispose();
                    tbl.Dispose();
                }

                saved = true;
            }
            finally
            {
                if (cmd != null) cmd.Dispose();
                if (cn != null) cn.Close(); cn.Dispose();
            }

            return saved;
        }
        public static Team GetTeam(Int32 teamId)
        {
            MySqlConnection cn = null;
            MySqlCommand cmd = null;
            MySqlDataReader rdr = null;
            DataTable tbl = null;
            Team team = null;

            try
            {
                cn = createConnectionMySql();

                if (cn != null)
                {
                    String sql = "select * from teams where id = " + teamId;

                    cmd = new MySqlCommand(sql, cn);
                    rdr = cmd.ExecuteReader();

                    tbl = new DataTable();

                    tbl.Load(rdr);

                    rdr.Close();
                    rdr.Dispose();

                    if (tbl.Rows.Count > 0)
                    {
                        DataRow row = tbl.Rows[0];

                        team = new Team();
                        team.ID = Convert.ToInt32(row["id"]);
                        team.FullName = row["name"].ToString();
                        team.Tricode = row["tricode"].ToString();
                        team.City = row["city"].ToString();
                        team.Name = row["name"].ToString();
                        team.OverallRecord = row["overallrecord"].ToString();
                        team.ConferenceRecord = row["conferencerecord"].ToString();

                        if (ConfigurationManager.AppSettings["TeamTidbitsDatabase"].ToString().ToUpper() == "MYSQL")
                        {
                            team.Tidbits = GetTidbitsMySql(2, Convert.ToInt32(row["id"]));
                        }
                        else
                        {
                            team.Tidbits = GetTidbitsSDR(2, Convert.ToInt32(row["id"]));
                        }

                        team.LogoTga = new Uri(row["logo"].ToString());
                    }
                }
                 else
                {
                    System.Windows.MessageBox.Show("There was a problem connecting to the SDR database");
                }
            }
            finally
            {
                if (cmd != null) cmd.Dispose();
                if (tbl != null) tbl.Dispose();
                if (cn != null) cn.Close(); cn.Dispose();
            }

            return team;
        }
        public static bool SaveTeam(Team team)
        {
            MySqlConnection cn = null;
            MySqlCommand cmd = null;
            MySqlDataAdapter adp = null;
            MySqlCommandBuilder bldr = null;
            DataTable tbl = null;
            DataRow row = null;

            bool saved = false;

            try
            {
                cn = createConnectionMySql();

                String sql = "select * from teams where id = " + team.ID;

                cmd = new MySqlCommand(sql, cn);
                adp = new MySqlDataAdapter(cmd);
                bldr = new MySqlCommandBuilder(adp);
                tbl = new DataTable();

                adp.Fill(tbl);

                if (tbl.Rows.Count == 0)
                {
                    row = tbl.Rows.Add();
                }
                else
                {
                    row = tbl.Rows[0];
                }

                row["name"] = team.Name;
                row["tricode"] = team.Tricode;

                row["overallrecord"] = team.OverallRecord;
                row["conferencerecord"] = team.ConferenceRecord;

                row["lotterypctrank"] = team.LotteryPctRank;
                row["lotteryorder"] = team.LotteryOrder;

                OracleConnection cnO = createConnectionSDR();

                try
                {
                    foreach (Tidbit tidbit in team.Tidbits)
                    {
                        if (ConfigurationManager.AppSettings["TeamTidbitsDatabase"].ToString().ToUpper() == "MYSQL")
                        {
                            updateTidbitMySql(tidbit.ReferenceType, tidbit.ReferenceID, tidbit.TidbitOrder, tidbit.TidbitText, null, tidbit.Enabled);
                        }
                        else
                        {
                            UpdateTidbitSDR(tidbit.ReferenceType, tidbit.ReferenceID, tidbit.TidbitOrder, tidbit.TidbitText, null, tidbit.Enabled);
                        }
                    }
                }
                finally
                {
                    if (cnO != null) cnO.Close(); cnO.Dispose();
                }

                adp.Update(tbl.GetChanges());
                tbl.AcceptChanges();

                saved = true;
            }
            finally
            {
                if (cmd != null) cmd.Dispose();
                if (adp != null) adp.Dispose();
                if (bldr != null) bldr.Dispose();
                if (tbl != null) tbl.Dispose();
                if (cn != null) cn.Close(); cn.Dispose();
            }

            return saved;
        }
        public static ObservableCollection<Team> GetProTeams(BackgroundWorker worker = null)
        {
            ObservableCollection<Team> teams = new ObservableCollection<Team>();

            MySqlConnection cn = null;
            MySqlCommand cmd = null;
            MySqlDataReader rdr = null;
            DataTable tbl = null;

            int i = 0;

            try
            {
                cn = createConnectionMySql();

                String sql = "select * from teams where league = '" + ConfigurationManager.AppSettings["DraftType"].ToString() + "' order by city asc, name asc";

                cmd = new MySqlCommand(sql, cn);
                rdr = cmd.ExecuteReader();

                tbl = new DataTable();

                tbl.Load(rdr);

                rdr.Close();
                rdr.Dispose();

                Team team;

                foreach (DataRow row in tbl.Rows)
                {
                    team = new Team();
                    team.ID = Convert.ToInt32(row["id"]);
                    team.FullName = row["city"].ToString() + " " + row["name"].ToString();
                    team.Tricode = row["tricode"].ToString();
                    team.City = row["city"].ToString();
                    team.Name = row["name"].ToString();

                    if (ConfigurationManager.AppSettings["LoadTeamLogos"].ToString().ToUpper() == "TRUE" || ConfigurationManager.AppSettings["LoadTeamLogos"].ToString().ToUpper() == "YES")
                    {
                        team.LogoTga = new Uri(row["logo"].ToString());
                        team.SwatchTga = new Uri(row["swatch"].ToString());
                    }

                    team.OverallRecord = row["overallrecord"].ToString();
                    team.ConferenceRecord = row["conferencerecord"].ToString();
                    team.Hashtag = row["hashtag"].ToString();

                    if (row["lotterypctrank"] != DBNull.Value)
                    {
                        team.LotteryPctRank = Convert.ToInt16(row["lotterypctrank"].ToString());
                    }

                    if (row["lotteryorder"] != DBNull.Value)
                    {
                        team.LotteryOrder = Convert.ToInt16(row["lotteryorder"].ToString());
                    }

                    if (ConfigurationManager.AppSettings["DraftType"].ToString().ToUpper() == "NBA")
                    {
                        team.PickPlateTga = new Uri(ConfigurationManager.AppSettings["PickPlateDirectory"].ToString() + "\\NBA.tga");
                    }
                    else
                    {
                        team.PickPlateTga = new Uri(ConfigurationManager.AppSettings["PickPlateDirectory"].ToString() + "\\" + row["name"].ToString().ToUpper() + ".tga");
                    }

                    if (ConfigurationManager.AppSettings["LoadTeamTidbits"].ToString().ToUpper() == "TRUE" || ConfigurationManager.AppSettings["LoadTeamTidbits"].ToString().ToUpper() == "YES")
                    {
                        if (ConfigurationManager.AppSettings["TeamTidbitsDatabase"].ToString().ToUpper() == "MYSQL")
                        {
                            team.Tidbits = GetTidbitsMySql(2, Convert.ToInt32(row["id"]));
                        }
                        else
                        {
                            team.Tidbits = GetTidbitsSDR(2, Convert.ToInt32(row["id"]));
                        }
                    }

                    teams.Add(team);

                    i++;

                    int percent = Convert.ToInt32(((double)i / tbl.Rows.Count) * 100);

                    if (worker != null)
                    {
                        worker.ReportProgress(percent);
                    }
                }
            }
            finally
            {
                if (cmd != null) cmd.Dispose();
                if (tbl != null) tbl.Dispose();
                if (cn != null) cn.Close(); cn.Dispose();
            }

            return teams;
        }
        public static ObservableCollection<Team> GetSchools(BackgroundWorker worker = null)
        {
            ObservableCollection<Team> schools = new ObservableCollection<Team>();

            MySqlConnection cn = null;
            MySqlCommand cmd = null;
            MySqlDataReader rdr = null;
            DataTable tbl = null;

            int i = 0;

            try
            {
                cn = createConnectionMySql();

                String sql = "";

                switch (ConfigurationManager.AppSettings["DraftType"].ToUpper())
                {
                    case "LHN":
                    case "NFL":
                        sql = "select * from teams where league = 'NCAAF' or league = 'NCF23' order by league asc, name asc";
                        break;
                    case "NBA":
                        sql = "select * from teams where league = 'NCAAB' or league = 'OLYMB' or league = 'WNBA' or league = 'NBDL' order by league asc, name asc";
                        break;
                }

                cmd = new MySqlCommand(sql, cn);
                rdr = cmd.ExecuteReader();

                tbl = new DataTable();

                tbl.Load(rdr);

                rdr.Close();
                rdr.Dispose();

                Team school;

                foreach (DataRow row in tbl.Rows)
                {
                    school = new Team();
                    school.ID = Convert.ToInt32(row["id"]);
                    school.FullName = row["name"].ToString();
                    school.Tricode = row["tricode"].ToString();
                    school.City = row["city"].ToString();
                    school.Name = row["name"].ToString();
                    school.League = row["league"].ToString();

                    if (ConfigurationManager.AppSettings["LoadSchoolLogos"].ToString().ToUpper() == "TRUE" || ConfigurationManager.AppSettings["LoadSchoolLogos"].ToString().ToUpper() == "YES")
                    {
                        if (row["logo"].ToString() != "")
                        {
                            school.LogoTga = new Uri(row["logo"].ToString());
                        }

                        if (row["swatch"].ToString() != "")
                        {
                            //don't really need school swatches for anything
                            //school.SwatchTga = new Uri(row["swatch"].ToString());
                        }
                    }

                    school.OverallRecord = row["overallrecord"].ToString();
                    school.ConferenceRecord = row["conferencerecord"].ToString();

                    //takes too long to load all of the school's tidbits.  we're not using schoold tidbits for the draft anyway...
                    //school.Tidbits = GetTidbitsSDR(2, Convert.ToInt32(row["id"]));

                    schools.Add(school);

                    i++;

                    int percent = Convert.ToInt32(((double)i / tbl.Rows.Count) * 100);

                    if (worker != null)
                    {
                        worker.ReportProgress(percent);
                    }
                }
            }
            finally
            {
                if (cmd != null) cmd.Dispose();
                if (tbl != null) tbl.Dispose();
                if (cn != null) cn.Close(); cn.Dispose();
            }

            return schools;
        }
        private void selectTeam(Team team)
        {
            _selectedTeam = team;

            if (_selectedTeam != null)
            {
                SelectedTeamEditVM = new TeamEditViewModel(_selectedTeam);
                SelectedTeamEditVM.SetStatusBarMsg += new SetStatusBarMsgEventHandler(OnSetStatusBarMsg);
                SelectedTeamEditVM.SendCommandEvent += new SendCommandEventHandler(OnSendCommand);
            }
        }
        private void discardTeamChangesAction(object parameter)
        {
            _selectedTeam.IsDirty = false;

            AskSaveTeamOnDirty = false;

            _selectedTeam = DbConnection.GetTeam(_selectedTeam.ID);

            selectTeam(_selectedTeamTemp);
        }
        private void selectSchool(Team school)
        {
            _selectedSchool = school;

            if (_selectedSchool != null)
            {
                SelectedSchoolEditVM = new SchoolEditViewModel(_selectedSchool);
                SelectedSchoolEditVM.SetStatusBarMsg += new SetStatusBarMsgEventHandler(OnSetStatusBarMsg);
            }
        }
        private void discardSchoolChangesAction(object parameter)
        {
            _selectedSchool.IsDirty = false;

            AskSaveSchoolOnDirty = false;

            _selectedSchool = DbConnection.GetTeam(_selectedSchool.ID);

            selectSchool(_selectedSchoolTemp);
        }
 public SchoolEditViewModel(Team school)
     : base(school)
 {
 }