private void btnProcessFile_Click(object sender, RoutedEventArgs e) { FilePath_TxtBox.Text = string.Empty; WebOrderModel webOrderModel = new WebOrderModel(); try { webOrderModel = WebOrderHelpers.DeserializeToObject <WebOrderModel>(filePath); } catch (System.Exception exception) { MessageBox.Show($"There was an error in processing your file. Make sure it is the correct type and format. {Environment.NewLine}" + $"Error message: {exception.Message}"); } WebOrder webOrderView = new WebOrder(); if (webOrderModel.Equals(new WebOrderModel())) { MessageBox.Show("There seems to be an error with your input file. Check its structure and try again."); } else { webOrderView = new WebOrder(webOrderModel); Id.Content = webOrderView.ID == 0 ? "Wrong order ID" : webOrderView.ID.ToString(); Customer.Content = string.IsNullOrEmpty(webOrderView.Customer) ? "No customer name found." : webOrderView.Customer; Date.Content = webOrderView.Date.Equals(new System.DateTime(0001, 01, 01)) ? Date.Content = "Wrong date format" : webOrderView.Date; PriceAvg.Content = webOrderView.PriceAvg.Equals("000.000") ? "No items found" : webOrderView.PriceAvg; Total.Content = webOrderView.Total.Equals("000.000") ? "No items found" : webOrderView.Total; } }
public WebOrder(WebOrderModel webOrderModel) { double total, priceAvg; ID = webOrderModel.ID; Customer = webOrderModel.Customer; Date = WebOrderHelpers.GetParsedDate(webOrderModel.Date); Amount = webOrderModel.Items.Count != 0 ? webOrderModel.Items.Sum(i => i.Quantity) : 0; total = webOrderModel.Items.Count != 0 ? webOrderModel.Items.Select(x => x.Price * x.Quantity).Sum() : 0; Total = string.Format("{0: #,000.000}", total).Trim(); priceAvg = webOrderModel.Items.Count != 0 ? webOrderModel.Items.Average(i => i.Price) : 0; PriceAvg = string.Format("{0: #,000.000}", priceAvg).Trim(); }
public void DeserializationTest1(string inputXMLPath) { WebOrderModel WOModel = WebOrderHelpers.DeserializeToObject <WebOrderModel>(inputXMLPath); if ((WOModel.ID.GetType().Equals(typeof(int))) & (WOModel.Customer.GetType().Equals(typeof(string))) & (WOModel.Date.GetType().Equals(typeof(string))) & (WOModel.AvgUnitPrice.GetType().Equals(typeof(decimal))) & (WOModel.Total.GetType().Equals(typeof(decimal)))) { Assert.Pass(); } else { Assert.Fail(); } }
public void DeserializationTest2(string inputXMLPath) { Assert.That(() => WebOrderHelpers.DeserializeToObject <WebOrderModel>(inputXMLPath), Throws.Exception); }