예제 #1
0
        private void EditStudent(object sender, EventArgs e)
        {
            var form      = new StudentInfoForm();
            var presenter = new StudentInfoPresenter(
                m_model
                , m_mainForm.CurrentStudentRow as Student
                , form
                );

            form.Show();
        }
        private void AssertOrAssignStudentInfo(StudentInfo info, AssertOrAssign mode)
        {
            var form = new StudentInfoForm(_chromeDriver);
            var wait = new OpenQA.Selenium.Support.UI.WebDriverWait(_chromeDriver, new TimeSpan(0, 0, LoadTimeoutSecs));

            if (info.FirstName != null)
            {
                if (mode == AssertOrAssign.Assign)
                {
                    form.FirstNameField.SetValue(info.FirstName);
                }
                else
                {
                    Assert.AreEqual(info.FirstName, form.FirstNameField.GetValue());
                }
            }

            if (info.LastName != null)
            {
                if (mode == AssertOrAssign.Assign)
                {
                    form.LastNameField.SetValue(info.LastName);
                }
                else
                {
                    Assert.AreEqual(info.LastName, form.LastNameField.GetValue());
                }
            }

            if (info.Email != null)
            {
                if (mode == AssertOrAssign.Assign)
                {
                    form.EmailField.SetValue(info.Email);
                }
                else
                {
                    Assert.AreEqual(info.Email, form.EmailField.GetValue());
                }
            }

            if (info.Gender != null)
            {
                switch (info.Gender)
                {
                case "Male":
                    if (mode == AssertOrAssign.Assign)
                    {
                        form.MaleGenderField.SetValue("1");
                    }
                    else
                    {
                        Assert.IsTrue(((RadioButtonElement)form.MaleGenderField).IsSelected());
                    }

                    break;

                case "Female":
                    if (mode == AssertOrAssign.Assign)
                    {
                        form.FemaleGenderField.SetValue("1");
                    }
                    else
                    {
                        Assert.IsTrue(((RadioButtonElement)form.FemaleGenderField).IsSelected());
                    }

                    break;

                case "Other":
                    if (mode == AssertOrAssign.Assign)
                    {
                        form.OtherGenderField.SetValue("1");
                    }
                    else
                    {
                        Assert.IsTrue(((RadioButtonElement)form.OtherGenderField).IsSelected());
                    }

                    break;

                default:
                    Assert.Fail($"Invalid Gender '{info.Gender}' supplied. Must be 'Male', 'Female' or 'Other'");
                    break;
                }
            }

            if (info.MobileNumber != null)
            {
                if (mode == AssertOrAssign.Assign)
                {
                    form.MobileNumberField.Clear();
                    form.MobileNumberField.SetValue(info.MobileNumber);
                }
                else
                {
                    Assert.AreEqual(info.MobileNumber, form.MobileNumberField.GetValue());
                }
            }

            if (info.DateOfBirth != null)
            {
                if (mode == AssertOrAssign.Assign)
                {
                    form.DateOfBirthField.SetValue(info.DateOfBirth);

                    // hack to close the date picker
                    form.MobileNumberField.Click();
                }
                else
                {
                    Assert.AreEqual(info.DateOfBirth, form.DateOfBirthField.GetValue());
                }
            }

            if (!string.IsNullOrEmpty(info.Subjects))
            {
                form.SubjectsField.SetValue(info.Subjects);
            }

            if (!string.IsNullOrEmpty(info.Hobbies))
            {
                var hobbies = info.Hobbies.Split(",").Distinct().ToList();

                if (hobbies.Contains("Sports"))
                {
                    form.SportsField.SetValue("1");
                }

                if (hobbies.Contains("Reading"))
                {
                    form.ReadingField.SetValue("1");
                }

                if (hobbies.Contains("Music"))
                {
                    form.MusicField.SetValue("1");
                }
            }

            if (!string.IsNullOrEmpty(info.State))
            {
                form.StateField.SetValue(info.State);
            }

            if (!string.IsNullOrEmpty(info.City))
            {
                form.CityField.SetValue(info.City);
            }
        }