/// <summary> /// Implementa Save_button_Click /// </summary> protected override void SubmitAction() { if (((ComboBoxSource)Promocion_O_CB.SelectedItem).Oid == 0 || ((ComboBoxSource)Promocion_D_CB.SelectedItem).Oid == 0) { MessageBox.Show("Debe seleccionar promociones de origen y destino válidas"); return; } if (((ComboBoxSource)Promocion_O_CB.SelectedItem).Oid == ((ComboBoxSource)Promocion_D_CB.SelectedItem).Oid) { MessageBox.Show("Debe seleccionar promociones de origen y destino diferentes"); return; } Submodulos_Instructores_Promociones capacidad_origen = Entity.Promociones.GetByOidPromocion(((ComboBoxSource)Promocion_O_CB.SelectedItem).Oid).Submodulos; long oid_promocion = ((ComboBoxSource)Promocion_D_CB.SelectedItem).Oid; Instructor_Promocion promo = null; foreach (Instructor_Promocion item in Entity.Promociones) { if (item.OidPromocion == oid_promocion) { promo = item; break; } } if (promo == null) { promo = Instructor_Promocion.NewChild(Entity); promo.MarkItemNew(); promo.OidPromocion = oid_promocion; Entity.Promociones.AddItem(promo); } foreach (Submodulo_Instructor_Promocion item in capacidad_origen) { Submodulo_Instructor_Promocion elem = Submodulo_Instructor_Promocion.NewChild(promo); elem.MarkItemNew(); elem.OidPromocion = oid_promocion; elem.OidSubmodulo = item.OidSubmodulo; elem.OidModulo = item.OidModulo; elem.OidInstructor = item.OidInstructor; elem.Prioridad = item.Prioridad; if (!promo.Submodulos.IsDuplicated(elem)) { promo.Submodulos.Add(elem); } } _action_result = DialogResult.OK; Close(); }
private void Submodulo_Instructor_Grid_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (this is InstructorUIForm) { switch (Submodulo_Instructor_Grid.Columns[e.ColumnIndex].Name) { case ("Modulo_CBC"): { if (Submodulo_Instructor_Grid["Modulo_CBC", e.RowIndex].Value != null) { if (Datos_Promociones.Current != null && ((Instructor_Promocion)Datos_Promociones.Current).OidPromocion > 0) { //se está modificando una línea ya existente if (lista_sources.Count > e.RowIndex) { lista_sources[e.RowIndex] = _combo_modulos.GetFilteredChilds((long)Submodulo_Instructor_Grid["Modulo_CBC", e.RowIndex].Value); } else //hay que añadir un nuevo datasource a la lista { lista_sources.Add(_combo_modulos.GetFilteredChilds((long)Submodulo_Instructor_Grid["Modulo_CBC", e.RowIndex].Value)); } ((DataGridViewComboBoxCell)(Submodulo_Instructor_Grid["Submodulo_CBC", e.RowIndex])).DataSource = lista_sources[e.RowIndex]; ((Submodulo_Instructor_Promocion)Submodulo_Instructor_Grid.Rows[e.RowIndex].DataBoundItem).OidPromocion = ((Instructor_Promocion)Datos_Promociones.Current).OidPromocion; } } } break; case ("Submodulo_CBC"): { if (Datos_Promociones.Current == null) { return; } Instructor_Promocion selected = Entity.Promociones.GetItem(((Instructor_Promocion)Datos_Promociones.Current).Oid); if (selected == null) { foreach (Instructor_Promocion item in Entity.Promociones) { if (item.Oid == ((Instructor_Promocion)Datos_Promociones.Current).Oid) { selected = item; break; } } } Submodulos_Instructores_Promociones lista = selected.Submodulos; if (lista.Count <= e.RowIndex) { lista.Add((Submodulo_Instructor_Promocion)Submodulo_Instructor_Grid.Rows[e.RowIndex].DataBoundItem); } lista[e.RowIndex].OidInstructorPromocion = ((Instructor_Promocion)Datos_Promociones.Current).Oid; lista[e.RowIndex].OidInstructor = Entity.Oid; } break; } } }