private void buttonAddSerie_Click(object sender, EventArgs e)
        {
            DateTime? inicio=null;
            DateTime? fin = null;
            try
            {
                inicio = calendarControl.calendarView.DateSelectionStart.Value;
                fin = calendarControl.calendarView.DateSelectionEnd.Value;
            }catch{}
            calendarControl.calendarView.DateSelectionStart = null;
            calendarControl.calendarView.DateSelectionEnd = null;
            expandablePanel1.Expanded = false;
            try
            {
                AsignacionMultipleForm asignacionMultipleForm = new AsignacionMultipleForm();
                asignacionMultipleForm.setUsuario(usuario);
                if (inicio != null && fin != null)
                {
                    asignacionMultipleForm.setInitialDates(inicio.Value, fin.Value);
                }
                DialogResult dialogResult = asignacionMultipleForm.ShowDialog();
                if (dialogResult == DialogResult.OK)
                {
                    List<Asignacion> asignaciones = asignacionMultipleForm.Asignaciones;
                    if(asignaciones.FindAll(element=>element.Aula==null).Count>0){
                        MessageBox.Show("Ha ocurrido un error:\nLas asignaciones deben de estar asignadas un aula.");
                    }
                    else{
                        Conexion conexion = new Conexion();

                        List<Serie> series = asignacionMultipleForm.Series;

                        List<Serie> insertedSeries = new List<Serie>();
                        for (int i = 0; i < series.Count; i++)
                        {
                            if (asignaciones.ToList().FindAll(element => element.SerieDescripcion == series[i].Descripcion).Count > 0)
                            {
                                Serie serie = series[i];
                                conexion.insertSerie(ref serie);
                                insertedSeries.Add(serie);
                            }
                        }
                        for (int i = 0; i < asignaciones.Count; i++)
                        {
                            Asignacion asignacion = asignaciones[i];
                            asignacion.Serie = insertedSeries.Find(element => element.Descripcion == asignacion.SerieDescripcion);
                            conexion.insertAsignacion(ref asignacion);
                            calendarControl.AddAsignacion(asignacion);
                        }
                    }
                }
            }
            catch { }
            //expandablePanel1.Expanded = false;
        }
        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"); }
            }
        }