public string r_horario(horariosDTO n) { try { List<horarios> ma = new List<horarios>(); ma = bd.horarios.Where(t => t.id_grupo == n.id_grupo && t.jornada == n.jornada && t.dia == n.dia).OrderBy(t => t.horaI).ToList(); if (ma.Count != 0) { string Duplicado=null ; int i = 0; foreach (horarios item in ma) { // NOTA: ESTAS VALIDADCIONES ESTAN A MEDIA. FUNCIONA PERO A VECES DE TOEA. DEBES DE AJUSTARLO LUEGO. string[] HI = item.horaI.ToString().Split(':');// HI es la hora que ya esta en la bd string[] HF = item.horaF.ToString().Split(':'); int HORA_HI = Convert.ToInt16(HI[1]) + (Convert.ToInt16(HI[0]) * 60); int HORA_HF = Convert.ToInt16(HF[1]) + (Convert.ToInt16(HF[0]) * 60); string[] HIn = n.horaI.ToString().Split(':');// HIn es la hora que se pretende agregar string[] HFn = n.horaF.ToString().Split(':'); int HORA_HIn = Convert.ToInt16(HIn[1]) + (Convert.ToInt16(HIn[0]) * 60); int HORA_HFn = Convert.ToInt16(HFn[1]) + (Convert.ToInt16(HFn[0]) * 60); if (HORA_HIn >= HORA_HI && HORA_HIn <= HORA_HF) { Duplicado += "/1"; // true } else if (HORA_HFn >= HORA_HI && HORA_HFn <= HORA_HF) { Duplicado += "/1" ; // true } else { Duplicado += "/0";// false } } // AL FINAL PREGUNTO COMO ESTA LA BANDERA, SI ESTA DISPOBIBLE O NO. De esto no estoy seguro, pero es que no se me ocurre nada mas Boolean Dup = true; int b = 0; string[] duplicado = Duplicado.Split('/'); for (int ii = 1; ii < duplicado.Length; ii++) { if (duplicado[ii] == "1") { b=b+1; } } if (b == 1) { // no agrega por que hierra al menos con uno Dup = true; } if (b == Duplicado.Length || b > 1) { // no agrega por que erra con todos Dup = true; } if (b == 0) { // lo agregamos porque no se duplico Dup = false; } if (Dup == false) { // registramos horarios hh = new horarios(); hh.dia = n.dia; hh.id_grupo = n.id_grupo; hh.id_asignatura = n.id_asignatura; hh.horaI = n.horaI; hh.horaF = n.horaF; hh.jornada = n.jornada; bd.horarios.Add(hh); bd.SaveChanges(); return "¡Registro de horarios de forma éxitosa!"; } else { return "¡Las horas que intenta ingresar presentan un cruce de horarios. Ya hay registros en este intervalo.!"; } } else { // SI NO HAY NADA ENTONCES REGISTRAMOS COMO NUEVO horarios hh = new horarios(); hh.dia = n.dia; hh.id_grupo = n.id_grupo; hh.id_asignatura = n.id_asignatura; hh.horaI = n.horaI; hh.horaF = n.horaF; hh.jornada = n.jornada; bd.horarios.Add(hh); bd.SaveChanges(); return "¡Registro de horarios de forma éxitosa!"; } } catch { return null; } }
public string r_horario(horariosDTO n) { try { List<horarios> ma = new List<horarios>(); ma = bd.horarios.Where(t => t.id_grupo == n.id_grupo && t.jornada == n.jornada && t.dia == n.dia).OrderBy(t => t.horaI).ToList(); if (ma.Count != 0) { string Duplicado = null; int i = 0; foreach (horarios item in ma) { string[] HI = item.horaI.ToString().Split(':'); string[] HF = item.horaF.ToString().Split(':'); int HORA_HI = Convert.ToInt16(HI[1]) + (Convert.ToInt16(HI[0]) * 60); int HORA_HF = Convert.ToInt16(HF[1]) + (Convert.ToInt16(HF[0]) * 60); string[] HIn = n.horaI.ToString().Split(':'); string[] HFn = n.horaF.ToString().Split(':'); int HORA_HIn = Convert.ToInt16(HIn[1]) + (Convert.ToInt16(HIn[0]) * 60); int HORA_HFn = Convert.ToInt16(HFn[1]) + (Convert.ToInt16(HFn[0]) * 60); if (HORA_HIn >= HORA_HI && HORA_HIn <= HORA_HF) Duplicado += "/1"; else if (HORA_HFn >= HORA_HI && HORA_HFn <= HORA_HF) Duplicado += "/1"; else Duplicado += "/0"; } Boolean Dup = true; int b = 0; string[] duplicado = Duplicado.Split('/'); for (int ii = 1; ii < duplicado.Length; ii++) { if (duplicado[ii] == "1") b = b + 1; } if (b == 1) Dup = true; if (b == Duplicado.Length || b > 1) Dup = true; if (b == 0) Dup = false; if (Dup == false) { horarios hh = new horarios(); hh.dia = n.dia; hh.id_grupo = n.id_grupo; hh.id_asignatura = n.id_asignatura; hh.horaI = n.horaI; hh.horaF = n.horaF; hh.jornada = n.jornada; bd.horarios.Add(hh); bd.SaveChanges(); return "¡Registro de horarios de forma éxitosa!"; } else { return "¡Las horas que intenta ingresar presentan un cruce de horarios. Ya hay registros en este intervalo.!"; } } else { horarios hh = new horarios(); hh.dia = n.dia; hh.id_grupo = n.id_grupo; hh.id_asignatura = n.id_asignatura; hh.horaI = n.horaI; hh.horaF = n.horaF; hh.jornada = n.jornada; bd.horarios.Add(hh); bd.SaveChanges(); return "¡Registro de horarios de forma éxitosa!"; } } catch { return null; } }