Sie sind auf Seite 1von 5

using

using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;

namespace Accounting
{
class Program
{
public enum MenuOption
{
NONE = 0,
ADD_PRODUCT = 1,
ADD_SALE = 2,
TOTAL_NUMBER_OF_SALES = 3,
TOTAL_PROFIT = 4,
EXIT = 5
}
static void Main(string[] args)
{
int usersMenuNumber = 0;
DataBase myDataBase = new DataBase();
myDataBase.DictionaryOfProducts = new Dictionary<string, Product>();
myDataBase.ListOfSales = new List<Sale>();
Welcome();
while (usersMenuNumber != (int)MenuOption.EXIT)
{
//Check to see if the user picked a valid menu option
while (usersMenuNumber < 1 || usersMenuNumber > 5)
{
usersMenuNumber = GetUsersMenuOption();
if (usersMenuNumber < 1 || usersMenuNumber > 5)
{
Console.WriteLine("Invalid menu option, please try again
.");
Console.WriteLine();
Console.WriteLine();
}
}
switch (usersMenuNumber)
{
case (int)MenuOption.ADD_PRODUCT:
GetProductsFromTheUser(myDataBase);
usersMenuNumber = 0;
Console.WriteLine();
Console.WriteLine();
break;
case (int)MenuOption.ADD_SALE:
GetSalesFromTheUser(myDataBase);
usersMenuNumber = 0;
Console.WriteLine();
Console.WriteLine();
break;
case (int)MenuOption.TOTAL_NUMBER_OF_SALES:

usersMenuNumber = 0;
Console.WriteLine("The total number of sales is:{0}",myD
ataBase.TotalNumberOfSales);
Console.WriteLine();
Console.WriteLine();
break;
case (int)MenuOption.TOTAL_PROFIT:
ShowUserTotalSalesForTheDay(myDataBase);
usersMenuNumber = 0;
Console.WriteLine();
Console.WriteLine();
break;
case (int)MenuOption.EXIT:
//all products entered and their properties
//System.IO.File.WriteAllText(@"C:\Users\Public\TestFold
er\AccountingInfo.txt", ""); //creates the file
foreach (KeyValuePair<string,Product> product in myDataB
ase.DictionaryOfProducts)
{
using (System.IO.StreamWriter file = new System.IO.S
treamWriter(@"C:\Users\Public\TestFolder\AccountingInfo", true))
{
file.WriteLine(product.Value.ProductID);
file.WriteLine(product.Value.Name);
file.WriteLine(product.Value.Description);
file.WriteLine("${0}",product.Value.Cost.ToStrin
g());
file.WriteLine();
}
}
//list of all sales entered and their properties
foreach (Sale sale in myDataBase.ListOfSales)
{
using (System.IO.StreamWriter file = new System.IO.S
treamWriter(@"C:\Users\Public\TestFolder\AccountingInfo", true))
{
file.WriteLine("SaleID:{0}",sale.SaleID);
file.WriteLine("${0}",sale.totalSalePrice);
}
}
//total number of sales
using (System.IO.StreamWriter file = new System.IO.Strea
mWriter(@"C:\Users\Public\TestFolder\AccountingInfo",true))
{
file.WriteLine("The total number of transactions: {0
}", myDataBase.TotalNumberOfSales);
}
//total sale prices
Decimal totalRevenue = 0;
using (System.IO.StreamWriter file = new System.IO.Strea
mWriter(@"C:\Users\Public\TestFolder\AccountingInfo", true))
{
foreach (Sale sale in myDataBase.ListOfSales)
{
totalRevenue += sale.totalSalePrice;
}
file.WriteLine("Total revenue: ${0}", totalRevenue);
}

//average sale price


using (System.IO.StreamWriter file = new System.IO.Strea
mWriter(@"C:\Users\Public\TestFolder\AccountingInfo", true))
{
Decimal averageRevenue =(totalRevenue / myDataBase.T
otalNumberOfSales);
file.WriteLine("Average sale price was ${0}", averag
eRevenue);
}
break;
}
}
}
private static void ShowUserTotalSalesForTheDay(DataBase myDataBase)
{
Decimal totalSales = 0;
foreach (Sale sale in myDataBase.ListOfSales)
{
totalSales += sale.totalSalePrice;
}
Console.WriteLine("The total profit for todays sales was ${0}", tota
lSales);
}
private static void GetSalesFromTheUser(DataBase myDataBase)
{
Sale newSale = new Sale();
newSale.listOfProducts = new List<Product>();
Console.Write("Enter SaleID: ");
newSale.SaleID = Console.ReadLine();
bool foundAMatch = false;
bool addAnotherProduct = true;
while (foundAMatch == false || addAnotherProduct == true)
{
Console.Write("Enter ProductID: ");
string testProductID = Console.ReadLine();
if (myDataBase.DictionaryOfProducts.ContainsKey(testProductID))
{
newSale.listOfProducts.Add(myDataBase.DictionaryOfProducts[t
estProductID]);
newSale.totalSalePrice += myDataBase.DictionaryOfProducts[te
stProductID].Cost;
foundAMatch = true;
}
if (foundAMatch == false)
{
Console.WriteLine("Didn't find that ProductID in the databas
e, please enter a valid ProductID.");
Console.Write("Would you like to cancel this sale? (Y/N): ")
;
if (Console.ReadLine() == "Y" || Console.ReadLine() == "y")
foundAMatch = true;
}
Console.Write("Would you like to enter another ProductID? (Y/N):
");

string addAnotherString
if (addAnotherString ==
addAnotherProduct =
else
{
addAnotherProduct =
}

= Console.ReadLine();
"Y" || addAnotherString == "y")
true;
false;

}
myDataBase.ListOfSales.Add(newSale);
myDataBase.TotalNumberOfSales++;
Console.WriteLine("The total cost of that sale was ${0}",newSale
.totalSalePrice);
}
private static void GetProductsFromTheUser(DataBase myDataBase)
{
Product newProduct = new Product();
bool validID = false;
while (!validID)
{
Console.Write("Enter Product ID: ");
string test = Console.ReadLine();
if(myDataBase.DictionaryOfProducts.ContainsKey(test))
Console.WriteLine("ProductID already in use, please choose a
nother.");
else
{
validID = true;
newProduct.ProductID = test;
}
}
Console.Write("Enter name: ");
newProduct.Name = Console.ReadLine();
Console.Write("Enter description: ");
newProduct.Description = Console.ReadLine();
bool validCost = false;
while (validCost == false)
{
Console.Write("Enter the cost: ");
Decimal costParse = 0;
if (Decimal.TryParse(Console.ReadLine(), out costParse))
{
newProduct.Cost = costParse;
validCost = true;
}
else
Console.WriteLine("Invalid Cost, please enter a number");
}
myDataBase.DictionaryOfProducts.Add(newProduct.ProductID, newProduct
);
}
private static void Welcome()
{

Console.WriteLine("*************************************************
****");
Console.WriteLine("
Welcome");
Console.WriteLine("*************************************************
****");
}
public static int GetUsersMenuOption()
{
int usersMenuNumber = 0;
bool vaildMenuOption = false;
DisplayMenu();
while (vaildMenuOption == false)
{
Console.Write("Option: ");
vaildMenuOption = int.TryParse(Console.ReadLine(), out usersMenu
Number);
if (vaildMenuOption == true)
{
return usersMenuNumber;
}
else
Console.WriteLine("Invaild Menu Option, please enter a numbe
r");
}
return usersMenuNumber;
}
public static void DisplayMenu()
{
Console.WriteLine("+---------------------+");
Console.WriteLine("
MENU");
Console.WriteLine("+---------------------+");
Console.WriteLine(" 1) Add a product");
Console.WriteLine(" 2) Add a sale");
Console.WriteLine(" 3) Number of sales");
Console.WriteLine(" 4) List total profit");
Console.WriteLine(" 5) Exit");
Console.WriteLine("+=====================+");
}
}
}

Das könnte Ihnen auch gefallen