Esempio n. 1
0
        public void Edit <T>(T entity) where T : Entity, new()
        {
            var newEntity = entity == null;
            var id        = -1;

            if (entity != null)
            {
                id = entity.GetId(); // @gmrukwa: to not to mix sessions
            }
            using (var context = new Context())
            {
                // @gmrukwa: getting by id to not to mix sessions
                entity = newEntity ? new T() : context.Get <T>(id);
                var vm = EditableEntityVm <T> .GetVm(entity, _dataService, context);

                var window = new AddUpdateWindow(vm)
                {
                    Owner = App.Current.MainWindow
                };
                var changesAccepted = window.ShowDialog();
                if (changesAccepted.HasValue && changesAccepted.Value)
                {
                    var dbset = context.Get <T>();
                    if (newEntity)
                    {
                        dbset.Add(entity);
                    }
                    context.SaveChanges();
                }
            }
            _refreshingService.Refresh();
        }
        /// <summary>
        /// adds a new customer
        /// </summary>
        public void AddMethod()
        {
            addWin = new AddUpdateWindow();
            Message addCust = new Message();

            addCust.isAdd = true;
            Messenger.Default.Send(addCust);
            addWin.Show();
            Messenger.Default.Register <NotificationMessage>(this, (msg) => {
                if (msg.Notification == "Close")
                {
                    addWin.Close();
                    Messenger.Default.Register <Customer>(this, finish);
                }
            });
        }
        /// <summary>
        /// modifies a customer
        /// </summary>
        public void ModMethod()
        {
            modWin = new AddUpdateWindow();
            Message modCust = new Message();

            modCust.isAdd = false;
            //modCust.id = selectedCustomer.CustomerID;
            modCust.c = selectedCustomer;
            Messenger.Default.Send(modCust);
            modWin.Show();
            Messenger.Default.Register <NotificationMessage>(this, (msg) => {
                if (msg.Notification == "Close")
                {
                    modWin.Close();
                    Messenger.Default.Register <Customer>(this, finish);
                }
            });
        }