/// <summary>
 /// Genera AOG de manera aleatoria entre dos fechas.
 /// </summary>
 /// <param name="fechaIni">Fecha inicio</param>
 /// <param name="fechaFin">Fecha término</param>
 /// <param name="infoAOG">Información de AOG</param>
 internal void GenerarAOGs(DateTime fechaIni, DateTime fechaFin, SerializableDictionary <string, DataDisrupcion> infoAOG)
 {
     ClasificarBackups(fechaIni, fechaFin);
     foreach (string flota in _backups_clasificados.Keys)
     {
         _AOGs.Add(flota, new Dictionary <string, Dictionary <DateTime, double> >());
         foreach (string origen in _backups_clasificados[flota].Keys)
         {
             _AOGs[flota].Add(origen, new Dictionary <DateTime, double>());
             foreach (DateTime fecha in _backups_clasificados[flota][origen].Keys)
             {
                 _AOGs[flota][origen].Add(fecha, 0);
                 string key = flota + "_" + origen + "_" + fecha.Month.ToString();
                 if (infoAOG.ContainsKey(key))
                 {
                     DataDisrupcion data     = infoAOG[key];
                     double         dias_AOG = Distribuciones.GenerarAleatorio(_rdm, DistribucionesEnum.Normal, data.Prob, data.Media, data.Desvest, 0, 1);
                     _AOGs[flota][origen][fecha] = dias_AOG * 24;
                 }
                 else
                 {
                     //No hay info de AOG para cierta flota - origen y mes. No se hace nada.
                 }
                 UsarBackupsPorAOG(_backups_clasificados[flota][origen][fecha], _AOGs[flota][origen][fecha]);
             }
         }
     }
 }
Example #2
0
 /// <summary>
 /// Carga información de AOG
 /// </summary>
 /// <param name="data">Tabla con la información de AOG's</param>
 public void CargarInfoAOG(DataTable data)
 {
     foreach (DataRow row in data.Rows)
     {
         if (data.Rows.IndexOf(row) >= 1 && row[0].ToString().ToCharArray().Length > 0)
         {
             object[]       valores = row.ItemArray;
             string         key     = valores[0].ToString() + "_" + valores[1].ToString() + "_" + valores[2].ToString();
             DataDisrupcion info    = new DataDisrupcion(Convert.ToDouble(valores[3].ToString().Replace('.', ',')), Convert.ToDouble(valores[4].ToString().Replace('.', ',')), Convert.ToDouble(valores[5].ToString().Replace('.', ',')));
             _info_AOG.Add(key, info);
         }
     }
 }