private void btnStudentPictureAdd_Click(object sender, EventArgs e)
        {
            StudentPictureToUploaded = FileHandeling.UploadFile(UseMultipleFileSelect: false, AutomaicallyAddFileToDatabase: false, ImagesOnly: true);

            if (StudentPictureToUploaded.Count > 0)
            {
                if (CurrentStudentID != 0)
                {
                    using (var Dbconnection = new MCDEntities())
                    {
                        Data.Models.File f = StudentPictureToUploaded.FirstOrDefault <Data.Models.File>();
                        Dbconnection.Files.Add(f);
                        Dbconnection.SaveChanges();

                        //Dbconnection.Files.Attach(f);
                        Dbconnection.StudentPhotos.Add(new StudentPhoto()
                        {
                            FileID         = f.FileID,
                            StudentID      = CurrentStudentID,
                            DateUpdated    = DateTime.Now,
                            StudentPhotoID = 0
                        });
                        Dbconnection.SaveChanges();
                    };
                }
            }

            ShowStudentPicture();
            switchStudentPictureButtons();
        }
        private void btnStudentPictureUpdate_Click(object sender, EventArgs e)
        {
            List <Data.Models.File> FileToUpdate = FileHandeling.UploadFile(UseMultipleFileSelect: false, AutomaicallyAddFileToDatabase: false, ImagesOnly: true);


            Data.Models.File f = StudentPictureToUploaded.FirstOrDefault <Data.Models.File>();
            if (CurrentStudentID != 0)
            {
                using (var Dbconnection = new MCDEntities())
                {
                    Dbconnection.Files.Attach(f);
                    Dbconnection.Entry(f).State = EntityState.Modified;
                    f.FileImage = FileToUpdate.First <Data.Models.File>().FileImage;
                    Dbconnection.SaveChanges();
                };
            }
            else
            {
                f.FileImage = FileToUpdate.First <Data.Models.File>().FileImage;
            }
            ShowStudentPicture();
        }
        private Boolean ValidateStep()
        {
            Boolean bRtn = true;

            switch (CurrentPosition)
            {
            case 0:



                try
                {
                    //ToDo - Catch All Verification and validation on fields before saving.
                    //check and adds the new student to the database or updates the exsiting one.


                    Student StudentObj = (Student)studentBindingSource.Current;
                    using (var Dbconnection = new MCDEntities())
                    {
                        if (StudentObj.ObjectState == EntityObjectState.Added)
                        {
                            Student StudentFound;


                            using (var DbconnectionInner = new MCDEntities())
                            {
                                StudentFound = (from a in Dbconnection.Students
                                                where a.StudentIDNumber.Contains(txtStudentIDNumber.Text)
                                                select a).FirstOrDefault <Student>();
                            };

                            if (txtStudentIDNumber.Text.Length != 0 && StudentFound != null)
                            {
                                //throw new DbEntityValidationException("(ID Number Invalid) - ID Number Already Exists in the System Please Re-Enter ID Number Or Search Again!");
                                //MetroMessageBox.Show(this, "(ID Number Invalid) - ID Number Already Exists in the System Please Re-Enter ID Number Or Search Again!", "Error Message", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error);
                                MessageBox.Show("(ID Number Invalid) - ID Number Already Exists in the System Please Re-Enter ID Number Or Search Again!", "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                bRtn = false;
                                break;
                            }
                            else
                            {
                                Student NewStudent = new Student()
                                {
                                    StudentID              = 0,
                                    StudentIDNumber        = txtStudentIDNumber.Text.ToString(),
                                    EthnicityID            = Convert.ToInt32(cboStudentEthnicity.SelectedValue),
                                    GenderID               = Convert.ToInt32(cboStudentGender.SelectedValue),
                                    MartialStatusID        = Convert.ToInt32(cboStudentMartialStatus.SelectedValue),
                                    QualificationLevelID   = Convert.ToInt32(cboStudentHighestQualificationLevel.SelectedValue),
                                    StudentCurrentPosition = "",
                                    StudentlInitialDate    = DateTime.Now,
                                    Individual             = new Individual()
                                    {
                                        IndividualID         = 0,
                                        IndividualFirstName  = txtStudentFirstName.Text,
                                        IndividualSecondName = txtStudentSecondName.Text,
                                        IndividualLastname   = txtStudentLastname.Text,
                                        TitleID = Convert.ToInt32(cboStudentTitle.SelectedValue),
                                    }
                                };

                                Dbconnection.Students.Add(NewStudent);
                                Dbconnection.SaveChanges();
                                CurrentStudentID = NewStudent.StudentID;
                                //CurrentSelectedStudent = NewStudent;

                                if (StudentPictureToUploaded.Count > 0)
                                {
                                    Data.Models.File f = StudentPictureToUploaded.FirstOrDefault <Data.Models.File>();
                                    Dbconnection.Files.Add(f);
                                    Dbconnection.SaveChanges();

                                    Dbconnection.StudentPhotos.Add(new StudentPhoto()
                                    {
                                        FileID         = f.FileID,
                                        StudentID      = CurrentStudentID,
                                        DateUpdated    = DateTime.Now,
                                        StudentPhotoID = 0
                                    });
                                    Dbconnection.SaveChanges();
                                }


                                StudentObj             = NewStudent;
                                StudentObj.ObjectState = EntityObjectState.Modified;
                                IsClosingPrematurly    = false;
                            }
                        }

                        if (StudentObj.ObjectState == EntityObjectState.Modified)
                        {
                            Dbconnection.Students.Attach(StudentObj);
                            StudentObj.Individual.IndividualFirstName  = txtStudentFirstName.Text;
                            StudentObj.Individual.IndividualSecondName = txtStudentSecondName.Text;
                            StudentObj.Individual.IndividualLastname   = txtStudentLastname.Text;
                            StudentObj.Individual.TitleID   = Convert.ToInt32(cboStudentTitle.SelectedValue);
                            StudentObj.StudentIDNumber      = txtStudentIDNumber.Text.ToString();
                            StudentObj.EthnicityID          = Convert.ToInt32(cboStudentEthnicity.SelectedValue);
                            StudentObj.GenderID             = Convert.ToInt32(cboStudentGender.SelectedValue);
                            StudentObj.MartialStatusID      = Convert.ToInt32(cboStudentMartialStatus.SelectedValue);
                            StudentObj.QualificationLevelID = Convert.ToInt32(cboStudentHighestQualificationLevel.SelectedValue);

                            Dbconnection.Entry(StudentObj).State = System.Data.Entity.EntityState.Modified;
                            Dbconnection.SaveChanges();
                        }

                        StudentObj.ObjectState = EntityObjectState.Modified;
                    };
                    CurrentSelectedStudent          = StudentObj;
                    studentBindingSource.DataSource = StudentObj;
                }
                catch (DbEntityValidationException dbEx)
                {
                    foreach (DbEntityValidationResult entityErr in dbEx.EntityValidationErrors)
                    {
                        foreach (DbValidationError error in entityErr.ValidationErrors)
                        {
                            MessageBox.Show(error.ErrorMessage, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    bRtn = false;
                }
                //studentBindingSource.ResetCurrentItem();
                break;

            case 1:
                break;

            case 2:
                break;

            case 3:
                break;

            case 4:
                break;

            case 5:
                break;

            case 6:
                break;

            case 7:
                break;

            default:
                bRtn = false;
                break;
            }

            return(bRtn);
        }