Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
4f3f1bd
snack index
CTH-npitx Apr 13, 2026
3041c69
Update snackInvent.cs
CTH-npitx Apr 13, 2026
bf6ed5e
Update frm_snackInvent.Designer.cs
CTH-npitx Apr 13, 2026
3cfcd49
using
CTH-npitx Apr 13, 2026
f8a8ff3
Merge branch 'edit-entries' into snack_index
CTH-npitx Apr 13, 2026
4547812
add in index
CTH-npitx Apr 13, 2026
b32890d
write csv
CTH-npitx Apr 13, 2026
9bb557c
read csv
CTH-npitx Apr 13, 2026
3e1c2b7
add index to csv
CTH-npitx Apr 13, 2026
5f97571
Update snacks.csv
CTH-npitx Apr 13, 2026
30a4ce0
fixed
CTH-npitx Apr 13, 2026
254a9be
Update frm_snackInvent.Designer.cs
CTH-npitx Apr 13, 2026
7776a77
Merge branch 'edit-entries' into snack_index
CTH-npitx Apr 13, 2026
d295431
Add in an index for the snacks
CTH-npitx Apr 13, 2026
c8bbb26
Update Program.cs
CTH-npitx Apr 13, 2026
89adc69
Update frm_snackInvent.cs
CTH-npitx Apr 13, 2026
10afc58
Merge branch 'edit-entries' into clean-useing
CTH-npitx Apr 13, 2026
0f27394
Merge branch 'clean-usings-1' into clean-useing
CTH-npitx Apr 13, 2026
3eb06f6
Merge branch 'main' into edit-entries
CTH-npitx Apr 13, 2026
560f703
Merge branch 'edit-entries' into clean-useing
CTH-npitx Apr 13, 2026
ef60b7b
Clean Useing
CTH-npitx Apr 13, 2026
2139842
Update frm_snackInvent.resx
CTH-npitx Apr 13, 2026
86044d2
Update frm_snackInvent.Designer.cs
CTH-npitx Apr 13, 2026
8faa2db
Update snacks.csv
CTH-npitx Apr 13, 2026
a686f13
Merge branch 'edit-entries' of https://github.com/NPITX-programs/Snac…
CTH-npitx Apr 13, 2026
254fd52
Merge branch 'unknown-changes' into edit-entries
CTH-npitx Apr 15, 2026
c39e14c
remove incorrect entry
CTH-npitx Apr 15, 2026
5047af9
worked
CTH-npitx Apr 15, 2026
49b3eb9
show exception
CTH-npitx Apr 15, 2026
e42a8dd
Merge branch 'edit-entries' into error
CTH-npitx Apr 15, 2026
9705cf5
wrong order
CTH-npitx Apr 15, 2026
f98f36b
Show Exception
CTH-npitx Apr 15, 2026
49cc2fd
Merge branch 'edit-entries' into read-error-test
CTH-npitx Apr 15, 2026
d738c81
incorrect index
CTH-npitx Apr 15, 2026
800d63c
Merge branch 'edit-entries' into test-different-invalids
CTH-npitx Apr 15, 2026
52c34cc
test save
CTH-npitx Apr 15, 2026
9c6ec23
correct index, invalid price
CTH-npitx Apr 15, 2026
bf05603
valid price, invalid quantity
CTH-npitx Apr 15, 2026
0bd2ea3
oops
CTH-npitx Apr 15, 2026
01afde5
kept
CTH-npitx Apr 15, 2026
b0c6669
Merge branch 'read-error-test' into test-different-invalids
CTH-npitx Apr 15, 2026
8e05ef9
Test Different Invalid Changes
CTH-npitx Apr 15, 2026
dd608d2
File Error Tests
CTH-npitx Apr 15, 2026
5fb6019
Merge branch 'main' into edit-entries
CTH-npitx Apr 15, 2026
201459e
selection method
CTH-npitx Apr 15, 2026
880eecb
create selection method
CTH-npitx Apr 15, 2026
8a9845a
populate
CTH-npitx Apr 15, 2026
189c900
get price
CTH-npitx Apr 15, 2026
5b205ba
same for quantity
CTH-npitx Apr 15, 2026
88c794d
min quantity
CTH-npitx Apr 15, 2026
6215164
use constant
CTH-npitx Apr 15, 2026
38e48ce
clear entry button
CTH-npitx Apr 15, 2026
b76fcf4
use constant
CTH-npitx Apr 15, 2026
108101f
clear entry
CTH-npitx Apr 15, 2026
09142fd
Merge branch 'edit-entries' into clear-entry
CTH-npitx Apr 15, 2026
ba8fcc2
Clear Selection and Entry
CTH-npitx Apr 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion bin/Debug/snacks.csv
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
test,0.03,1,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack-2\presetImages\2fer.jpg
test,0.05,2,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\2fer.jpg,0
test,0.07,1,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\airheads.jpg,1
Test,0.06,9,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\2fer.jpg,2
test,0.05,0,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\airheads.jpg,3
2*fer,0.99,39,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\2fer.jpg,4
Airheads,0.99,16,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\airheads.jpg,5
Almond Joy,0.99,13,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\almondjoy.png,6
MilkyWay,0.07,7,H:\Students_Folder\Charlie Hatch\Semesters\Multi-Semester\App Dev\Projects\Advanced Appdev\Snack-Shack\presetImages\MilkyWay.jpg,7
1 change: 1 addition & 0 deletions constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ internal static class constants //pre-defined constants
internal const char entrySep = ','; //seperation character
internal const string preMadeErrorMsg = "I'm sorry dave, I'm afraid I can't do that"; //pre-made error message
internal const decimal minPrice = 0.05M;
internal const decimal minQuantity = 0M;
/*internal static string fileSepString() //give the seperation character as a string
{
char.ToString(fileSepChar_con);
Expand Down
30 changes: 28 additions & 2 deletions frm_snackInvent.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

67 changes: 59 additions & 8 deletions frm_snackInvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,19 @@ private void btn_add_Click(object sender, EventArgs e)
snack.price = Convert.ToDouble(nud_snackPrice.Value);
snack.amount = Convert.ToInt32(nud_snackQuantity.Value);
snack.imagepath = txt_imagePath.Text;
snack.index = Program.snacks.Count;

Program.snacks.Add(snack); //add to list

dgv_invent.Rows.Add(snack.name, snack.price, snack.amount, Image.FromFile(snack.imagepath), snack.imagepath); //add into table
dgv_invent.Rows.Add(snack.name, snack.price, snack.amount, Image.FromFile(snack.imagepath), snack.imagepath, snack.index); //add into table

toolStripStatusLabel1.Text = string.Format("Successfully added {0}", snack.name); //show name of snack added

//reset
txt_imagePath.Text = "";
txt_snackName.Text = "";
nud_snackPrice.Value = constants.minPrice;
nud_snackQuantity.Value = 0;
nud_snackQuantity.Value = constants.minQuantity;
pb_snackIcon.Image = null;
}
}
Expand All @@ -78,7 +79,7 @@ private void frm_snackInvent_FormClosing(object sender, FormClosingEventArgs e)
foreach (var snack in Program.snacks)
{
//snack name, price, quantity, imagepath
sw.WriteLine(snack.name + constants.entrySep + snack.price + constants.entrySep + snack.amount + constants.entrySep + snack.imagepath); //write in csv format
sw.WriteLine(snack.name + constants.entrySep + snack.price + constants.entrySep + snack.amount + constants.entrySep + snack.imagepath + constants.entrySep + snack.index); //write in csv format

count++; //increment count
toolStripStatusLabel1.Text = String.Format("Wrote {0} snacks to file", count); //show how many entries have been written so far
Expand All @@ -87,7 +88,7 @@ private void frm_snackInvent_FormClosing(object sender, FormClosingEventArgs e)
}
catch (Exception ex) //catch exception
{
MessageBox.Show("Error during file write", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.ToString(), "Error during file write", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void frm_snackInvent_Load(object sender, EventArgs e)
Expand All @@ -105,7 +106,7 @@ private void frm_snackInvent_Load(object sender, EventArgs e)
while(!sr.EndOfStream)
{
snackInvent snack = new snackInvent(); //make new class
//order is: snackname, price, quantity, imagepath
//order is: snackname, price, quantity, imagepath, index

string line = sr.ReadLine(); //read line
string[] arr = line.Split(constants.entrySep); //split into an array based on the csv format
Expand All @@ -115,20 +116,70 @@ private void frm_snackInvent_Load(object sender, EventArgs e)
snack.price = double.Parse(arr[1]);
snack.amount = Int32.Parse(arr[2]);
snack.imagepath = arr[3];
snack.index = int.Parse(arr[4]);

count++;
toolStripStatusLabel1.Text =
String.Format("Loaded {0} snacks from file", count); //show how many snacks loaded at this point
Program.snacks.Add(snack); //add class into list
dgv_invent.Rows.Add(snack.name, snack.price, snack.amount, Image.FromFile(snack.imagepath), snack.imagepath); //add class to table
dgv_invent.Rows.Add(snack.name, snack.price, snack.amount, Image.FromFile(snack.imagepath), snack.imagepath, snack.index); //add class to table
}
}
}
} catch (Exception ex) //catch exception
{
MessageBox.Show("Error during file read", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.ToString(), "Error during file write", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
}


private void dgv_selectEdit(object sender, DataGridViewCellEventArgs e)
{
if (dgv_invent == null)
{
return; //output nothing
} //make sure there is something selected
var row = dgv_invent.CurrentRow; //set a variable to the contents of the current row
var indText = row.Cells[5].Value.ToString(); //get the index value from what was clicked
var ind = int.Parse(indText);
var item = Program.snacks[ind];
if (item != null)
{
txt_imagePath.Text = item.imagepath;
pb_snackIcon.ImageLocation = item.imagepath;
var price = Convert.ToDecimal(item.price);
if (price >= constants.minPrice)
{
} else
{
price = constants.minPrice;
}
nud_snackPrice.Value= price;
var amount = Convert.ToDecimal(item.amount);
if(amount >= constants.minQuantity)
{

} else
{
amount = 0;
}
nud_snackQuantity.Value= amount;
} //check if it exists
btn_add.Text = "Edit Entry"; //change button text
} //populate text boxes with the content of the selected row

private void btn_clearEntry_Click(object sender, EventArgs e)
{
txt_imagePath.Text = "";
txt_snackName.Text = "";
nud_snackPrice.Value = constants.minPrice;
nud_snackQuantity.Value = constants.minQuantity;
pb_snackIcon.Image = null;
if (dgv_invent.CurrentRow != null)
{
dgv_invent.ClearSelection(); //deselect row
} //if a row is selected (which therefore means it was editing an entry), deselect all rows
}
}
}
}
3 changes: 3 additions & 0 deletions frm_snackInvent.resx
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@
<metadata name="col_iconPath.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_icon.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>156, 17</value>
</metadata>
Expand Down
3 changes: 1 addition & 2 deletions snackInvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ internal class snackInvent
internal double price; //cost of snack
internal int amount; //quantity of snack
internal string imagepath; //path of image
//internal int index;
//the index of the entry
internal int index; //the index of the entry
}
}