Esempio n. 1
0
        protected override void ViewItemDetailsAsync(bool isNew = false)
        {
            ItemDetailsVM.ActiveItem = isNew || SelectedItem is null ? new InternalDocument() : Utils.CloneObject(SelectedItem);
            bool?dialogOpenResult = ItemDetailsWnd.ShowDialog();

            if (dialogOpenResult != true)
            {
                return;
            }

            using (var context = new DatabaseContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        ItemDetailsVM.ActiveItem.AddresseeId          = ItemDetailsVM.ActiveItem.Addressee.Id;
                        ItemDetailsVM.ActiveItem.AddresserId          = ItemDetailsVM.ActiveItem.Addresser.Id;
                        ItemDetailsVM.ActiveItem.Execution.ExecutorId = ItemDetailsVM.ActiveItem.Execution.Executor.Id;
                        context.InternalDocuments.Attach(ItemDetailsVM.ActiveItem);
                        context.SaveChanges();

                        if (isNew)
                        {
                            Items.Add(ItemDetailsVM.ActiveItem);
                            Logger.Debug(Properties.Resources.LoggerAddedNewIntDoc);
                        }
                        else
                        {
                            int index = Items.IndexOf(SelectedItem);

                            if (index >= 0 && Items.Count > index)
                            {
                                Items[index] = ItemDetailsVM.ActiveItem;
                            }
                            Logger.Debug(Properties.Resources.LoggerUpdatedIntDoc);
                        }
                        transaction.Commit();
                        Logger.Debug(Properties.Resources.LoggerTransactionUpdatedIntDocExecuted);
                    }
                    catch (Exception e)
                    {
                        Logger.Debug(Properties.Resources.LoggerTransactionUpdatedIntDocError);
                        Logger.Error(e.StackTrace);
                        transaction.Rollback();
                    }
                }
            }
        }
Esempio n. 2
0
        protected override void ViewItemDetailsAsync(bool isNew = false)
        {
            ItemDetailsVM.ActiveItem = isNew || SelectedItem is null ? new Employee() : Utils.CloneObject(SelectedItem);

            if (ItemDetailsWnd.ShowDialog() == true)
            {
                using (var context = new DatabaseContext())
                {
                    using (var transaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            if (isNew)
                            {
                                context.Employees.Add(ItemDetailsVM.ActiveItem);
                                context.SaveChanges();
                                Items.Add(ItemDetailsVM.ActiveItem);
                                Logger.Debug(Properties.Resources.LoggerAddedNewEmployee);
                            }
                            else
                            {
                                context.SaveChanges();
                                int index = Items.IndexOf(SelectedItem);

                                if (index >= 0 && Items.Count > index)
                                {
                                    Items[index] = ItemDetailsVM.ActiveItem;
                                }
                                Logger.Debug(Properties.Resources.LoggerUpdatedEmployee);
                            }

                            transaction.Commit();
                            Logger.Debug(Properties.Resources.LoggerTransactionUpdatedEmployeeExecuted);
                        }
                        catch (Exception e)
                        {
                            Logger.Debug(Properties.Resources.LoggerTransactionUpdatedEmployeeError);
                            Logger.Error(e.StackTrace);
                            transaction.Rollback();
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        protected override void ViewItemDetailsAsync(bool isNew = false)
        {
            ItemDetailsVM.ActiveItem = isNew || SelectedItem is null ? new Company() : Utils.CloneObject(SelectedItem);

            if (ItemDetailsWnd.ShowDialog() == true)
            {
                using (var context = new DatabaseContext())
                {
                    using (var transaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            context.Companies.Attach(ItemDetailsVM.ActiveItem);
                            context.SaveChanges();

                            if (isNew)
                            {
                                Items.Add(ItemDetailsVM.ActiveItem);
                                Logger.Debug("Виконано додання нової організації");
                            }
                            else
                            {
                                int index = Items.IndexOf(SelectedItem);

                                if (index >= 0 && Items.Count > index)
                                {
                                    Items[index] = ItemDetailsVM.ActiveItem;
                                }
                                Logger.Debug("Виконано зміну даних існуючої організації");
                            }

                            transaction.Commit();
                        }
                        catch (Exception e)
                        {
                            Logger.Debug("Транзакція по внесенню даних організації закінчилася з помилкою");
                            Logger.Error(e.StackTrace);
                            transaction.Rollback();
                        }
                    }
                }
            }
        }