Exemple #1
0
        private void Enter_Load(object sender, EventArgs e)
        {
            IRepository <Medicine> rep = new MedicinesRepository();

            dataGridView1.AutoGenerateColumns = false;
            dataGridView1.DataSource          = rep.GetAll();

            DataGridViewColumn column = new DataGridViewTextBoxColumn();

            column.DataPropertyName = "Name";
            column.Name             = "Наименование";
            dataGridView1.Columns.Add(column);

            // Initialize and add a check box column.
            column = new DataGridViewCheckBoxColumn();
            column.DataPropertyName = "Available";
            column.Name             = "В наличии";
            dataGridView1.Columns.Add(column);

            //dataGridView1.Columns[0].Name = "Имя";//.DataPropertyName = "Name";
            //dataGridView1.Columns[1].DataPropertyName = "PrducrForm";
            //dataGridView1.Columns[2].DataPropertyName = "Manufacturer";
            //dataGridView1.Columns[3].DataPropertyName = "Recipe";
            //dataGridView1.Columns[4].DataPropertyName = "Price";
            //dataGridView1.Columns[5].DataPropertyName = "Available";
        }
Exemple #2
0
        public void GetMedicineDetails_CorrectData_DetailsOfMedicine()
        {
            // Arrange
            int id = 2;

            mockContext.Setup(x => x.Medicines).Returns(mockMedicine.Object);

            var medicinesRepository = new MedicinesRepository(mockContext.Object);

            // Act
            var result = medicinesRepository.GetMedicineDetails(id);

            // Assert
            Assert.IsNull(result.Errors);
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Result.TotalCount);
            Assert.AreEqual(2, result.Result.Items.Id);
            Assert.AreEqual("Tabletki", result.Result.Items.MedicineTypeName);
            Assert.AreEqual("Nazwa drugiego leku", result.Result.Items.Name);
            Assert.AreEqual("40szt", result.Result.Items.ContentQuantity);
            Assert.AreEqual(11.99M, result.Result.Items.Price);
            Assert.AreEqual("Pharma", result.Result.Items.Producer);
            Assert.AreEqual("Super lek powiększony", result.Result.Items.Description);
            Assert.True(result.IsSuccess);
        }
Exemple #3
0
        public void CreateNewMedicine_DatabaseError_InternalServerError()
        {
            // Arrange
            var model = new MedicineInputModel
            {
                Name            = "Nowy lek",
                ContentQuantity = "100ml",
                Price           = 23.49M,
                Description     = "Nowy jeszcze lepszy super lek",
                Producer        = "Pharma",
                MedicineTypeId  = 1
            };

            var medicinesRepository = new MedicinesRepository(It.IsAny <PharmaStoreContext>());

            // Act
            var result = medicinesRepository.CreateNewMedicine(model);

            // Assert
            Assert.IsNotNull(result);
            Assert.False(result.IsSuccess);
            Assert.IsNull(result.Result);
            Assert.AreEqual(1, result.Errors.Count());
            Assert.AreEqual(ErrorResources.DatabaseError, result.Errors.Single().Message);
            Assert.AreEqual((int)ErrorCodes.InternalServerError, result.Errors.Single().ErrorCode);
        }
Exemple #4
0
        public void CreateNewMedicine_BadMedicineTypeId_BadRequestError()
        {
            // Arrange
            var model = new MedicineInputModel
            {
                Name            = "Nowy lek",
                ContentQuantity = "100ml",
                Price           = 23.49M,
                Description     = "Nowy jeszcze lepszy super lek",
                Producer        = "Pharma",
                MedicineTypeId  = 0
            };

            mockContext.Setup(x => x.MedicineTypes).Returns(mockMedicineType.Object);
            mockContext.Setup(x => x.Medicines).Returns(mockMedicine.Object);

            var medicinesRepository = new MedicinesRepository(mockContext.Object);

            // Act
            var result = medicinesRepository.CreateNewMedicine(model);

            // Assert
            Assert.IsNotNull(result);
            Assert.False(result.IsSuccess);
            Assert.IsNull(result.Result);
            Assert.AreEqual(1, result.Errors.Count());
            Assert.AreEqual(ErrorResources.InvalidInsertDatabaseData, result.Errors.Single().Message);
            Assert.AreEqual((int)ErrorCodes.BadRequest, result.Errors.Single().ErrorCode);
        }
        public void TestSaveNotNew()
        {
            // подготовка
            var repository = new MedicinesRepository();
            var med        = NewTestMedicine();

            repository.Save(med);

            try
            {
                // выполнение

                var med1 = repository.GetAll().SingleOrDefault(m => m.Id == med.Id);
                med1.Name = "лекарство";
                repository.Save(med1);
                // проверка
                var m_db = repository.GetAll().SingleOrDefault(m => m.Id == med.Id);
                Assert.IsTrue(m_db != null);
                EqualMedicine(med1, m_db);
            }
            finally
            {
                if (med.Id != 0)
                {
                    repository.Delete(med);
                }
            }
        }
Exemple #6
0
        public void CreateNewMedicine_CorrectData_CreatedMedicine()
        {
            // Arrange
            var model = new MedicineInputModel
            {
                Name            = "Nowy lek",
                ContentQuantity = "100ml",
                Price           = 23.49M,
                Description     = "Nowy jeszcze lepszy super lek",
                Producer        = "Pharma",
                MedicineTypeId  = 1
            };

            mockContext.Setup(x => x.MedicineTypes).Returns(mockMedicineType.Object);
            mockContext.Setup(x => x.Medicines).Returns(mockMedicine.Object);

            var medicinesRepository = new MedicinesRepository(mockContext.Object);

            // Act
            var result = medicinesRepository.CreateNewMedicine(model);

            // Assert
            Assert.IsNull(result.Errors);
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Result.TotalCount);
            Assert.AreEqual(ResultResources.CreatingMedicineComplete, result.Result.Items);
            Assert.True(result.IsSuccess);
        }
Exemple #7
0
        private void DeleteMedButton_Click(object sender, EventArgs e)
        {
            Medicine cell = MedicineList.SelectedRows[0].DataBoundItem as Medicine;

            if (MessageBox.Show("Вы действительно хотите удалить данное лекарственное средство «"
                                + cell.Name + "»?", "Удаление элемента", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                MedicinesRepository rep = new MedicinesRepository();
                rep.Delete(cell);
                MessageBox.Show("Лекарственное средство " + cell.Name + " удалено!", "Удаление элемента",
                                MessageBoxButtons.OK);
                MedicineList.DataSource = rep.GetAll();
            }
        }
        private void DeleteOrderButton_Click(object sender, EventArgs e)
        {
            Order order = OrdersList.SelectedRows[0].DataBoundItem as Order;

            if (MessageBox.Show("Вы действительно хотите удалить заказ № "
                                + order.Id + "?", "Удаление элемента", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                MedicinesRepository rep = new MedicinesRepository();
                OrdRepository.Delete(order);
                MessageBox.Show("Заказ № " + order.Id + " удален!", "Удаление элемента",
                                MessageBoxButtons.OK);
                OrdersList.DataSource = OrdRepository.GetAll();
            }
        }
Exemple #9
0
        public void GetMedicineTypes_DatabaseError_InternalServerError()
        {
            // Arrange
            var medicinesRepository = new MedicinesRepository(It.IsAny <PharmaStoreContext>());

            // Act
            var result = medicinesRepository.GetMedicineTypes();

            // Assert
            Assert.IsNotNull(result);
            Assert.False(result.IsSuccess);
            Assert.IsNull(result.Result);
            Assert.AreEqual(1, result.Errors.Count());
            Assert.AreEqual(ErrorResources.DatabaseError, result.Errors.Single().Message);
            Assert.AreEqual((int)ErrorCodes.InternalServerError, result.Errors.Single().ErrorCode);
        }
Exemple #10
0
        public void CreateNewMedicine_InvalidDataNullModelFields_BadRequestErrors()
        {
            // Arrange
            var model = new MedicineInputModel();

            var medicinesRepository = new MedicinesRepository(It.IsAny <PharmaStoreContext>());

            // Act
            var result = medicinesRepository.CreateNewMedicine(model);

            // Assert
            Assert.IsNull(result.Result);
            Assert.IsNotNull(result);
            Assert.AreEqual(4, result.Errors.Count());
            Assert.AreEqual(1, result.Errors.Select(x => x.Message).Distinct().Count());
            Assert.False(result.IsSuccess);
        }
Exemple #11
0
        public void GetMedicineList_CorrectData_ListOfMedicines()
        {
            // Arrange
            mockContext.Setup(x => x.Medicines).Returns(mockMedicine.Object);

            var medicinesRepository = new MedicinesRepository(mockContext.Object);

            // Act
            var result = medicinesRepository.GetMedicineList(It.IsAny <GetMedicinesViewModel>());

            // Assert
            Assert.IsNull(result.Errors);
            Assert.IsNotNull(result);
            Assert.AreEqual(3, result.Result.Items.Count());
            Assert.AreEqual(3, result.Result.TotalCount);
            Assert.True(result.IsSuccess);
        }
Exemple #12
0
        public void GetMedicineDetails_IdDoNotExists_NotFoundError()
        {
            // Arrange
            mockContext.Setup(x => x.Medicines).Returns(mockMedicine.Object);

            var medicinesRepository = new MedicinesRepository(mockContext.Object);

            // Act
            var result = medicinesRepository.GetMedicineDetails(It.IsAny <int>());

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNull(result.Result);
            Assert.IsNotNull(result.Errors);
            Assert.AreEqual(1, result.Errors.Count());
            Assert.AreEqual(ErrorResources.ItemNotFound, result.Errors.Single().Message);
            Assert.AreEqual((int)ErrorCodes.NotFound, result.Errors.Single().ErrorCode);
            Assert.False(result.IsSuccess);
        }
Exemple #13
0
        public void TestSaveOrderWithMed()
        {
            // подготовка
            var MedRep = new MedicinesRepository();
            var med    = new Medicine()
            {
                Name         = "11111",
                ProductForm  = "123",
                Manufacturer = "Белфарма",
                Available    = true,
                Price        = 12000,
                Recipe       = true
            };

            var order = NewTestOrder();

            try
            {
                MedRep.Save(med);
                order.OrderedMedicines = new List <Medicine>();
                order.OrderedMedicines.Add(med);
                // выполнение
                repository.Save(order);
                // проверка
                Order o_db = repository.GetAll().FirstOrDefault(o => o.Id == order.Id);

                Assert.IsTrue(o_db != null);
                var med_db = o_db.OrderedMedicines.Find(m => m.Id == med.Id);
                Assert.AreEqual(med.Name, med_db.Name);
            }
            finally
            {
                if (order.Id != 0)
                {
                    repository.Delete(order);
                }
                if (med.Id != 0)
                {
                    MedRep.Delete(med);
                }
            }
        }
Exemple #14
0
        public void TestAddMedToOrder()
        {
            var MedRep = new MedicinesRepository();
            var med    = new Medicine()
            {
                Name         = "11111",
                ProductForm  = "123",
                Manufacturer = "Белфарма",
                Available    = true,
                Price        = 12000,
                Recipe       = true
            };
            var order = NewTestOrder();

            MedRep.Save(med);
            repository.Save(order);

            try
            {
                var med1   = MedRep.GetAll().FirstOrDefault(m => m.Name == "11111");
                var order1 = repository.GetAll().FirstOrDefault(o => o.Name == "test");
                order1.OrderedMedicines.Add(med1);
                repository.Save(order1);

                var order2 = repository.GetAll().FirstOrDefault(o => o.Id == order.Id);
                Assert.True(order2.OrderedMedicines.Exists(m => m.Id == med.Id));
            }
            finally
            {
                if (order.Id != 0)
                {
                    repository.Delete(order);
                }
                if (med.Id != 0)
                {
                    MedRep.Delete(med);
                }
            }
        }
Exemple #15
0
        public void CreateNewMedicine_InvalidDataTooShortModelFields_BadRequestErrors()
        {
            // Arrange
            var model = new MedicineInputModel
            {
                Name            = "a",
                ContentQuantity = "aa",
                Description     = "a",
                Producer        = "a"
            };

            var medicinesRepository = new MedicinesRepository(It.IsAny <PharmaStoreContext>());

            // Act
            var result = medicinesRepository.CreateNewMedicine(model);

            // Assert
            Assert.IsNull(result.Result);
            Assert.IsNotNull(result);
            Assert.AreEqual(4, result.Errors.Count());
            Assert.False(result.IsSuccess);
        }
Exemple #16
0
        public void GetMedicineList_CorrectDataWithFilters_ListOfMedicines()
        {
            // Arrange
            var filters = new GetMedicinesViewModel
            {
                SearchValue = "lek"
            };

            mockContext.Setup(x => x.Medicines).Returns(mockMedicine.Object);

            var medicinesRepository = new MedicinesRepository(mockContext.Object);

            // Act
            var result = medicinesRepository.GetMedicineList(filters);

            // Assert
            Assert.IsNull(result.Errors);
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Result.Items.Count());
            Assert.AreEqual(2, result.Result.TotalCount);
            Assert.True(result.IsSuccess);
        }
        public void TestSelectWithProductFormLike()
        {
            // подготовка
            var repository = new MedicinesRepository();
            // выполнение
            var med = NewTestMedicine();

            repository.Save(med);

            try
            {
                // проверка
                var m_db = repository.GetAll().WithProductFormLike("test").FirstOrDefault();
                Assert.AreEqual(m_db.ProductForm, med.ProductForm);
            }
            finally
            {
                if (med.Id != 0)
                {
                    repository.Delete(med);
                }
            }
        }
        public void TestSelectWithId()
        {
            // подготовка
            var repository = new MedicinesRepository();
            // выполнение
            var med = NewTestMedicine();

            repository.Save(med);

            try
            {
                // проверка
                var m_db = repository.GetAll().WithId(med.Id).SingleOrDefault();
                Assert.AreEqual(m_db.Id, med.Id);
            }
            finally
            {
                if (med.Id != 0)
                {
                    repository.Delete(med);
                }
            }
        }
        public void TestDeleteForId()
        {
            // подготовка
            var repository = new MedicinesRepository();
            var med        = NewTestMedicine();

            repository.Save(med);

            // выполнение
            try
            {
                repository.Delete(med.Id);
                // проверка
                Assert.Throws(typeof(InvalidOperationException),
                              delegate { repository.GetAll().Single(m => m.Id == med.Id); });
            }
            finally
            {
                if (med.Id != 0)
                {
                    repository.Delete(med);
                }
            }
        }
Exemple #20
0
 public MedicinesController(MedicinesRepository medicinesRepository)
 {
     _MedicinesRepository = medicinesRepository;
 }
Exemple #21
0
        private void SafeMedButton_Click(object sender, EventArgs e)
        {
            var      rep = new MedicinesRepository();
            Medicine med;

            try
            {
                med = new Medicine()
                {
                    Name         = NameBox.Text,
                    Available    = AvailableCheckBox.Checked,
                    Manufacturer = ManufacturerBox.Text,
                    ProductForm  = ProductFormBox.Text,
                    Price        = Convert.ToDecimal(PriceBox.Text),
                    Recipe       = RecipeСheckBox.Checked
                };



                ValidationClass.ValidateMedicine(med);

                //if (NameBox.Text == "" || ProductFormBox.Text == ""
                //    || ManufacturerBox.Text == "" || PriceBox.Text == "")
                //{
                //    MessageBox.Show("Все поля должны быть заполнены!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}

                //if (NameBox.Text.Length < 2 || NameBox.Text.Length > 255)
                //{
                //    MessageBox.Show("Поле Наименование должно содержать от 2 до 255 символов!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //    return;
                //}

                //if (ProductFormBox.Text.Length < 2 || ProductFormBox.Text.Length > 255)
                //{
                //    MessageBox.Show("Поле Форма выпуска должно содержать от 2 до 255 символов!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //    return;
                //}
                //if (ManufacturerBox.Text.Length < 2 || ManufacturerBox.Text.Length > 255)
                //{
                //    MessageBox.Show("Поле Производитель должно содержать от 2 до 255 символов!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //    return;
                //}
                //try
                //{
                //    if (Convert.ToInt32(PriceBox.Text) < 100 || Convert.ToInt32(PriceBox.Text) > 100000000)
                //    {
                //        MessageBox.Show("Поле Цена должно содержать значения от 100 до 100000000!", "Ошибка!",
                //            MessageBoxButtons.OK, MessageBoxIcon.Error);
                //        return;
                //    }
                //}
                //catch (FormatException exception)
                //{
                //    MessageBox.Show("Поле Цена должно содержать цифровые значения!", "Ошибка!",
                //            MessageBoxButtons.OK, MessageBoxIcon.Error);
                //    return;

                //}


                ValidationClass.IsMedicineAlreadyExist(med, rep);
                //if (rep.GetAll().IsMedicineExist(NameBox.Text, ProductFormBox.Text, ManufacturerBox.Text))
                //{
                //    MessageBox.Show("Такое лек.средство уже существует в системе!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}
            }
            catch (FormatException exception)
            {
                MessageBox.Show("Поле Цена должно содержать цифровые значения!", "Ошибка!",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if ((sender as Button).Text == "Добавить")
            {
                rep.Save(med);

                MessageBox.Show(String.Format("Лекарственное средство {0} добавленно", NameBox.Text),
                                "Добавление лек.средства",
                                MessageBoxButtons.OK);
            }
            else
            {
                Medicine dbmed = AdminForm.medicinesControl.MedicineList.SelectedRows[0].DataBoundItem as Medicine;
                med.Id = dbmed.Id;

                rep.Save(med);
                MessageBox.Show("Изменения лек.средства " + med.Name + " сохранены!", "Изменение лек.средства", MessageBoxButtons.OK);
            }

            AdminForm.medicinesControl.MedicineList.DataSource = rep.GetAll();
            AdminForm.medicinesControl.BringToFront();
        }
 public MedicinesController()
 {
     repository = new MedicinesRepository();
 }