Example #1
0
        /// <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();
            }
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
        }