/// <summary> /// Cargar datos en interfaz. /// </summary> private void loadData() { mainController = new MainController(); //Datos del servidor. textBoxServer.Text = mainController.getAutomaticRingSystem().domainHost; textBoxPort.Text = mainController.getAutomaticRingSystem().domainPort.ToString(); //Horarios. mainController.getAutomaticRingSystem().horaryList.ForEach(h => { if (tabControlHorary.TabPages.Count < configurationParametersModel.numberschedules) { HoraryUserControl horaryUserControl = new HoraryUserControl(h); horaryUserControl.mainController = mainController; horaryUserControl.Dock = DockStyle.Fill; TabPage horaryTabPage = new TabPage(h.name); tabControlHorary.TabPages.Add(horaryTabPage); horaryTabPage.ImageIndex = 0; horaryTabPage.Controls.Add(horaryUserControl); } }); //Sonidos generales. generalRingUserControl.mainController = mainController; if (mainController.getAutomaticRingSystem().generalRingList.Any()) { HoraryModel horary = mainController.getAutomaticRingSystem().generalRingList[0]; generalRingUserControl.horary = horary; generalRingUserControl.loadData(); } }
/// <summary> /// Validar parámetros introducidos en los horarios. /// </summary> /// <returns></returns> private Boolean validateParamsHoraries() { Boolean validParams = true; for (int i = 0; i < this.tabControlHorary.TabPages.Count; i++) { HoraryUserControl horaryUserControl = (this.tabControlHorary.TabPages[i].Controls[0] as HoraryUserControl); if (!horaryUserControl.isValid()) { validParams = false; break; } } return(validParams); }
private void buttonAddHorary_Click(object sender, EventArgs e) { string tabPageName = "Horario"; if (tabControlHorary.TabPages.Count < configurationParametersModel.numberschedules) { if (Dialog.Prompt("Crear nuevo Horario", "Ingrese el nombre del horario:", ref tabPageName) == DialogResult.OK) { TabPage horaryTabPage = new TabPage(tabPageName); HoraryModel horary = new HoraryModel(tabPageName); HoraryUserControl horaryUserControl = new HoraryUserControl(horary); horaryUserControl.Dock = DockStyle.Fill; horaryUserControl.mainController = mainController; tabControlHorary.TabPages.Add(horaryTabPage); horaryTabPage.ImageIndex = 0; horaryTabPage.Controls.Add(horaryUserControl); tabControlHorary.SelectTab(tabControlHorary.TabPages[tabControlHorary.TabCount - 1]); } } else { MessageBox.Show("No se puede crear más horarios, ya exedio el límite licenciado. Por favor póngase en contacto con el proveedor del sistema.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private Boolean save() { buttonSaveAll.Enabled = false; Boolean validData = true; if (!mainController.hasServerParams()) { validData = false; MessageBox.Show("Establezca los parámetros del servidor antes de guardar", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (!validateParamsHoraries()) { validData = false; } else if (!validateParamsGeneralRings()) { validData = false; } else { List <HoraryModel> horaries = new List <HoraryModel>(); List <HoraryModel> generalRings = new List <HoraryModel>(); //validar datos en horarios for (int i = 0; i < this.tabControlHorary.TabPages.Count; i++) { HoraryUserControl horaryUserControl = (this.tabControlHorary.TabPages[i].Controls[0] as HoraryUserControl); if (!horaryUserControl.horary.connectionCallServer.isValid()) { validData = false; MessageBox.Show("Existen horarios con parámetros de la extensión IP incompletos", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); break; } try { horaryUserControl.horary.callServerList = ((List <CallServerModel>)horaryUserControl.bindingSource().DataSource); } catch (Exception e) { BaseUtils.log.Error(e); } horaries.Add(horaryUserControl.horary); } //validar datos en horarios FIN //validar datos en sonidos generales if (validData && !generalRingUserControl.horary.connectionCallServer.isValid()) { validData = false; MessageBox.Show("Sonidos generales con parámetros de la extensión IP incompletos", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } generalRingUserControl.horary.callServerList = ((List <CallServerModel>)generalRingUserControl.bindingSource().DataSource); generalRings.Add(generalRingUserControl.horary); //validar datos en sonidos generales FIN //Validación cruces de horas de ejecución //Dictionary<String, long[]> horaryTime = new Dictionary<string, long[]>(); List <HoraryCallServerUtils> horaryTime = new List <HoraryCallServerUtils>(); // horaries.ForEach(h => { h.callServerList.ForEach(cs => { var startAt = Convert.ToDateTime(cs.startAt); HoraryCallServerUtils horaryCallServerUtils = new HoraryCallServerUtils(); horaryCallServerUtils.Id = h.randomId + cs.randomId; horaryCallServerUtils.NameHorary = h.name; horaryCallServerUtils.StartAt = startAt.Ticks; horaryCallServerUtils.EndAt = startAt.AddSeconds(cs.callTime).Ticks; horaryTime.Add(horaryCallServerUtils); }); }); if (horaryTime.Count > 0) { HoraryCallServerUtils hcs = horaryTime[0]; while (horaryTime.Count > 0) { var finded = horaryTime.Where(ht => !ht.Id.Equals(hcs.Id) && ( (hcs.StartAt <= ht.StartAt && hcs.EndAt >= ht.StartAt) || (hcs.StartAt <= ht.EndAt && hcs.EndAt >= ht.StartAt) || (hcs.StartAt >= ht.StartAt && hcs.StartAt <= ht.EndAt) || (hcs.EndAt >= ht.StartAt && hcs.EndAt <= ht.EndAt)) ); if (finded.Count() > 0) { string horaryName = hcs.NameHorary; finded.ToList().ForEach(f => { if (!f.NameHorary.Equals(hcs.NameHorary)) { horaryName += ", " + f.NameHorary; } }); MessageBox.Show("Existen horarios con horas coincidentes: " + horaryName, "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); validData = false; break; } horaryTime.Remove(hcs); if (horaryTime.Count() > 0) { hcs = horaryTime[0]; } } } if (validData) { mainController.getAutomaticRingSystem().horaryList = horaries; mainController.getAutomaticRingSystem().generalRingList = generalRings; mainController.saveAndRestart(); } } buttonSaveAll.Enabled = true; return(validData); }