public void ModifyStudentLocation()
        {
            IStudentLogic studentOperations = DummyProvider.GetInstance.GetStudentOperations();
            int           nextStudentNumber = 1;

            #region Add students with subjects to the system
            var newStudent = new Student()
            {
                Document      = "1234567-8",
                Name          = Utility.GetRandomName(),
                LastName      = Utility.GetRandomLastName(),
                Location      = new Location(10.00, 15.1),
                StudentNumber = nextStudentNumber
            };
            studentOperations.AddStudent(newStudent);
            #endregion

            Location newStudentLocation = new Location(2.1, 5.6);
            var      modifyInput        = new ModifyStudentInput();
            modifyInput.NewLocation   = newStudentLocation;
            modifyInput.StudentNumber = nextStudentNumber;
            studentOperations.ModifyStudent(modifyInput);

            Student modifiedStudent = studentOperations.GetStudentByNumber(modifyInput.StudentNumber);

            Assert.IsTrue(modifiedStudent.GetLocation().Equals(newStudentLocation));
        }
        public void ShowErrorIfNoModifications()
        {
            try
            {
                IStudentLogic studentOperations = DummyProvider.GetInstance.GetStudentOperations();
                int           nextStudentNumber = 1;

                #region Add subjects to the system
                List <Subject> systemSubjects = SystemDummyData.GetInstance.GetSubjects();
                Subject        subject1       = new Subject(1234, "Math");
                Subject        subject2       = new Subject(3216, "Physics");
                systemSubjects.Add(subject1);
                systemSubjects.Add(subject2);
                #endregion

                #region Add students with subjects to the system
                List <Subject> studentSubjects = new List <Subject>();
                studentSubjects.Add(subject1);
                studentSubjects.Add(subject2);
                var newStudent = new Student
                {
                    Document      = "1234567-8",
                    Name          = Utility.GetRandomName(),
                    LastName      = Utility.GetRandomLastName(),
                    Subjects      = studentSubjects,
                    StudentNumber = nextStudentNumber
                };
                studentOperations.AddStudent(newStudent);
                #endregion

                List <Subject> newSubjects = new List <Subject>();
                newSubjects.Add(subject1);
                newSubjects.Add(subject2);

                var modifyInput = new ModifyStudentInput();
                modifyInput.NewSubjects   = newSubjects;
                modifyInput.NewName       = newStudent.Name;
                modifyInput.NewLastName   = newStudent.LastName;
                modifyInput.StudentNumber = nextStudentNumber;
                modifyInput.NewLocation   = new Location();
                studentOperations.ModifyStudent(modifyInput);

                Assert.Fail();
            }
            catch (CoreException ex)
            {
                Assert.IsTrue(ex.Message.Equals("No modifications have been made."));
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
        public void ModifyStudentSubjects()
        {
            IStudentLogic studentOperations = DummyProvider.GetInstance.GetStudentOperations();
            int           nextStudentNumber = 1;

            #region Add subjects to the system
            List <Subject> systemSubjects = SystemDummyData.GetInstance.GetSubjects();
            Subject        subject1       = new Subject(1234, "Math");
            Subject        subject2       = new Subject(3216, "Physics");
            Subject        subject3       = new Subject(7418, "Chemistry");
            Subject        subject4       = new Subject(9632, "History");
            systemSubjects.Add(subject1);
            systemSubjects.Add(subject2);
            systemSubjects.Add(subject3);
            systemSubjects.Add(subject4);
            #endregion

            #region Add students with subjects to the system
            List <Subject> studentSubjects = new List <Subject>();
            studentSubjects.Add(subject1);
            studentSubjects.Add(subject2);
            studentSubjects.Add(subject3);

            var newStudent = new Student();
            newStudent.Document      = "1234567-8";
            newStudent.Name          = Utility.GetRandomName();
            newStudent.LastName      = Utility.GetRandomLastName();
            newStudent.Subjects      = studentSubjects;
            newStudent.StudentNumber = nextStudentNumber;
            studentOperations.AddStudent(newStudent);
            #endregion

            List <Subject> newSubjects = new List <Subject>();
            newSubjects.Add(subject1);
            newSubjects.Add(subject2);
            newSubjects.Add(subject4);

            var modifyInput = new ModifyStudentInput();
            modifyInput.NewSubjects   = newSubjects;
            modifyInput.StudentNumber = nextStudentNumber;
            studentOperations.ModifyStudent(modifyInput);

            Student modifiedStudent = studentOperations.GetStudentByNumber(modifyInput.StudentNumber);

            Assert.IsTrue(Utility.CompareLists(modifiedStudent.GetSubjects(), modifyInput.NewSubjects));
        }
        public void ModifyStudent(ModifyStudentInput input)
        {
            Student studentToModify = GetStudentByNumber(input.StudentNumber);

            bool nameWasModified      = ModifyName(studentToModify, input.NewName);
            bool lastNameWasModified  = ModifyLastName(studentToModify, input.NewLastName);
            bool subjectsWereModified = ModifySubjects(studentToModify, input.NewSubjects);

            studentToModify.SetPickUpService(input.HavePickupService);
            bool locationHaveChange = ModifyLocation(studentToModify, input.NewLocation);
            bool feeHasChange       = ModifyFee(studentToModify, input.NewFeeAmount);

            if (!nameWasModified && !lastNameWasModified &&
                !subjectsWereModified && !locationHaveChange && !feeHasChange)
            {
                throw new CoreException("No modifications have been made.");
            }

            this.persistanceProvider.ModifyStudent(studentToModify);
        }
        private void buttonModifyStudent_Click(object sender, EventArgs e)
        {
            try
            {
                if (IsStudentNumberSelected() && ValidateFormData())
                {
                    labelError.Text = string.Empty;
                    var input = new ModifyStudentInput
                    {
                        NewName           = textBoxName.Text,
                        NewLastName       = textBoxLastName.Text,
                        StudentNumber     = int.Parse(this.comboBoxStudentsNumber.SelectedItem.ToString()),
                        NewSubjects       = this.GetSelectedSubjects(),
                        HavePickupService = this.radioButtonYesPickUp.Checked,
                        NewFeeAmount      = numericUpDownFeeAmount.Value != NewFeeAmount ? numericUpDownFeeAmount.Value : 0
                    };

                    if (radioButtonYesPickUp.Checked)
                    {
                        double latitud  = double.Parse(textBoxLatitud.Text);
                        double longitud = double.Parse(textBoxLongitud.Text);
                        input.NewLocation = new Location(latitud, longitud);
                    }

                    IStudentLogic studentOperations = Provider.GetInstance.GetStudentOperations();
                    studentOperations.ModifyStudent(input);
                    this.CleanForm();
                    this.labelSuccess.Text = Constants.SUCCESS_STUDENT_MODIFICATION;
                }
            }
            catch (CoreException ex)
            {
                this.labelError.Text = ex.Message;
            }
            catch (Exception)
            {
                this.labelError.Text = Constants.ERROR_UNEXPECTED;
            }
        }
        public void ModifyStudentLastName()
        {
            IStudentLogic studentOperations = DummyProvider.GetInstance.GetStudentOperations();
            int           nextStudentNumber = 1;

            var newStudent = new Student();

            newStudent.Name          = Utility.GetRandomName();
            newStudent.LastName      = "de Leon";
            newStudent.Document      = "1234567-8";
            newStudent.StudentNumber = nextStudentNumber;
            studentOperations.AddStudent(newStudent);

            ModifyStudentInput modifyInput = new ModifyStudentInput();

            modifyInput.NewLastName   = "Diaz";
            modifyInput.StudentNumber = nextStudentNumber;
            studentOperations.ModifyStudent(modifyInput);

            Student modifiedStudent = studentOperations.GetStudentByNumber(modifyInput.StudentNumber);

            Assert.AreEqual(modifiedStudent.GetLastName(), modifyInput.NewLastName);
        }