Я создал приложение формы Windows в пространстве имен TestUI, у него есть класс клиента, экземпляр которого описан ниже:
List<Customer> cl = db.Customers.ToList();
Но Customer
указывает на автоматически сгенерированный файл класса в том же пространстве именTestUI.Customer
.Я создал новый класс DataLayerTest.Customer
, но я не знаю, как сделать исходную ссылку на этот класс.
Я попытался добавить оператор using
в начало файла, и пока я могу ссылаться на негоесли я переименую его, я не смогу получить доступ к нему вместо автоматически сгенерированного класса.
Вот код моей CustomerForm:
using TestDataModel.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace TestUI
{
public partial class CustomerForm : Form
{
public CustomerForm()
{
InitializeComponent();
}
private void ClearButton_Click(object sender, EventArgs e)
{
custListBox.ClearSelected();
}
private void AddNewCustButton_Click(object sender, EventArgs e)
{
this.Hide();
CreateCustomer cc = new CreateCustomer();
cc.ShowDialog();
}
private void CustomerForm_Load(object sender, EventArgs e)
{
Test2UEntitiesA db = new Test2UEntitiesA();
List<Customer> cl = db.Customers.ToList();
custListBox.DataSource = cl;
custListBox.DisplayMember ="CustomerName";
takeNewOrderButton.Enabled = false;
}
private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Customer customer = (Customer)custListBox.SelectedItem;
label1.Text = customer.CustomerNumber.ToString();
label2.Text = customer.CustomerName;
takeNewOrderButton.Enabled = true;
}
private void TakeNewOrderButton_Click_1(object sender, EventArgs e)
{
OrderBasketForm ob = new OrderBasketForm((Customer)custListBox.SelectedItem);
ob.Show();
this.Hide();
}
}
}
И это код для формы заказа, которыйиспользует объект клиента
using TestDataModel.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace TestUI
{
public partial class OrderBasketForm : Form
{
Customer cust;
public static OrderBasket ob;
public OrderBasketForm(Customer customer)
{
InitializeComponent();
cust = customer;
ob = new OrderBasket();
Test2UEntitiesA db = new Test2UEntitiesA();
List<Product> pl = db.Products.ToList();
label2.Text = cust.CustomerName;
discValue.Text = cust.Discount.ToString();
}
private void CancelButton_Click(object sender, EventArgs e)
{
this.Hide();
CustomerForm cf = new CustomerForm();
cf.ShowDialog();
}
private void AddButton_Click(object sender, EventArgs e)
{
int quantity;
Product product = (Product)productNameBox.SelectedItem;
quantity = (int)quantityCounter.Value;
if (quantity <= 0)
{
MessageBox.Show("No quantity has been selected", "Quantity Invalid", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
return; //No items selected
}
else
{
ob.AddProduct(product.ProductNumber, product.ProductName, product.Price, product.RecommendedRetailPrice, quantity, product.Description);
BasketItemsToListView();
}
}
public void BasketItemsToListView()
{
basketListView.Items.Clear();
numOfItems.Text = ob.NumberOfItems.ToString();
numOfProducts.Text = ob.NumberOfProducts.ToString();
totalBox.Text = string.Format("{0:C2}", ob.BasketTotal);
discTotal.Text = string.Format("{0:C2}", ob.BasketTotal);
//Using ListView Control to display basket contents
foreach (BasketItem bItem in ob.BasketItems)
{
ListViewItem item = new ListViewItem(new[]
{
bItem.ProductNumber.ToString(),
bItem.ProductName,
});
basketListView.Items.Add(item);
}
clearButton.Enabled = true;
}
private void ClearButton_Click(object sender, EventArgs e)
{
DialogResult clearResponse = MessageBox.Show("Are you sure you want to clear the basket?", "Clear Basket", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
if (clearResponse == DialogResult.Yes)
{
ClearBasket();
}
}
private void ClearBasket()
{
ob.ClearBasket();
BasketItemsToListView();
}
private void ExitButton_Click(object sender, EventArgs e)
{
this.Close();
}
private void RemoveButton_Click(object sender, EventArgs e)
{
if (basketListView.SelectedItems.Count <= 0)
return; //No items selected
ob.RemoveProduct(Int32.Parse(basketListView.SelectedItems[0].Text));
BasketItemsToListView();
removeButton.Enabled = false;
}
private void CheckOutButton_Click(object sender, EventArgs e)
{
if (ob.NumberOfItems == 0)
{
MessageBox.Show("The basket is currently empty!", "Basket Empty", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
return;
}
Test2UEntitiesA db = new Test2UEntitiesA();
List<OrderItem> itemsToAdd = new List<OrderItem>();
//create list populate with orderbasket
foreach (BasketItem item in ob.BasketItems)
{
itemsToAdd.Add(new OrderItem
{
ProductNumber = item.ProductNumber,
Quantity = item.Quantity
});
}
//create an order object - needs to match the format of database table
Order order = new Order
{
OrderDate = DateTime.Now,
CustomerNumber = cust.CustomerNumber,
CustomerDiscount = cust.Discount,
OrderStatus = 1,
OrderTotalBeforeDiscount = ob.BasketTotal,
OrderItems = itemsToAdd
};
//save changes to db
db.Orders.Add(order);
db.SaveChanges();
OrderHistoryForm ohf = new OrderHistoryForm(cust);
ohf.Show();
this.Hide();
}
}
}