public MainCalendarViewControl()
        {
            InitializeComponent();
            calendarControl.OnBuscarClick += calendarControl_OnBuscarClick;
            calendarControl.OnNotificarClick += calendarControl_OnNotificarClick;
            HandleEvents();
            Conexion conexion = new Conexion();
            aulas=conexion.getAulas();
            asignaturas = conexion.getAsignaturasConGrupo();
            asignacionClaseControl.Aulas = aulas;
            asignacionVariosControl.Aulas = aulas; ;
            asignacionClaseControl.Asignaturas = asignaturas;
            calendarControl.AddAulas(aulas.ToArray());

            List<AsignacionVarios> asignacionesVarios = conexion.getAsignacionesVarios();
            foreach (AsignacionVarios asignacionVarios in asignacionesVarios) {
                calendarControl.calendarView.SelectedOwner = asignacionVarios.Aula.Referencia;
                calendarControl.AddAsignacion(asignacionVarios);
            }

            List<AsignacionClase> asignacionesClase = conexion.getAsignacionesClase();
            foreach (AsignacionClase asignacionClase in asignacionesClase)
            {
                calendarControl.calendarView.SelectedOwner = asignacionClase.Aula.Referencia;
                calendarControl.AddAsignacion(asignacionClase);
            }
            calendarControl.calendarView.SelectedView = DevComponents.DotNetBar.Schedule.eCalendarView.Week;
        }
        private void buttonAceptar_Click(object sender, EventArgs e)
        {
            int tipoAsignacion = comboBoxTipoAsignacion.SelectedIndex;
            DateTime oInicio = DateTime.Now;
            DateTime oFin = DateTime.Now ;
            bool flag=false;
            switch (tipoAsignacion)
            {
                case 0:
                    {
                        if(asignacionClaseControl.ValidateControls()){
                            AsignacionClase asignacionClase;
                            if (!editing)
                            {
                                asignacionClase = new AsignacionClase();
                            }
                            else
                            {
                                asignacionClase = (AsignacionClase)currentAsignacion;
                            }
                            oInicio = asignacionClase.Inicio;
                            oFin = asignacionClase.Fin;
                            asignacionClase.Aula = asignacionClaseControl.Aula;
                            asignacionClase.Grupo = asignacionClaseControl.Grupo;
                            asignacionClase.Inicio = asignacionClaseControl.Inicio;
                            asignacionClase.Fin= asignacionClaseControl.Fin;
                            asignacionClase.Id_Usuario = usuario.Cod_Usua;
                            currentAsignacion = asignacionClase;
                            flag = true;
                        }
                    } break;
                case 1:
                    {
                        if(asignacionVariosControl.ValidateControls()){
                            AsignacionVarios asignacionVarios;
                            if (!editing)
                            {
                                asignacionVarios = new AsignacionVarios();
                            }
                            else {
                                asignacionVarios = (AsignacionVarios)currentAsignacion;
                            }
                            oInicio = asignacionVarios.Inicio;
                            oFin = asignacionVarios.Fin;
                            asignacionVarios.Aula = asignacionVariosControl.Aula;
                            asignacionVarios.TipoUso = asignacionVariosControl.TipoUso;
                            asignacionVarios.Observaciones = asignacionVariosControl.Observaciones;
                            asignacionVarios.Inicio = asignacionClaseControl.Inicio;
                            asignacionVarios.Fin = asignacionVariosControl.Fin;
                            asignacionVarios.Cliente = asignacionVariosControl.Cliente;
                            asignacionVarios.Id_Usuario = usuario.Cod_Usua;
                            currentAsignacion = asignacionVarios;
                            flag=true;
                        }
                    } break;
            }
            if (currentAsignacion != null && flag)
            {
                expandablePanel1.Expanded = false;
                try
                {
                    Conexion conexion = new Conexion();
                    if (!editing)
                    {
                        conexion.insertAsignacion(ref currentAsignacion);
                        calendarControl.AddAsignacion(currentAsignacion);
                    }
                    else
                    {
                        if (currentAsignacion.Serie != null)
                        {
                            List<Asignacion> asignaciones;
                            if(currentAsignacion is AsignacionClase)
                                asignaciones = conexion.getAsignacionesClase("serie="+currentAsignacion.Serie.ID).ToList<Asignacion>();
                            else
                                asignaciones = conexion.getAsignacionesVarios("serie=" + currentAsignacion.Serie.ID).ToList<Asignacion>();
                            EditarSerieForm editarSerieForm = new EditarSerieForm();
                            editarSerieForm.setAsignaciones(asignaciones);
                            editarSerieForm.setCurrentAsignacion(currentAsignacion);
                            DialogResult result = editarSerieForm.ShowDialog();
                            if (result == DialogResult.OK)
                            {
                                EditarSerieForm.Option selectedOption = editarSerieForm.getSelectedOption();
                                if(selectedOption==EditarSerieForm.Option.CurrentEvent)
                                {
                                            conexion.actualizarAsignacion(currentAsignacion);
                                            calendarControl.updateAsignacion(currentAsignacion);
                                }
                                else {
                                        TimeSpan InicioOffset;
                                        TimeSpan FinOffset;
                                        InicioOffset = currentAsignacion.Inicio.Subtract(oInicio);
                                        FinOffset = currentAsignacion.Fin.Subtract(oFin);

                                        List<Asignacion> asignacionesSeleccionadas = editarSerieForm.getAsignacionesSeleccionadas();
                                        if (asignacionesSeleccionadas != null)
                                        {
                                            for (int i = 0; i < asignacionesSeleccionadas.Count; i++)
                                            {
                                                Asignacion asignacion = asignacionesSeleccionadas[i];
                                                asignacion.Inicio = new DateTime(asignacion.Inicio.Year, asignacion.Inicio.Month, asignacion.Inicio.Day, currentAsignacion.Inicio.Hour, currentAsignacion.Inicio.Minute, 0);
                                                asignacion.Fin = new DateTime(asignacion.Fin.Year, asignacion.Fin.Month, asignacion.Fin.Day, currentAsignacion.Fin.Hour, currentAsignacion.Fin.Minute, 0);
                                                if (InicioOffset.Days != 0)
                                                    asignacion.Inicio= asignacion.Inicio.AddDays(InicioOffset.Days);
                                                if (FinOffset.Days != 0)
                                                    asignacion.Fin= asignacion.Fin.AddDays(FinOffset.Days);
                                                asignacion.Aula = currentAsignacion.Aula;
                                                if (currentAsignacion is AsignacionClase)
                                                {
                                                    ((AsignacionClase)asignacion).Grupo = ((AsignacionClase)currentAsignacion).Grupo;
                                                }
                                                else if (currentAsignacion is AsignacionVarios)
                                                {
                                                    ((AsignacionVarios)asignacion).TipoUso = ((AsignacionVarios)currentAsignacion).TipoUso;
                                                    ((AsignacionVarios)asignacion).Observaciones = ((AsignacionVarios)currentAsignacion).Observaciones;
                                                    ((AsignacionVarios)asignacion).Cliente = ((AsignacionVarios)currentAsignacion).Cliente;
                                                }
                                                conexion.actualizarAsignacion(asignacion);
                                                calendarControl.updateAsignacion(asignacion);
                                            }
                                        }
                                }

                            }

                        }
                        else
                        {
                            conexion.actualizarAsignacion(currentAsignacion);
                            calendarControl.updateAsignacion(currentAsignacion);
                        }
                    }
                }
                catch (Exception ex) { MessageBox.Show("Ha ocurrido un problema al intentar insertar la asignación"); }
            }
        }