예제 #1
0
        private void zarzadzanieDodajButton_Click(object sender, EventArgs e)
        {
            var employeeForm = new EmployeeForm();
            if (employeeForm.ShowDialog(this) == DialogResult.OK)
            {
                AsyncTaskRunner task = new AsyncTaskRunner(
                    new Task(
                        () =>
                        {
                            Zarzadzanie_AddEmployee(employeeForm.Employee);
                        }),
                        () =>
                        {
                            MessageBox.Show("Utworzono użytkownika: " + employeeForm.Employee.Login, "Sukces", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            Zarzadzanie_UpdatePracownicyListBox();
                        });
                task.StartInTransaction();
            }
        }
예제 #2
0
        private void Obsluga_AcceptNewOrder()
        {
            var orderDetails = Obsluga_GenerateOrderDetailsFromGridView(obslugaDataGridView.Rows);
            Order newOrder = null;
            try
            {

                AsyncTaskRunner task = new AsyncTaskRunner(
                    new Task(
                        () =>
                        {
                            foreach (var orderDetail in orderDetails)
                            {
                                orderDetail.Product.OnStock -= orderDetail.Quantity;
                            }
                            var employee = UnitOfWork.EmployeeRepository.GetEmployeeById(AptekaGlobals.ActiveEmployeeId);
                            var pharmacy = employee.Pharmacy;// UnitOfWork.PharmacyRepository.GetPharmacyById(AptekaGlobals.ActivePharmacyId);

                            newOrder = new Order(orderDetails)
                                {
                                    Date = DateTime.Now,
                                    Employee = employee,
                                    Pharmacy = pharmacy
                                };
                            UnitOfWork.OrderRepository.Create(newOrder);
                            UnitOfWork.SaveChanges();
                             }),
                        () =>
                        {
                            MessageBox.Show("Zrealizowano zamówienie na kwotę: " + String.Format("{0:N2}", newOrder.CalculatePrice() + " zł"), "Sukces", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            OrderAcceptedEvent.Invoke(this, null);
                            Obsluga_ResetOrder();
                        }
                    );
                task.StartInTransaction();

            }
            catch (Exception)
            {
                MessageBox.Show("Błąd - nie udało się zrealizować zamówienia");
                throw;
            }
        }
예제 #3
0
        private void zarzadzaniePracownicyListBox_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            ListViewHitTestInfo info = zarzadzaniePracownicyListBox.HitTest(e.X, e.Y);
            ListViewItem item = info.Item;

            if (item != null)
            {
                var employee = item.Tag as Employee;
                var employeeForm = new EmployeeForm(employee);
                if (employeeForm.ShowDialog(this) == DialogResult.OK)
                {

                    AsyncTaskRunner task = new AsyncTaskRunner(
                        new Task(
                            () =>
                            {
                                Zarzadzanie_UpdateEmployee(employee);
                            }),
                            () =>
                            {
                                MessageBox.Show("Zaktualizowano dane pracownika: " + employee.Login, "Sukces",
                                                MessageBoxButtons.OK, MessageBoxIcon.Information);

                                Zarzadzanie_UpdatePracownicyListBox();
                            });
                    task.StartInTransaction();
                }

            }
        }
예제 #4
0
        private void Zarzadzanie_StanMagazynu_AddNewProduct(Medicine medicine)
        {
            try
            {
                Product newProduct = null;
                AsyncTaskRunner task = new AsyncTaskRunner(
                    new Task(
                        () =>
                        {
                            var activePharmacy =
                                UnitOfWork.PharmacyRepository.GetPharmacyById(AptekaGlobals.ActivePharmacyId);

                            newProduct = new Product()
                                {
                                    Pharmacy = activePharmacy,
                                    Medicine = medicine,
                                    OnStock = 1,
                                    Price = 10.00
                                };
                            activePharmacy.Products.Add(newProduct);
                            UnitOfWork.SaveChanges();
                        }),
                        () =>
                        {
                            Zarzadzanie_StanMagazynu_AddRow(newProduct);
                        });
                task.StartInTransaction();
            }
            catch (Exception xcp)
            {
                MessageBox.Show(xcp.Message);
            }
        }
예제 #5
0
        private void Zarzadzanie_RemoveSelectedProducts()
        {
            List<Product> productsToDelete = new List<Product>();

            foreach (DataGridViewCell selectedCell in zarzadzanieStanMagazynuDataGridView.SelectedCells)
            {
                var row = zarzadzanieStanMagazynuDataGridView.Rows[selectedCell.RowIndex];
                var product = row.Tag as Product;
                productsToDelete.Add(product);
            }
            try
            {
                AsyncTaskRunner task = new AsyncTaskRunner(
                    new Task(
                        () =>
                        {
                            foreach (var product in productsToDelete)
                            {

                                UnitOfWork.ProductRepository.Delete(product);
                            }
                            UnitOfWork.SaveChanges();
                        }),
                        () =>
                        {
                            foreach (DataGridViewCell selectedCell in zarzadzanieStanMagazynuDataGridView.SelectedCells)
                            {
                                zarzadzanieStanMagazynuDataGridView.Rows.RemoveAt(selectedCell.RowIndex);
                            }
                        });
                task.StartInTransaction();

            }
            catch (Exception xcp)
            {
                Zarzadzanie_UpdateStanMagazynuGrid();
                MessageBox.Show(xcp.Message);
            }
        }
예제 #6
0
        private void zarzadzanieStanMagazynuDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            var row = zarzadzanieStanMagazynuDataGridView.Rows[e.RowIndex];
            var column = zarzadzanieStanMagazynuDataGridView.Columns[e.ColumnIndex];
            var cell = row.Cells[e.ColumnIndex];
            Product p = row.Tag as Product;

            try
            {
                AsyncTaskRunner task = new AsyncTaskRunner(
                    new Task(() =>
                        {
                            if (column.Name == "Zarzadzanie_ProductOnStockHeader")
                            {
                                var onStock = Zarzadzanie_StanMagazynu_CheckStringIsValidQuantity(cell.Value as string);
                                p.OnStock = onStock;
                            }
                            else if (column.Name == "Zarzadzanie_ProductPriceHeader")
                            {
                                var price = Zarzadzanie_StanMagazynu_CheckStringIsValidPrice(cell.Value as string);
                                p.Price = price;
                            }

                            UnitOfWork.ProductRepository.Update(p);
                            UnitOfWork.SaveChanges();
                        }), null);

                task.StartInTransaction();
            }
            catch (ArgumentException xcp)
            {
                cell.Value = "1";
                MessageBox.Show(xcp.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            catch (Exception xcp)
            {
                cell.Value = "1";
                MessageBox.Show("Podana wartość nie jest poprawną liczbą", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }