private void EditCateDialogClosingEventHandler(object sender, DialogClosingEventArgs eventArgs) { if (eventArgs.Parameter is bool parameter && parameter == false) { return; } var tempIndex = this.SelectedIndex; using (var db = new CAKESTOREEntities()) { var modifiedCate = this._categoryDialogViewModel.SelectedCakeType; var cate = db.CAKE_TYPE.Find(modifiedCate.TYPE_ID); var cateFromDic = CakeCategories.FirstOrDefault(c => c.Key.TYPE_ID == cate.TYPE_ID).Key; var tryUpdateKey = DictionaryHelper.UpdateKey(CakeCategories, cateFromDic, modifiedCate); if (tryUpdateKey) { cate.TYPE_NAME = modifiedCate.TYPE_NAME; db.SaveChanges(); GetCakeCategories(tempIndex); } else { MessageBox.Show("Error"); } }; MainWindowViewModel.Instance.GetAutocompleteSource(); }
public PieChartViewModel() { CultureInfo cul = CultureInfo.GetCultureInfo("vi-VN"); // try with "en-US" PointLabel = chartPoint => (chartPoint.Y != 0.0 ? chartPoint.Y.ToString("#,###", cul.NumberFormat) : "0.000") + " đồng"; using (var db = new CAKESTOREEntities()) { //Get orders list var ordersList = db.ORDERS.ToList(); //Get cate name list var cateNameList = db.CAKE_TYPE.ToList(); //Get min date in order list var minDate = ordersList.Select(o => o.DATE_CREATE.Value).Min(); //Get max date in order list var maxDate = ordersList.Select(o => o.DATE_CREATE.Value).Max(); //Check valid date range if (IsValidDateRange(minDate, maxDate)) { //Set date range this.FromDate = minDate; this.ToDate = maxDate; } }; GetSeriesCollection(); }
private void EditCakeDialogClosingEventHandler(object sender, DialogClosingEventArgs eventArgs) { if (eventArgs.Parameter is bool parameter && parameter == false) { return; } using (var db = new CAKESTOREEntities()) { var cake = db.CAKEs.Find(this.SelectedCake.CAKE_ID); var modifiedCake = this._detailDialogViewModel.SelectedCake; cake.CAKE_NAME = modifiedCake.CAKE_NAME; cake.CAKE_TYPE = this._detailDialogViewModel.CakeCategories[this._detailDialogViewModel.SelectedIndex].TYPE_ID; cake.PRICE = modifiedCake.PRICE; cake.IMAGE = modifiedCake.IMAGE; cake.REMAINING_AMOUNT = modifiedCake.REMAINING_AMOUNT; cake.DESCRIPTION = modifiedCake.DESCRIPTION; db.SaveChanges(); this.SelectedCake = cake; }; MainWindowViewModel.Instance.GetAutocompleteSource(); }
private async void ExecuteAddOrderAsync(object obj) { ORDER.CAKE_IN_ORDERS.ToList().ForEach(x => { UpdateCakeAmount(x.CAKE_ID, (int)x.NUMBER); HomeScreenViewModel.Instance.updateCakeAmount(x.CAKE_ID, x.CAKE.CAKE_TYPE, (int)x.NUMBER); x.CAKE = null; }); //TODO !!!! using (var db = new CAKESTOREEntities()) { db.ORDERS.Add(ORDER); db.SaveChanges(); }; var SuccessMessage = new SampleMessageDialogViewModel { Message = "Hóa đơn hoàn tất" }; var view = new SampleMessageDialog { DataContext = SuccessMessage }; var result = await DialogHost.Show(view, MainWindowViewModel.Instance.Identifier, ExtendedOpenedEventHandler, SuccessMessageDialogClosingHandler); ORDER = new ORDER(); ORDER.TOTAL_PRICE = 0; ORDER.DATE_CREATE = DateTime.Now; }
private void UpdateCakeAmount(int cakeid, int number) { using (var db = new CAKESTOREEntities()) { var cake = db.CAKEs.FirstOrDefault(item => item.CAKE_ID == cakeid); cake.REMAINING_AMOUNT = cake.REMAINING_AMOUNT - number;; db.SaveChanges(); } }
private void GetCakeCategories(int selectedIndex) { CakeCategories = new ObservableDictionary <CAKE_TYPE, ObservableCollection <CAKE> >(); using (var db = new CAKESTOREEntities()) { db.CAKE_TYPE.ToList().ForEach(cat => { var cakeByCateIdList = db.CAKEs.Where(cake => cake.CAKE_TYPE == cat.TYPE_ID).ToList(); CakeCategories.Add(cat, new ObservableCollection <CAKE>(cakeByCateIdList)); }); }; this.SelectedIndex = selectedIndex; }
private void AddCakeDialogClosingEventHandler(object sender, DialogClosingEventArgs eventArgs) { if (eventArgs.Parameter is bool parameter && parameter == false) { return; } using (var db = new CAKESTOREEntities()) { var newCake = this._detailDialogViewModel.SelectedCake; db.CAKEs.Add(newCake); db.SaveChanges(); }; MainWindowViewModel.Instance.GetAutocompleteSource(); }
private void GetCakeItems() { this._cakeItems = new List <CakeItem>(); using (var db = new CAKESTOREEntities()) { var cakes = db.CAKEs.ToList(); cakes.ForEach(c => { this._cakeItems.Add(new CakeItem { Id = c.CAKE_ID, Image = c.IMAGE, Name = c.CAKE_NAME }); }); }; }
private void AddCateDialogClosingEventHandler(object sender, DialogClosingEventArgs eventArgs) { if (eventArgs.Parameter is bool parameter && parameter == false) { return; } var tempIndex = this.SelectedIndex; using (var db = new CAKESTOREEntities()) { var newCate = this._categoryDialogViewModel.SelectedCakeType; db.CAKE_TYPE.Add(newCate); db.SaveChanges(); }; GetCakeCategories(tempIndex); MainWindowViewModel.Instance.GetAutocompleteSource(); }
private void DeleteCakeOfCakeInOrderClosingHandler(object sender, DialogClosingEventArgs eventArgs) { if (eventArgs.Parameter is bool parameter && parameter == false) { return; } //tính lại tổng giá var resultPrice = ORDER.TOTAL_PRICE; resultPrice = resultPrice - _selectedItem.CAKE.PRICE * _selectedItem.NUMBER; ORDER.TOTAL_PRICE = resultPrice; using (var db = new CAKESTOREEntities()) { //tính lại số bánh còn lại trong kho var cake = db.CAKEs.FirstOrDefault(item => item.CAKE_ID == _selectedItem.CAKE_ID); var remaining_amount = cake.REMAINING_AMOUNT; remaining_amount = (int)(remaining_amount + _selectedItem.NUMBER); }; ORDER.CAKE_IN_ORDERS.Remove(_selectedItem); }
private void GetChartDictinary() { this.ChartDictinary = new ObservableDictionary <string, SeriesCollection>(); using (var db = new CAKESTOREEntities()) { //Get orders list var ordersList = db.ORDERS.ToList(); //Get date list from order list var dateList = ordersList.Select(o => o.DATE_CREATE.Value).ToList(); //Get max date var maxDate = dateList.Max(); //Get min date var minDate = dateList.Min(); //Get year range (e.g 2019, 2020) var yearRange = GetYearRange(minDate, maxDate); if (yearRange.Count != 0) { //For each year yearRange.ForEach(y => { // Get order list of that year var ordersOfYearY = ordersList.Where(o => o.DATE_CREATE.Value.Year == y).ToList(); if (ordersOfYearY.Count != 0) { //A dictionary with key-value pair = <month, revenue of that month> var orderDictionary = new Dictionary <int, double>(); //Initialize month of a year range var months = Enumerable.Range(1, 12); //For each month of a year foreach (var month in months) { //Get order profit list of that month var orderProfitOfThisMonthList = ordersOfYearY.Where(o => o.DATE_CREATE.Value.Month == month).Select(o => (double)o.TOTAL_PRICE).ToList(); //Calculate sum profit of that month var profitOfThisMonth = orderProfitOfThisMonthList.Sum(); //Add to dictinary orderDictionary.Add(month, profitOfThisMonth); } //A chart values for chart (expeted 12 double value corresponding to 12 month of year) var chartValues = new ChartValues <double>(); //For each value in dictionary foreach (var item in orderDictionary.Values) { //Add value to chart values chartValues.Add(item); } //Initialize a seriessCollection corresponding to chart of that year var seriesCollection = new SeriesCollection { //Initialize a column series corresponding to revenue of each month of a year new ColumnSeries { //Year Title = y.ToString(), //Chart values for each month of that year Values = chartValues } }; //Add to chart dictionary this.ChartDictinary.Add(y.ToString(), seriesCollection); } }); } }; this.SelectedIndex = ChartDictinary.Count - 1; }
private void GetSeriesCollection() { this.SeriesCollection = new SeriesCollection(); using (var db = new CAKESTOREEntities()) { //Get orders list var ordersList = db.ORDERS.ToList(); //Get cate name list var cateNameList = db.CAKE_TYPE.ToList(); //Get orders in this date range var ordersToStatisticsList = ordersList.Where(o => IsDateInDateRange(o.DATE_CREATE.Value)).ToList(); //A dictionary with key-value pair = <cake-type, revenue of that cake-type> var orderDictionary = new Dictionary <CAKE_TYPE, double>(); //For each cate cateNameList.ForEach(cate => { //Get orders that contains cake type equals this cate var orderContainsThisCateList = ordersToStatisticsList.Where(o => o.CAKE_IN_ORDERS.ToList().Any(c => c.CAKE.CAKE_TYPE == cate.TYPE_ID)).ToList(); //Get cake in orders Collection list from above orders var cakeInOrdersCollectionList = orderContainsThisCateList.Select(o => o.CAKE_IN_ORDERS).ToList(); //Initialize cake in orders list that cotain cake equals this cate var cakeInOrdersList = new List <CAKE_IN_ORDERS>(); //Get cake in orders list from above orders cakeInOrdersCollectionList.ForEach(cakeInOrderCollection => { foreach (var cakeInOrder in cakeInOrderCollection) { if (cakeInOrder.CAKE.CAKE_TYPE == cate.TYPE_ID) { cakeInOrdersList.Add(cakeInOrder); } } }); //Initialize revenue list that cotain renenue from each cake in orders from above list var revenueList = new List <double>(); // Calculate revenue list cakeInOrdersList.ForEach(cakeInOrder => { var cakePrice = (double)cakeInOrder.CAKE.PRICE; var cakeAmount = (int)cakeInOrder.NUMBER; var proceeds = cakePrice * cakeAmount; revenueList.Add(proceeds); }); //Get total proceeds of this cate var sum = revenueList.Sum(); //Add to order dictinary orderDictionary.Add(cate, sum); }); foreach (var item in orderDictionary) { this.SeriesCollection.Add(new PieSeries { Title = item.Key.TYPE_NAME, Values = new ChartValues <double> { item.Value }, LabelPoint = PointLabel }); } }; }