Classes
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Chord_Reader.NewClasses
{
class Playlist
{
public int PlaylistID { get; set; }
public string Title { get; set; }
public List<Song> Song { get; set; }
public string Username { get; set; }
public Playlist(int playlistID, string title,string username)
{
PlaylistID = playlistID;
Title = title;
Username = username;
Song = new List<Song>();
}
public Playlist()
{
Song = new List<Song>();
}
public void AddSong(Song song)
{
Song.Add(song);
}
public void MoveSongUp(int i)
{
if (i > 0)
{
Song s = Song[i];
Song[i] = Song[i - 1];
Song[i - 1] = s;
}
}
public void MoveSongDown(int i)
{
if (i > 0 && i < Song.Count)
{
Song s = Song[i];
Song[i] = Song[i + 1];
Song[i + 1] = s;
}
}
}
}
using Chord_Reader.NewClasses;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Chord_Reader.NewClasses
{
class Song
{
public int SongID { get; set; }
public string Title { get; set; }
public string Artist { get; set; }
public string Album { get; set; }
public string Genre { get; set; }
public string Text { get; set; }
public string Mode { get; set; }
public string KeyOf { get; set; }
public string Username { get; set; }
public int Trans { get; set; }
public Song(int songID, string title, string artist, string album, string genre, string text, string keyOf, string
mode, string username)
{
SongID = songID;
Title = title;
Artist = artist;
Album = album;
Genre = genre;
Text = text;
Mode = mode;
KeyOf = keyOf;
Username = username;
Trans = 0;
}
public void Transpose(bool a)
{
if (a == false)
{
Text = Text.Replace("*B*", "+A#+");
Text = Text.Replace("*A#*", "+A+");
Text = Text.Replace("*A*", "+G#+");
Text = Text.Replace("*G#*", "+G+");
Text = Text.Replace("*G*", "+F#+");
Text = Text.Replace("*F#*", "+F+");
Text = Text.Replace("*F*", "+E+");
Text = Text.Replace("*E*", "+D#+");
Text = Text.Replace("*D#*", "+D+");
Text = Text.Replace("*D*", "+C#+");
Text = Text.Replace("*C#*", "+C+");
Text = Text.Replace("*C*", "+B+");
Text = Text.Replace("+", "*");
KeyOf = KeyOf.Replace("*B*", "+A#+");
KeyOf = KeyOf.Replace("*A#*", "+A+");
KeyOf = KeyOf.Replace("*A*", "+G#+");
KeyOf = KeyOf.Replace("*G#*", "+G+");
KeyOf = KeyOf.Replace("*G*", "+F#+");
KeyOf = KeyOf.Replace("*F#*", "+F+");
KeyOf = KeyOf.Replace("*F*", "+E+");
KeyOf = KeyOf.Replace("*E*", "+D#+");
KeyOf = KeyOf.Replace("*D#*", "+D+");
KeyOf = KeyOf.Replace("*D*", "+C#+");
KeyOf = KeyOf.Replace("*C#*", "+C+");
KeyOf = KeyOf.Replace("*C*", "+B+");
KeyOf = KeyOf.Replace("*Bm*", "+A#m+");
KeyOf = KeyOf.Replace("*A#m*", "+Am+");
KeyOf = KeyOf.Replace("*Am*", "+G#m+");
KeyOf = KeyOf.Replace("*G#m*", "+Gm+");
KeyOf = KeyOf.Replace("*Gm*", "+F#m+");
KeyOf = KeyOf.Replace("*F#m*", "+Fm+");
KeyOf = KeyOf.Replace("*Fm*", "+Em+");
KeyOf = KeyOf.Replace("*Em*", "+D#m+");
KeyOf = KeyOf.Replace("*D#*", "+Dm+");
KeyOf = KeyOf.Replace("*Dm*", "+C#m+");
KeyOf = KeyOf.Replace("*C#m*", "+Cm+");
KeyOf = KeyOf.Replace("*Cm*", "+Bm+");
KeyOf = KeyOf.Replace("+", "*");
if (Trans == -5)
Trans = 6;
else
Trans--;
}
else
{
Text = Text.Replace("*B*", "+C+");
Text = Text.Replace("*A#*", "+B+");
Text = Text.Replace("*A*", "+A#+");
Text = Text.Replace("*G#*", "+A+");
Text = Text.Replace("*G*", "+G#+");
Text = Text.Replace("*F#*", "+G+");
Text = Text.Replace("*F*", "+F#+");
Text = Text.Replace("*E*", "+F+");
Text = Text.Replace("*D#*", "+E+");
Text = Text.Replace("*D*", "+D#+");
Text = Text.Replace("*C#*", "+D+");
Text = Text.Replace("*C*", "+C#+");
Text = Text.Replace("+", "*");
KeyOf = KeyOf.Replace("*B*", "+C+");
KeyOf = KeyOf.Replace("*A#*", "+B+");
KeyOf = KeyOf.Replace("*A*", "+A#+");
KeyOf = KeyOf.Replace("*G#*", "+A+");
KeyOf = KeyOf.Replace("*G*", "+G#+");
KeyOf = KeyOf.Replace("*F#*", "+G+");
KeyOf = KeyOf.Replace("*F*", "+F#+");
KeyOf = KeyOf.Replace("*E*", "+F+");
KeyOf = KeyOf.Replace("*D#*", "+E+");
KeyOf = KeyOf.Replace("*D*", "+D#+");
KeyOf = KeyOf.Replace("*C#*", "+D+");
KeyOf = KeyOf.Replace("*C*", "+C#+");
KeyOf = KeyOf.Replace("*Bm*", "+Cm+");
KeyOf = KeyOf.Replace("*A#m*", "+Bm+");
KeyOf = KeyOf.Replace("*Am*", "+A#m+");
KeyOf = KeyOf.Replace("*G#m*", "+Am+");
KeyOf = KeyOf.Replace("*Gm*", "+G#m+");
KeyOf = KeyOf.Replace("*F#m*", "+Gm+");
KeyOf = KeyOf.Replace("*Fm*", "+F#m+");
KeyOf = KeyOf.Replace("*Em*", "+Fm+");
KeyOf = KeyOf.Replace("*D#m*", "+Em+");
KeyOf = KeyOf.Replace("*Dm*", "+D#m+");
KeyOf = KeyOf.Replace("*C#m*", "+Dm+");
KeyOf = KeyOf.Replace("*Cm*", "+C#m+");
KeyOf = KeyOf.Replace("+", "*");
if (Trans == 6)
Trans = -5;
else
Trans++;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Chord_Reader.NewClasses
{
class User
{
public int UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public User(int userID, string firstName, string lastName, string username, string email, string password)
{
UserID = userID;
FirstName = firstName;
LastName = lastName;
Username = username;
Email = email;
Password = password;
}
}
}
MAIN FORM
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Data.SqlClient;
using Chord_Reader.NewClasses;
using Chord_Reader.Properties;
namespace Chord_Reader
{
public partial class Main_form : OfficeForm
{
public Main_form()
{
InitializeComponent();
}
#region SQL Declare
SqlConnection con = new SqlConnection("Data Source=.SQLEXPRESS;
AttachDbFilename=C:ProgramDataLiveChordPlayerChordLivePlayer.mdf; Connect Timeout=30; User Instance=True; integrated
security=true");
SqlDataAdapter returnVal;
DataTable dt;
SqlCommand cmd;
string query;
#endregion
#region Object Declare
List<Song> songs = new List<Song>();
List<Song> plSongs = new List<Song>();
List<Playlist> playlists = new List<Playlist>();
User CurrentUser;
#endregion
#region LOAD
private void Main_form_Load(object sender, EventArgs e)
{
SQL("SELECT * FROM Songs");
if (dt.Rows.Count != 0)
{
foreach (DataRow d in dt.Rows)
{
songs.Add(new Song(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString(), d[3].ToString(),
d[4].ToString(), d[5].ToString(), d[6].ToString(), d[7].ToString(), d[8].ToString()));
ReaderList_lbx.Items.Add(d[1].ToString());
}
}
SQL("SELECT * FROM PlSongs");
if (dt.Rows.Count != 0)
{
foreach (DataRow d in dt.Rows)
{
plSongs.Add(new Song(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString(), d[3].ToString(),
d[4].ToString(), d[5].ToString(), d[6].ToString(), d[7].ToString(), d[8].ToString()));
}
}
SQL("SELECT * FROM Playlists");
if (dt.Rows.Count != 0)
{
foreach (DataRow d in dt.Rows)
{
playlists.Add(new Playlist(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString()));
}
foreach (Playlist p in playlists)
{
SelectPlaylist_cbx.Items.Add(p.Title);
Playlist_lbx.Items.Add(p.Title);
SQL("SELECT songID FROM Songlists WHERE playlistID='" + p.PlaylistID.ToString() + "' ORDER BY
orderID");
if (dt.Rows.Count != 0)
{
foreach (DataRow d in dt.Rows)
{
foreach (Song s in plSongs)
{
if (s.SongID == Int32.Parse(d[0].ToString()))
{
p.AddSong(s);
}
}
}
}
}
}
}
#endregion
#region ACCOUNT
private void SignUp_btn_Click(object sender, EventArgs e)
{
if (SPassword_tbx.Text == RePassword_tbx.Text)
{
SQL("SELECT * FROM Users WHERE username='" + SUsername_tbx.Text + "' OR email='" + Email_tbx.Text + "'");
if (dt.Rows.Count != 0)
{
MessageBox.Show("Username od Email already exists!");
SUsername_tbx.Text = "";
Email_tbx.Text = "";
SPassword_tbx.Text = "";
RePassword_tbx.Text = "";
}
else
{
SQL("INSERT INTO Users(fName, lName, username, email, password) VALUES('" + FName_tbx.Text + "', '" +
LName_tbx.Text + "', '" + SUsername_tbx.Text + "', '" + Email_tbx.Text + "', '" + SPassword_tbx.Text + "')");
MessageBox.Show("Account Created!");
SQL("SELECT * FROM Users WHERE username='" + SUsername_tbx.Text + "' AND password='" +
SPassword_tbx.Text + "'");
CurrentUser = new User(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(),
dt.Rows[0][2].ToString(), dt.Rows[0][3].ToString(), dt.Rows[0][4].ToString(), dt.Rows[0][5].ToString());
FName_tbx.Text = "";
LName_tbx.Text = "";
SUsername_tbx.Text = "";
Email_tbx.Text = "";
SPassword_tbx.Text = "";
RePassword_tbx.Text = "";
FName_lbl.Text = " <b>" + CurrentUser.FirstName + "</b>";
LName_lbl.Text = " <b>" + CurrentUser.LastName + "</b>";
Username_lbl.Text = " <b>" + CurrentUser.Username + "</b>";
Email_lbl.Text = " <b>" + CurrentUser.Email + "</b>";
panelEx2.Visible = true;
panelEx1.Visible = false;
Writer_tab.Enabled = true;
Live_tab.Enabled = true;
AddLive_btn.Enabled = true;
SelectPlaylist_cbx.Enabled = true;
this.Text += " - " + CurrentUser.Username;
}
}
else
{
MessageBox.Show("Passwords doesn't match! Try Again!");
SPassword_tbx.Text = "";
RePassword_tbx.Text = "";
}
}
private void LogIn_btn_Click(object sender, EventArgs e)
{
SQL("SELECT * FROM Users WHERE username='" + Username_tbx.Text + "' AND password='" + Password_tbx.Text +
"'");
if (dt.Rows.Count != 0)
{
CurrentUser = new User(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(),
dt.Rows[0][2].ToString(), dt.Rows[0][3].ToString(), dt.Rows[0][4].ToString(), dt.Rows[0][5].ToString());
Username_tbx.Text = "";
Password_tbx.Text = "";
FName_lbl.Text = " <b>" + CurrentUser.FirstName + "</b>";
LName_lbl.Text = " <b>" + CurrentUser.LastName + "</b>";
Username_lbl.Text = " <b>" + CurrentUser.Username + "</b>";
Email_lbl.Text = " <b>" + CurrentUser.Email + "</b>";
panelEx2.Visible = true;
panelEx1.Visible = false;
Writer_tab.Enabled = true;
Live_tab.Enabled = true;
AddLive_btn.Enabled = true;
SelectPlaylist_cbx.Enabled = true;
this.Text += " - " + CurrentUser.Username;
}
else
{
MessageBox.Show("Username or Password is invalid!");
}
}
#endregion
#region WRITER
private void WriterSave_btn_Click(object sender, EventArgs e)
{
if (Title_tbx.Text != "" && Artist_tbx.Text != "" && Genre_cbx.Text != "" && WriterText_tbx.Text != "" &&
KeyOf_cbx.Text != "")
{
SQL("SELECT * FROM Songs WHERE title='" + Title_tbx.Text + "'");
if (dt.Rows.Count != 0)
{
MessageBox.Show("Song already exists!");
Title_tbx.Text = "";
Artist_tbx.Text = "";
Genre_cbx.Text = "";
Album_tbx.Text = "";
KeyOf_cbx.Text = "";
WriterText_tbx.Text = "";
}
else
{
SQL("INSERT INTO Songs(title, artist, album, genre, text, keyOf, mode, username) VALUES('" +
Title_tbx.Text + "', '" + Artist_tbx.Text + "', '" + Album_tbx.Text + "', '" + Genre_cbx.Text + "', '" +
WriterText_tbx.Text + "', '*" + KeyOf_cbx.Text + "*', '" + ReaderMode_swbtn.Value.ToString() + "', '" +
CurrentUser.Username + "')");
MessageBox.Show("Song Created!");
SQL("SELECT * FROM Songs WHERE title='" + Title_tbx.Text + "'");
songs.Add(new Song(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(),
dt.Rows[0][2].ToString(), dt.Rows[0][3].ToString(), dt.Rows[0][4].ToString(), dt.Rows[0][5].ToString(),
dt.Rows[0][6].ToString(), dt.Rows[0][7].ToString(), dt.Rows[0][8].ToString()));
ReaderList_lbx.Items.Add(dt.Rows[0][1].ToString());
Title_tbx.Text = "";
Artist_tbx.Text = "";
Genre_cbx.Text = "";
Album_tbx.Text = "";
KeyOf_cbx.Text = "";
WriterText_tbx.Text = "";
}
}
else
{
MessageBox.Show("Fill all fields!");
}
}
private void WriterDiscard_btn_Click(object sender, EventArgs e)
{
Title_tbx.Text = "";
Artist_tbx.Text = "";
Genre_cbx.Text = "";
Album_tbx.Text = "";
KeyOf_cbx.Text = "";
WriterText_tbx.Text = "";
MessageBox.Show("You have just discarded your song!");
}
#endregion
#region READER
private void ReaderList_lbx_SelectedIndexChanged(object sender, EventArgs e)
{
Main_pnl.Visible = true;
foreach (Song s in songs)
{
if (ReaderList_lbx.SelectedItems.Count > 0)
{
if (s.Title == ReaderList_lbx.SelectedItems[0].Text)
{
ReaderText_tbx.Text = "";
List<string> list = new List<string>(s.Text.Split(new string[] { "rn" },
StringSplitOptions.RemoveEmptyEntries));
foreach(string str in list)
{
if (str.Contains("*"))
{
ReaderText_tbx.SelectionColor = Color.Maroon;
ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 12);
}
else
{
ReaderText_tbx.SelectionColor = Color.Black;
}
ReaderText_tbx.AppendText(str.Replace("*", "") + "rn");
}
TransMinus_btn.Enabled = true;
TransPlus_btn.Enabled = true;
Trans_lbl.Enabled = true;
if (s.Trans > 0)
Trans_lbl.Text = "+" + s.Trans.ToString();
else
Trans_lbl.Text = s.Trans.ToString();
Title_lbl.Text = s.Title;
Album_lbl.Text = "Album: " + s.Album;
KeyOf_lbl.Text = s.KeyOf.Replace("*", "");
Artist_lbl.Text = s.Artist;
CreatedBy_lbl.Text = "Created by: " + s.Username;
}
}
}
}
private void AddLive_btn_Click(object sender, EventArgs e)
{
if (SelectPlaylist_cbx.Text != "")
{
foreach (Song s in songs)
{
foreach (Playlist p in playlists)
{
if (ReaderList_lbx.SelectedItems.Count > 0)
{
if (s.Title == ReaderList_lbx.SelectedItems[0].Text && p.Title == SelectPlaylist_cbx.Text)
{
if (string.Compare(p.Username, CurrentUser.Username) == -1)
{
SQL("INSERT INTO PlSongs(title, artist, album, genre, text, keyOf, mode, username)
VALUES('" + s.Title + "', '" + s.Artist + "', '" + s.Album + "', '" + s.Genre + "', '" + s.Text + "', '" + s.KeyOf + "',
'False', '" + CurrentUser.Username + "')");
SQL("SELECT * FROM Songlists WHERE songID=" + s.SongID.ToString() + " AND
playlistID='" + p.PlaylistID.ToString() + "'");
if (dt.Rows.Count != 0)
{
MessageBox.Show("Song is already in this playlist!");
}
else
{
SQL("SELECT songID FROM PlSongs WHERE title='" + s.Title + "' AND username='" +
CurrentUser.Username + "'");
p.AddSong(s);
int z = Int32.Parse(dt.Rows[0][0].ToString());
SQL("INSERT INTO Songlists(songID, playlistID, orderID) VALUES('" + z + "', '" +
p.PlaylistID + "', '" + p.Song.Count + "')");
MessageBox.Show("Song Added!");
}
}
else MessageBox.Show("You are not allowed to add song to another user's playlist!");
}
}
}
}
}
else MessageBox.Show("Select playlist to add song!");
}
private void Search_tbx_TextChanged(object sender, EventArgs e)
{
string value = Search_tbx.Text.ToLower();
ReaderList_lbx.Items.Clear();
foreach (Song s in songs)
{
ReaderList_lbx.Items.Add(s.Title);
}
foreach (ListViewItem it in ReaderList_lbx.Items)
{
if (it.Text.ToLower().StartsWith(value) == false)
{
it.Remove();
}
}
}
private void TransMinus_btn_Click(object sender, EventArgs e)
{
foreach (Song s in songs)
{
if (ReaderList_lbx.SelectedItems.Count > 0)
{
if (s.Title == ReaderList_lbx.SelectedItems[0].Text)
{
s.Transpose(false);
string temp = s.KeyOf;
KeyOf_lbl.Text = temp.Replace("*", "");
ReaderText_tbx.Text = "";
List<string> list = new List<string>(s.Text.Split(new string[] { "rn" },
StringSplitOptions.RemoveEmptyEntries));
foreach (string str in list)
{
if (str.Contains("*"))
{
ReaderText_tbx.SelectionColor = Color.Maroon;
ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 12);
}
else
{
ReaderText_tbx.SelectionColor = Color.Black;
}
ReaderText_tbx.AppendText(str.Replace("*", "") + "rn");
}
if (s.Trans > 0)
Trans_lbl.Text = "+" + s.Trans.ToString();
else
Trans_lbl.Text = s.Trans.ToString();
}
}
}
}
private void TransPlus_btn_Click(object sender, EventArgs e)
{
foreach (Song s in songs)
{
if (ReaderList_lbx.SelectedItems.Count > 0)
{
if (s.Title == ReaderList_lbx.SelectedItems[0].Text)
{
s.Transpose(true);
string temp = s.KeyOf;
KeyOf_lbl.Text = temp.Replace("*", "");
ReaderText_tbx.Text = "";
List<string> list = new List<string>(s.Text.Split(new string[] { "rn" },
StringSplitOptions.RemoveEmptyEntries));
foreach (string str in list)
{
if (str.Contains("*"))
{
ReaderText_tbx.SelectionColor = Color.Maroon;
ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 12);
}
else
{
ReaderText_tbx.SelectionColor = Color.Black;
}
ReaderText_tbx.AppendText(str.Replace("*", "") + "rn");
}
if (s.Trans > 0)
Trans_lbl.Text = "+" + s.Trans.ToString();
else
Trans_lbl.Text = s.Trans.ToString();
}
}
}
}
#endregion
#region LIVE PLAYER
private void NewPlaylist_btn_Click(object sender, EventArgs e)
{
if (PlaylistTitle_tbx.Text != "")
{
SQL("SELECT * FROM Playlists WHERE title='" + Title_tbx.Text + "'");
if (dt.Rows.Count != 0)
{
MessageBox.Show("Playlists already exists!");
}
else
{
SQL("INSERT INTO Playlists(title, username) VALUES('" + PlaylistTitle_tbx.Text + "', '" +
CurrentUser.Username + "')");
MessageBox.Show("Playlist Created!");
SQL("SELECT * FROM Playlists WHERE title='" + PlaylistTitle_tbx.Text + "'");
playlists.Add(new Playlist(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(),
dt.Rows[0][2].ToString()));
int plNum = playlists.Count();
SelectPlaylist_cbx.Items.Add(playlists[plNum - 1].Title);
Playlist_lbx.Items.Add(playlists[plNum - 1].Title);
PlaylistTitle_tbx.Text = "";
}
}
else
{
MessageBox.Show("Fill all fields!");
}
}
private void Playlist_lbx_SelectedIndexChanged(object sender, EventArgs e)
{
if (Playlist_lbx.SelectedItems.Count > 0)
{
foreach (Playlist p in playlists)
{
if (p.Title == Playlist_lbx.SelectedItems[0].Text)
{
PlaylistSong_lbx.Enabled = true;
PlaylistSong_lbx.Clear();
PlaylistTitle_lbx.Text = p.Title;
foreach (Song s in p.Song)
{
PlaylistSong_lbx.Items.Add(s.Title);
}
}
}
}
}
private void SearchPlaylist_tbx_TextChanged(object sender, EventArgs e)
{
string value = SearchPlaylist_tbx.Text.ToLower();
Playlist_lbx.Items.Clear();
foreach (Playlist p in playlists)
{
Playlist_lbx.Items.Add(p.Title);
}
foreach (ListViewItem it in Playlist_lbx.Items)
{
if (it.Text.ToLower().StartsWith(value) == false)
{
it.Remove();
}
}
}
private void Play_btn_Click(object sender, EventArgs e)
{
if (Playlist_lbx.SelectedItems.Count > 0)
{
foreach (Playlist p in playlists)
{
if (p.Title == Playlist_lbx.SelectedItems[0].Text)
{
Live f = new Live(p.PlaylistID);
f.WindowState = FormWindowState.Maximized;
f.ShowDialog();
}
}
}
else
MessageBox.Show("Chose Playlist you want to play!");
}
#endregion
private void SQL(string a)
{
con.Open();
query = a;
cmd = new SqlCommand(query, con);
returnVal = new SqlDataAdapter(query, con);
dt = new DataTable();
returnVal.Fill(dt);
con.Close();
}
}
}
Live Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Data.SqlClient;
using Chord_Reader.NewClasses;
using Chord_Reader.Properties;
namespace Chord_Reader
{
public partial class Live : OfficeForm
{
int id;
public Live(int ID)
{
InitializeComponent();
id = ID;
}
#region Object Declare
Playlist CurrPlaylist;
List<Song> songs = new List<Song>();
int x = 0;
#endregion
#region SQL Declare
SqlConnection con = new SqlConnection("Data Source=.SQLEXPRESS;
AttachDbFilename=C:ProgramDataLiveChordPlayerChordLivePlayer.mdf; Connect Timeout=30; User Instance=True; integrated
security=true");
SqlDataAdapter returnVal;
DataTable dt;
SqlCommand cmd;
string query;
#endregion
private void Live_Load(object sender, EventArgs e)
{
SQL("SELECT * FROM PlSongs");
if (dt.Rows.Count != 0)
{
foreach (DataRow d in dt.Rows)
{
songs.Add(new Song(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString(), d[3].ToString(),
d[4].ToString(), d[5].ToString(), d[6].ToString(), d[7].ToString(), d[8].ToString()));
}
}
SQL("SELECT * FROM Playlists WHERE playlistID='" + id + "'");
if (dt.Rows.Count != 0)
{
foreach (DataRow d in dt.Rows)
{
CurrPlaylist = new Playlist(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString());
}
SQL("SELECT songID FROM Songlists WHERE playlistID='" + CurrPlaylist.PlaylistID.ToString() + "' ORDER BY
orderID");
if (dt.Rows.Count != 0)
{
foreach (DataRow d in dt.Rows)
{
foreach (Song s in songs)
{
if (s.SongID == Int32.Parse(d[0].ToString()))
{
CurrPlaylist.AddSong(s);
}
}
}
}
}
List<string> list = new List<string>(CurrPlaylist.Song[x].Text.Split(new string[] { "rn" },
StringSplitOptions.RemoveEmptyEntries));
foreach (string str in list)
{
if (str.Contains("*"))
{
ReaderText_tbx.SelectionColor = Color.Maroon;
ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 14);
}
else
{
ReaderText_tbx.SelectionColor = Color.Black;
}
ReaderText_tbx.AppendText(str.Replace("*", "") + "rn");
}
Title_lbl.Text = CurrPlaylist.Song[0].Title;
Artist_lbl.Text = CurrPlaylist.Song[0].Artist;
Album_lbl.Text = CurrPlaylist.Song[0].Album;
PlaylistTitle_lbl.Text = CurrPlaylist.Title;
}
private void Live_SizeChanged(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
}
private void Next_btn_Click(object sender, EventArgs e)
{
x++;
Prev_btn.Enabled = true;
ReaderText_tbx.Text = "";
List<string> list = new List<string>(CurrPlaylist.Song[x].Text.Split(new string[] { "rn" },
StringSplitOptions.RemoveEmptyEntries));
foreach (string str in list)
{
if (str.Contains("*"))
{
ReaderText_tbx.SelectionColor = Color.Maroon;
ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 14);
}
else
{
ReaderText_tbx.SelectionColor = Color.Black;
}
ReaderText_tbx.AppendText(str.Replace("*", "") + "rn");
}
Title_lbl.Text = CurrPlaylist.Song[x].Title;
Artist_lbl.Text = CurrPlaylist.Song[x].Artist;
Album_lbl.Text = CurrPlaylist.Song[x].Album;
if (x == CurrPlaylist.Song.Count -1)
Next_btn.Enabled = false;
}
private void Prev_btn_Click(object sender, EventArgs e)
{
x--;
Next_btn.Enabled = true;
ReaderText_tbx.Text = "";
List<string> list = new List<string>(CurrPlaylist.Song[x].Text.Split(new string[] { "rn" },
StringSplitOptions.RemoveEmptyEntries));
foreach (string str in list)
{
if (str.Contains("*"))
{
ReaderText_tbx.SelectionColor = Color.Maroon;
ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 14);
}
else
{
ReaderText_tbx.SelectionColor = Color.Black;
}
ReaderText_tbx.AppendText(str.Replace("*", "") + "rn");
}
Title_lbl.Text = CurrPlaylist.Song[x].Title;
Artist_lbl.Text = CurrPlaylist.Song[x].Artist;
Album_lbl.Text = CurrPlaylist.Song[x].Album;
if (x == 0)
Prev_btn.Enabled = false;
}
private void SQL(string a)
{
con.Open();
query = a;
cmd = new SqlCommand(query, con);
returnVal = new SqlDataAdapter(query, con);
dt = new DataTable();
returnVal.Fill(dt);
con.Close();
}
}
}
MAIN FORM
LIVE FORM

FNT 2015 PDIS CodeEU - Zanimljiva informatika - 02 Djordje Pavlovic - Live_chord_player2 - Code

  • 1.
    Classes using System; using System.Collections.Generic; usingSystem.Linq; using System.Text; using System.Threading.Tasks; namespace Chord_Reader.NewClasses { class Playlist { public int PlaylistID { get; set; } public string Title { get; set; } public List<Song> Song { get; set; } public string Username { get; set; } public Playlist(int playlistID, string title,string username) { PlaylistID = playlistID; Title = title; Username = username; Song = new List<Song>(); } public Playlist() { Song = new List<Song>(); } public void AddSong(Song song) { Song.Add(song); } public void MoveSongUp(int i) { if (i > 0) { Song s = Song[i]; Song[i] = Song[i - 1]; Song[i - 1] = s; } } public void MoveSongDown(int i) { if (i > 0 && i < Song.Count) { Song s = Song[i]; Song[i] = Song[i + 1]; Song[i + 1] = s; } } } }
  • 2.
    using Chord_Reader.NewClasses; using System; usingSystem.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Chord_Reader.NewClasses { class Song { public int SongID { get; set; } public string Title { get; set; } public string Artist { get; set; } public string Album { get; set; } public string Genre { get; set; } public string Text { get; set; } public string Mode { get; set; } public string KeyOf { get; set; } public string Username { get; set; } public int Trans { get; set; } public Song(int songID, string title, string artist, string album, string genre, string text, string keyOf, string mode, string username) { SongID = songID; Title = title; Artist = artist; Album = album; Genre = genre; Text = text; Mode = mode; KeyOf = keyOf; Username = username; Trans = 0; } public void Transpose(bool a) { if (a == false) { Text = Text.Replace("*B*", "+A#+"); Text = Text.Replace("*A#*", "+A+"); Text = Text.Replace("*A*", "+G#+"); Text = Text.Replace("*G#*", "+G+"); Text = Text.Replace("*G*", "+F#+"); Text = Text.Replace("*F#*", "+F+"); Text = Text.Replace("*F*", "+E+"); Text = Text.Replace("*E*", "+D#+"); Text = Text.Replace("*D#*", "+D+"); Text = Text.Replace("*D*", "+C#+"); Text = Text.Replace("*C#*", "+C+"); Text = Text.Replace("*C*", "+B+"); Text = Text.Replace("+", "*"); KeyOf = KeyOf.Replace("*B*", "+A#+"); KeyOf = KeyOf.Replace("*A#*", "+A+"); KeyOf = KeyOf.Replace("*A*", "+G#+"); KeyOf = KeyOf.Replace("*G#*", "+G+"); KeyOf = KeyOf.Replace("*G*", "+F#+"); KeyOf = KeyOf.Replace("*F#*", "+F+"); KeyOf = KeyOf.Replace("*F*", "+E+"); KeyOf = KeyOf.Replace("*E*", "+D#+"); KeyOf = KeyOf.Replace("*D#*", "+D+"); KeyOf = KeyOf.Replace("*D*", "+C#+"); KeyOf = KeyOf.Replace("*C#*", "+C+"); KeyOf = KeyOf.Replace("*C*", "+B+"); KeyOf = KeyOf.Replace("*Bm*", "+A#m+"); KeyOf = KeyOf.Replace("*A#m*", "+Am+"); KeyOf = KeyOf.Replace("*Am*", "+G#m+"); KeyOf = KeyOf.Replace("*G#m*", "+Gm+"); KeyOf = KeyOf.Replace("*Gm*", "+F#m+"); KeyOf = KeyOf.Replace("*F#m*", "+Fm+"); KeyOf = KeyOf.Replace("*Fm*", "+Em+"); KeyOf = KeyOf.Replace("*Em*", "+D#m+"); KeyOf = KeyOf.Replace("*D#*", "+Dm+"); KeyOf = KeyOf.Replace("*Dm*", "+C#m+");
  • 3.
    KeyOf = KeyOf.Replace("*C#m*","+Cm+"); KeyOf = KeyOf.Replace("*Cm*", "+Bm+"); KeyOf = KeyOf.Replace("+", "*"); if (Trans == -5) Trans = 6; else Trans--; } else { Text = Text.Replace("*B*", "+C+"); Text = Text.Replace("*A#*", "+B+"); Text = Text.Replace("*A*", "+A#+"); Text = Text.Replace("*G#*", "+A+"); Text = Text.Replace("*G*", "+G#+"); Text = Text.Replace("*F#*", "+G+"); Text = Text.Replace("*F*", "+F#+"); Text = Text.Replace("*E*", "+F+"); Text = Text.Replace("*D#*", "+E+"); Text = Text.Replace("*D*", "+D#+"); Text = Text.Replace("*C#*", "+D+"); Text = Text.Replace("*C*", "+C#+"); Text = Text.Replace("+", "*"); KeyOf = KeyOf.Replace("*B*", "+C+"); KeyOf = KeyOf.Replace("*A#*", "+B+"); KeyOf = KeyOf.Replace("*A*", "+A#+"); KeyOf = KeyOf.Replace("*G#*", "+A+"); KeyOf = KeyOf.Replace("*G*", "+G#+"); KeyOf = KeyOf.Replace("*F#*", "+G+"); KeyOf = KeyOf.Replace("*F*", "+F#+"); KeyOf = KeyOf.Replace("*E*", "+F+"); KeyOf = KeyOf.Replace("*D#*", "+E+"); KeyOf = KeyOf.Replace("*D*", "+D#+"); KeyOf = KeyOf.Replace("*C#*", "+D+"); KeyOf = KeyOf.Replace("*C*", "+C#+"); KeyOf = KeyOf.Replace("*Bm*", "+Cm+"); KeyOf = KeyOf.Replace("*A#m*", "+Bm+"); KeyOf = KeyOf.Replace("*Am*", "+A#m+"); KeyOf = KeyOf.Replace("*G#m*", "+Am+"); KeyOf = KeyOf.Replace("*Gm*", "+G#m+"); KeyOf = KeyOf.Replace("*F#m*", "+Gm+"); KeyOf = KeyOf.Replace("*Fm*", "+F#m+"); KeyOf = KeyOf.Replace("*Em*", "+Fm+"); KeyOf = KeyOf.Replace("*D#m*", "+Em+"); KeyOf = KeyOf.Replace("*Dm*", "+D#m+"); KeyOf = KeyOf.Replace("*C#m*", "+Dm+"); KeyOf = KeyOf.Replace("*Cm*", "+C#m+"); KeyOf = KeyOf.Replace("+", "*"); if (Trans == 6) Trans = -5; else Trans++; } } } }
  • 4.
    using System; using System.Collections.Generic; usingSystem.Linq; using System.Text; using System.Threading.Tasks; namespace Chord_Reader.NewClasses { class User { public int UserID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Username { get; set; } public string Email { get; set; } public string Password { get; set; } public User(int userID, string firstName, string lastName, string username, string email, string password) { UserID = userID; FirstName = firstName; LastName = lastName; Username = username; Email = email; Password = password; } } }
  • 5.
    MAIN FORM using System; usingSystem.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DevComponents.DotNetBar; using System.Data.SqlClient; using Chord_Reader.NewClasses; using Chord_Reader.Properties; namespace Chord_Reader { public partial class Main_form : OfficeForm { public Main_form() { InitializeComponent(); } #region SQL Declare SqlConnection con = new SqlConnection("Data Source=.SQLEXPRESS; AttachDbFilename=C:ProgramDataLiveChordPlayerChordLivePlayer.mdf; Connect Timeout=30; User Instance=True; integrated security=true"); SqlDataAdapter returnVal; DataTable dt; SqlCommand cmd; string query; #endregion #region Object Declare List<Song> songs = new List<Song>(); List<Song> plSongs = new List<Song>(); List<Playlist> playlists = new List<Playlist>(); User CurrentUser; #endregion #region LOAD private void Main_form_Load(object sender, EventArgs e) { SQL("SELECT * FROM Songs"); if (dt.Rows.Count != 0) { foreach (DataRow d in dt.Rows) { songs.Add(new Song(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString(), d[3].ToString(), d[4].ToString(), d[5].ToString(), d[6].ToString(), d[7].ToString(), d[8].ToString())); ReaderList_lbx.Items.Add(d[1].ToString()); } } SQL("SELECT * FROM PlSongs"); if (dt.Rows.Count != 0) { foreach (DataRow d in dt.Rows) { plSongs.Add(new Song(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString(), d[3].ToString(), d[4].ToString(), d[5].ToString(), d[6].ToString(), d[7].ToString(), d[8].ToString())); } } SQL("SELECT * FROM Playlists"); if (dt.Rows.Count != 0) { foreach (DataRow d in dt.Rows) { playlists.Add(new Playlist(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString())); } foreach (Playlist p in playlists) { SelectPlaylist_cbx.Items.Add(p.Title); Playlist_lbx.Items.Add(p.Title); SQL("SELECT songID FROM Songlists WHERE playlistID='" + p.PlaylistID.ToString() + "' ORDER BY orderID"); if (dt.Rows.Count != 0)
  • 6.
    { foreach (DataRow din dt.Rows) { foreach (Song s in plSongs) { if (s.SongID == Int32.Parse(d[0].ToString())) { p.AddSong(s); } } } } } } } #endregion #region ACCOUNT private void SignUp_btn_Click(object sender, EventArgs e) { if (SPassword_tbx.Text == RePassword_tbx.Text) { SQL("SELECT * FROM Users WHERE username='" + SUsername_tbx.Text + "' OR email='" + Email_tbx.Text + "'"); if (dt.Rows.Count != 0) { MessageBox.Show("Username od Email already exists!"); SUsername_tbx.Text = ""; Email_tbx.Text = ""; SPassword_tbx.Text = ""; RePassword_tbx.Text = ""; } else { SQL("INSERT INTO Users(fName, lName, username, email, password) VALUES('" + FName_tbx.Text + "', '" + LName_tbx.Text + "', '" + SUsername_tbx.Text + "', '" + Email_tbx.Text + "', '" + SPassword_tbx.Text + "')"); MessageBox.Show("Account Created!"); SQL("SELECT * FROM Users WHERE username='" + SUsername_tbx.Text + "' AND password='" + SPassword_tbx.Text + "'"); CurrentUser = new User(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(), dt.Rows[0][2].ToString(), dt.Rows[0][3].ToString(), dt.Rows[0][4].ToString(), dt.Rows[0][5].ToString()); FName_tbx.Text = ""; LName_tbx.Text = ""; SUsername_tbx.Text = ""; Email_tbx.Text = ""; SPassword_tbx.Text = ""; RePassword_tbx.Text = ""; FName_lbl.Text = " <b>" + CurrentUser.FirstName + "</b>"; LName_lbl.Text = " <b>" + CurrentUser.LastName + "</b>"; Username_lbl.Text = " <b>" + CurrentUser.Username + "</b>"; Email_lbl.Text = " <b>" + CurrentUser.Email + "</b>"; panelEx2.Visible = true; panelEx1.Visible = false; Writer_tab.Enabled = true; Live_tab.Enabled = true; AddLive_btn.Enabled = true; SelectPlaylist_cbx.Enabled = true; this.Text += " - " + CurrentUser.Username; } } else { MessageBox.Show("Passwords doesn't match! Try Again!"); SPassword_tbx.Text = ""; RePassword_tbx.Text = ""; } } private void LogIn_btn_Click(object sender, EventArgs e) { SQL("SELECT * FROM Users WHERE username='" + Username_tbx.Text + "' AND password='" + Password_tbx.Text + "'"); if (dt.Rows.Count != 0) { CurrentUser = new User(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(), dt.Rows[0][2].ToString(), dt.Rows[0][3].ToString(), dt.Rows[0][4].ToString(), dt.Rows[0][5].ToString()); Username_tbx.Text = ""; Password_tbx.Text = "";
  • 7.
    FName_lbl.Text = "<b>" + CurrentUser.FirstName + "</b>"; LName_lbl.Text = " <b>" + CurrentUser.LastName + "</b>"; Username_lbl.Text = " <b>" + CurrentUser.Username + "</b>"; Email_lbl.Text = " <b>" + CurrentUser.Email + "</b>"; panelEx2.Visible = true; panelEx1.Visible = false; Writer_tab.Enabled = true; Live_tab.Enabled = true; AddLive_btn.Enabled = true; SelectPlaylist_cbx.Enabled = true; this.Text += " - " + CurrentUser.Username; } else { MessageBox.Show("Username or Password is invalid!"); } } #endregion #region WRITER private void WriterSave_btn_Click(object sender, EventArgs e) { if (Title_tbx.Text != "" && Artist_tbx.Text != "" && Genre_cbx.Text != "" && WriterText_tbx.Text != "" && KeyOf_cbx.Text != "") { SQL("SELECT * FROM Songs WHERE title='" + Title_tbx.Text + "'"); if (dt.Rows.Count != 0) { MessageBox.Show("Song already exists!"); Title_tbx.Text = ""; Artist_tbx.Text = ""; Genre_cbx.Text = ""; Album_tbx.Text = ""; KeyOf_cbx.Text = ""; WriterText_tbx.Text = ""; } else { SQL("INSERT INTO Songs(title, artist, album, genre, text, keyOf, mode, username) VALUES('" + Title_tbx.Text + "', '" + Artist_tbx.Text + "', '" + Album_tbx.Text + "', '" + Genre_cbx.Text + "', '" + WriterText_tbx.Text + "', '*" + KeyOf_cbx.Text + "*', '" + ReaderMode_swbtn.Value.ToString() + "', '" + CurrentUser.Username + "')"); MessageBox.Show("Song Created!"); SQL("SELECT * FROM Songs WHERE title='" + Title_tbx.Text + "'"); songs.Add(new Song(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(), dt.Rows[0][2].ToString(), dt.Rows[0][3].ToString(), dt.Rows[0][4].ToString(), dt.Rows[0][5].ToString(), dt.Rows[0][6].ToString(), dt.Rows[0][7].ToString(), dt.Rows[0][8].ToString())); ReaderList_lbx.Items.Add(dt.Rows[0][1].ToString()); Title_tbx.Text = ""; Artist_tbx.Text = ""; Genre_cbx.Text = ""; Album_tbx.Text = ""; KeyOf_cbx.Text = ""; WriterText_tbx.Text = ""; } } else { MessageBox.Show("Fill all fields!"); } } private void WriterDiscard_btn_Click(object sender, EventArgs e) { Title_tbx.Text = ""; Artist_tbx.Text = ""; Genre_cbx.Text = ""; Album_tbx.Text = ""; KeyOf_cbx.Text = ""; WriterText_tbx.Text = ""; MessageBox.Show("You have just discarded your song!"); } #endregion #region READER private void ReaderList_lbx_SelectedIndexChanged(object sender, EventArgs e) {
  • 8.
    Main_pnl.Visible = true; foreach(Song s in songs) { if (ReaderList_lbx.SelectedItems.Count > 0) { if (s.Title == ReaderList_lbx.SelectedItems[0].Text) { ReaderText_tbx.Text = ""; List<string> list = new List<string>(s.Text.Split(new string[] { "rn" }, StringSplitOptions.RemoveEmptyEntries)); foreach(string str in list) { if (str.Contains("*")) { ReaderText_tbx.SelectionColor = Color.Maroon; ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 12); } else { ReaderText_tbx.SelectionColor = Color.Black; } ReaderText_tbx.AppendText(str.Replace("*", "") + "rn"); } TransMinus_btn.Enabled = true; TransPlus_btn.Enabled = true; Trans_lbl.Enabled = true; if (s.Trans > 0) Trans_lbl.Text = "+" + s.Trans.ToString(); else Trans_lbl.Text = s.Trans.ToString(); Title_lbl.Text = s.Title; Album_lbl.Text = "Album: " + s.Album; KeyOf_lbl.Text = s.KeyOf.Replace("*", ""); Artist_lbl.Text = s.Artist; CreatedBy_lbl.Text = "Created by: " + s.Username; } } } } private void AddLive_btn_Click(object sender, EventArgs e) { if (SelectPlaylist_cbx.Text != "") { foreach (Song s in songs) { foreach (Playlist p in playlists) { if (ReaderList_lbx.SelectedItems.Count > 0) { if (s.Title == ReaderList_lbx.SelectedItems[0].Text && p.Title == SelectPlaylist_cbx.Text) { if (string.Compare(p.Username, CurrentUser.Username) == -1) { SQL("INSERT INTO PlSongs(title, artist, album, genre, text, keyOf, mode, username) VALUES('" + s.Title + "', '" + s.Artist + "', '" + s.Album + "', '" + s.Genre + "', '" + s.Text + "', '" + s.KeyOf + "', 'False', '" + CurrentUser.Username + "')"); SQL("SELECT * FROM Songlists WHERE songID=" + s.SongID.ToString() + " AND playlistID='" + p.PlaylistID.ToString() + "'"); if (dt.Rows.Count != 0) { MessageBox.Show("Song is already in this playlist!"); } else { SQL("SELECT songID FROM PlSongs WHERE title='" + s.Title + "' AND username='" + CurrentUser.Username + "'"); p.AddSong(s); int z = Int32.Parse(dt.Rows[0][0].ToString()); SQL("INSERT INTO Songlists(songID, playlistID, orderID) VALUES('" + z + "', '" + p.PlaylistID + "', '" + p.Song.Count + "')"); MessageBox.Show("Song Added!"); } } else MessageBox.Show("You are not allowed to add song to another user's playlist!"); }
  • 9.
    } } } } else MessageBox.Show("Select playlistto add song!"); } private void Search_tbx_TextChanged(object sender, EventArgs e) { string value = Search_tbx.Text.ToLower(); ReaderList_lbx.Items.Clear(); foreach (Song s in songs) { ReaderList_lbx.Items.Add(s.Title); } foreach (ListViewItem it in ReaderList_lbx.Items) { if (it.Text.ToLower().StartsWith(value) == false) { it.Remove(); } } } private void TransMinus_btn_Click(object sender, EventArgs e) { foreach (Song s in songs) { if (ReaderList_lbx.SelectedItems.Count > 0) { if (s.Title == ReaderList_lbx.SelectedItems[0].Text) { s.Transpose(false); string temp = s.KeyOf; KeyOf_lbl.Text = temp.Replace("*", ""); ReaderText_tbx.Text = ""; List<string> list = new List<string>(s.Text.Split(new string[] { "rn" }, StringSplitOptions.RemoveEmptyEntries)); foreach (string str in list) { if (str.Contains("*")) { ReaderText_tbx.SelectionColor = Color.Maroon; ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 12); } else { ReaderText_tbx.SelectionColor = Color.Black; } ReaderText_tbx.AppendText(str.Replace("*", "") + "rn"); } if (s.Trans > 0) Trans_lbl.Text = "+" + s.Trans.ToString(); else Trans_lbl.Text = s.Trans.ToString(); } } } } private void TransPlus_btn_Click(object sender, EventArgs e) { foreach (Song s in songs) { if (ReaderList_lbx.SelectedItems.Count > 0) { if (s.Title == ReaderList_lbx.SelectedItems[0].Text) { s.Transpose(true); string temp = s.KeyOf; KeyOf_lbl.Text = temp.Replace("*", ""); ReaderText_tbx.Text = ""; List<string> list = new List<string>(s.Text.Split(new string[] { "rn" }, StringSplitOptions.RemoveEmptyEntries)); foreach (string str in list) { if (str.Contains("*"))
  • 10.
    { ReaderText_tbx.SelectionColor = Color.Maroon; ReaderText_tbx.SelectionFont= new System.Drawing.Font("Arial Rounded MT Bold", 12); } else { ReaderText_tbx.SelectionColor = Color.Black; } ReaderText_tbx.AppendText(str.Replace("*", "") + "rn"); } if (s.Trans > 0) Trans_lbl.Text = "+" + s.Trans.ToString(); else Trans_lbl.Text = s.Trans.ToString(); } } } } #endregion #region LIVE PLAYER private void NewPlaylist_btn_Click(object sender, EventArgs e) { if (PlaylistTitle_tbx.Text != "") { SQL("SELECT * FROM Playlists WHERE title='" + Title_tbx.Text + "'"); if (dt.Rows.Count != 0) { MessageBox.Show("Playlists already exists!"); } else { SQL("INSERT INTO Playlists(title, username) VALUES('" + PlaylistTitle_tbx.Text + "', '" + CurrentUser.Username + "')"); MessageBox.Show("Playlist Created!"); SQL("SELECT * FROM Playlists WHERE title='" + PlaylistTitle_tbx.Text + "'"); playlists.Add(new Playlist(Int32.Parse(dt.Rows[0][0].ToString()), dt.Rows[0][1].ToString(), dt.Rows[0][2].ToString())); int plNum = playlists.Count(); SelectPlaylist_cbx.Items.Add(playlists[plNum - 1].Title); Playlist_lbx.Items.Add(playlists[plNum - 1].Title); PlaylistTitle_tbx.Text = ""; } } else { MessageBox.Show("Fill all fields!"); } } private void Playlist_lbx_SelectedIndexChanged(object sender, EventArgs e) { if (Playlist_lbx.SelectedItems.Count > 0) { foreach (Playlist p in playlists) { if (p.Title == Playlist_lbx.SelectedItems[0].Text) { PlaylistSong_lbx.Enabled = true; PlaylistSong_lbx.Clear(); PlaylistTitle_lbx.Text = p.Title; foreach (Song s in p.Song) { PlaylistSong_lbx.Items.Add(s.Title); } } } } } private void SearchPlaylist_tbx_TextChanged(object sender, EventArgs e) { string value = SearchPlaylist_tbx.Text.ToLower(); Playlist_lbx.Items.Clear(); foreach (Playlist p in playlists) { Playlist_lbx.Items.Add(p.Title); }
  • 11.
    foreach (ListViewItem itin Playlist_lbx.Items) { if (it.Text.ToLower().StartsWith(value) == false) { it.Remove(); } } } private void Play_btn_Click(object sender, EventArgs e) { if (Playlist_lbx.SelectedItems.Count > 0) { foreach (Playlist p in playlists) { if (p.Title == Playlist_lbx.SelectedItems[0].Text) { Live f = new Live(p.PlaylistID); f.WindowState = FormWindowState.Maximized; f.ShowDialog(); } } } else MessageBox.Show("Chose Playlist you want to play!"); } #endregion private void SQL(string a) { con.Open(); query = a; cmd = new SqlCommand(query, con); returnVal = new SqlDataAdapter(query, con); dt = new DataTable(); returnVal.Fill(dt); con.Close(); } } }
  • 12.
    Live Form using System; usingSystem.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DevComponents.DotNetBar; using System.Data.SqlClient; using Chord_Reader.NewClasses; using Chord_Reader.Properties; namespace Chord_Reader { public partial class Live : OfficeForm { int id; public Live(int ID) { InitializeComponent(); id = ID; } #region Object Declare Playlist CurrPlaylist; List<Song> songs = new List<Song>(); int x = 0; #endregion #region SQL Declare SqlConnection con = new SqlConnection("Data Source=.SQLEXPRESS; AttachDbFilename=C:ProgramDataLiveChordPlayerChordLivePlayer.mdf; Connect Timeout=30; User Instance=True; integrated security=true"); SqlDataAdapter returnVal; DataTable dt; SqlCommand cmd; string query; #endregion private void Live_Load(object sender, EventArgs e) { SQL("SELECT * FROM PlSongs"); if (dt.Rows.Count != 0) { foreach (DataRow d in dt.Rows) { songs.Add(new Song(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString(), d[3].ToString(), d[4].ToString(), d[5].ToString(), d[6].ToString(), d[7].ToString(), d[8].ToString())); } } SQL("SELECT * FROM Playlists WHERE playlistID='" + id + "'"); if (dt.Rows.Count != 0) { foreach (DataRow d in dt.Rows) { CurrPlaylist = new Playlist(Int32.Parse(d[0].ToString()), d[1].ToString(), d[2].ToString()); } SQL("SELECT songID FROM Songlists WHERE playlistID='" + CurrPlaylist.PlaylistID.ToString() + "' ORDER BY orderID"); if (dt.Rows.Count != 0) { foreach (DataRow d in dt.Rows) { foreach (Song s in songs) { if (s.SongID == Int32.Parse(d[0].ToString())) { CurrPlaylist.AddSong(s); } } } } }
  • 13.
    List<string> list =new List<string>(CurrPlaylist.Song[x].Text.Split(new string[] { "rn" }, StringSplitOptions.RemoveEmptyEntries)); foreach (string str in list) { if (str.Contains("*")) { ReaderText_tbx.SelectionColor = Color.Maroon; ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 14); } else { ReaderText_tbx.SelectionColor = Color.Black; } ReaderText_tbx.AppendText(str.Replace("*", "") + "rn"); } Title_lbl.Text = CurrPlaylist.Song[0].Title; Artist_lbl.Text = CurrPlaylist.Song[0].Artist; Album_lbl.Text = CurrPlaylist.Song[0].Album; PlaylistTitle_lbl.Text = CurrPlaylist.Title; } private void Live_SizeChanged(object sender, EventArgs e) { this.WindowState = FormWindowState.Maximized; } private void Next_btn_Click(object sender, EventArgs e) { x++; Prev_btn.Enabled = true; ReaderText_tbx.Text = ""; List<string> list = new List<string>(CurrPlaylist.Song[x].Text.Split(new string[] { "rn" }, StringSplitOptions.RemoveEmptyEntries)); foreach (string str in list) { if (str.Contains("*")) { ReaderText_tbx.SelectionColor = Color.Maroon; ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 14); } else { ReaderText_tbx.SelectionColor = Color.Black; } ReaderText_tbx.AppendText(str.Replace("*", "") + "rn"); } Title_lbl.Text = CurrPlaylist.Song[x].Title; Artist_lbl.Text = CurrPlaylist.Song[x].Artist; Album_lbl.Text = CurrPlaylist.Song[x].Album; if (x == CurrPlaylist.Song.Count -1) Next_btn.Enabled = false; } private void Prev_btn_Click(object sender, EventArgs e) { x--; Next_btn.Enabled = true; ReaderText_tbx.Text = ""; List<string> list = new List<string>(CurrPlaylist.Song[x].Text.Split(new string[] { "rn" }, StringSplitOptions.RemoveEmptyEntries)); foreach (string str in list) { if (str.Contains("*")) { ReaderText_tbx.SelectionColor = Color.Maroon; ReaderText_tbx.SelectionFont = new System.Drawing.Font("Arial Rounded MT Bold", 14); } else { ReaderText_tbx.SelectionColor = Color.Black; } ReaderText_tbx.AppendText(str.Replace("*", "") + "rn"); } Title_lbl.Text = CurrPlaylist.Song[x].Title; Artist_lbl.Text = CurrPlaylist.Song[x].Artist; Album_lbl.Text = CurrPlaylist.Song[x].Album; if (x == 0) Prev_btn.Enabled = false;
  • 14.
    } private void SQL(stringa) { con.Open(); query = a; cmd = new SqlCommand(query, con); returnVal = new SqlDataAdapter(query, con); dt = new DataTable(); returnVal.Fill(dt); con.Close(); } } }
  • 15.
  • 20.