Example #1
0
 public calcRanges()
 {
     icm         = new ICM();
     playersData = new double[10, 9];
     stacks      = new double[4];
     ranges      = new double[4];
 }
Example #2
0
        public Game(Player p0, Player p1, Player p2, Player p3, Player p4, Player p5, Player p6, Player p7, Player p8, Player p9, Label iChipSum, Label iBetSum, Label iLabelEVpushCall, Label iLabelEVfoldVal, Label iLabelEVpushCallVal, Label iLabelEVdiffVal)
        {
            icm                = new ICM();
            players            = new Player[10];
            players[0]         = p0;
            players[1]         = p1;
            players[2]         = p2;
            players[3]         = p3;
            players[4]         = p4;
            players[5]         = p5;
            players[6]         = p6;
            players[7]         = p7;
            players[8]         = p8;
            players[9]         = p9;
            labelBetSum        = iBetSum;
            labelChipSum       = iChipSum;
            labelEVpushCall    = iLabelEVpushCall;
            labelEVfoldVal     = iLabelEVfoldVal;
            labelEVpushCallVal = iLabelEVpushCallVal;
            labelEVdiffVal     = iLabelEVdiffVal;

            for (int i = 0; i < 4; i++)
            {
                players[i].chips.Text = "5000";
            }

            for (int i = 4; i < 10; i++)
            {
                players[i].chips.Text = "100";
            }



            playersData = new double[10, 8];
        }
Example #3
0
 public calcRanges()
 {
     icm         = new ICM();
     playersData = new double[10, 9];
     ranges      = new int[10, 2];
     myHand      = new int[2];
     reset();
 }
Example #4
0
 public Game()
 {
     deck       = new int[52];
     myHand     = new int[2];
     oppHand    = new int[2];
     random     = new Random();
     calcranges = new calcRanges();
     icm        = new ICM();
     recognize  = new Recognize();
     reset();
 }
Example #5
0
        internal static void HealthProbe()
        {
            var salsaTableEntity = TableStorage.CleanRecentEntity();
            var client           = new QueueClient(Authentication.Instance.GenevaAutomationConnectionString, Constants.QueueName);

            var messagesInQueue = -1;

            try
            {
                var peek = client.PeekMessages();
                messagesInQueue = peek.Value.Length;
            } catch { }

            if (messagesInQueue == 0)
            {
                foreach (var entity in salsaTableEntity)
                {
                    if (entity.SALsAState == SALsAState.Queued.ToString())
                    {
                        Console.WriteLine("ICM:{0} stuck in Queued state. Will remove and reset.", entity.PartitionKey);
                        TableStorage.RemoveEntity(entity);
                    }
                }
            }

            var allExistingIcms = ICM.GetAllWithTeamsICM(Constants.ICMTeamToTenantLookupTable.Keys.ToList()).value.Select(x => x.Id.ToString()).ToList();
            var allOurIcms      = TableStorage.ListAllEntity().Select(x => x.RowKey).ToList();

            foreach (var icm in allExistingIcms)
            {
                if (!allOurIcms.Contains(icm))
                {
                    FunctionUtility.AddRunToSALsA(int.Parse(icm));
                }
            }
        }
Example #6
0
        public static async Task <HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "internal/status")] HttpRequestMessage req,
            ILogger log, System.Security.Claims.ClaimsPrincipal claimsPrincipal)
        {
            if (Auth.CheckIdentity(req, log, claimsPrincipal, out HttpResponseMessage err) == false)
            {
                return(err);
            }
            ;
            var watch = new System.Diagnostics.Stopwatch();

            watch.Start();

            var icmsDic = new List <SALsAReport.StatusLine>();

            var salsaIncident = SALsA.LivesiteAutomation.TableStorage.ListAllEntity();
            var incidents     = ICM.GetIncidentsWithId(salsaIncident.Select(x => x.PartitionKey).ToList());
            var report        = new SALsAReport();

            if (salsaIncident != null)
            {
                foreach (var run in salsaIncident)
                {
                    if (run.SALsAState == SALsA.General.SALsAState.Ignore.ToString())
                    {
                        continue;
                    }

                    SALsAReport.StatusLine line = new SALsAReport.StatusLine
                    {
                        IcmId = int.Parse(run.PartitionKey),
                        SalsaIngestionTime = run.Timestamp.UtcDateTime,
                        SalsaInternalLog   = run.Log,
                        SalsaLogLink       = run.SALsALog,
                        SalsaStatus        = run.SALsAState
                    };

                    if (incidents.ContainsKey(run.PartitionKey))
                    {
                        line.IcmCreation   = DateTime.Parse(incidents[run.PartitionKey].CreateDate);
                        line.IcmOwningTeam = incidents[run.PartitionKey].OwningTeamId;
                        line.IcmStatus     = incidents[run.PartitionKey].Status;
                    }
                    report.Rows.Add(line);
                }
            }

            var response = new HttpResponseMessage(HttpStatusCode.OK);

            response.Headers.CacheControl = new CacheControlHeaderValue
            {
                NoCache        = true,
                NoStore        = true,
                MustRevalidate = true
            };
            watch.Stop();
            report.Ellapsed  = watch.Elapsed;
            response.Content = new StringContent(Utility.ObjectToJson(report, true), System.Text.Encoding.UTF8, "application/json");

            return(response);
        }
Example #7
0
        public static async Task <HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "status")] HttpRequestMessage req,
            ILogger log, System.Security.Claims.ClaimsPrincipal claimsPrincipal)
        {
            if (Auth.CheckIdentity(req, log, claimsPrincipal, out HttpResponseMessage err) == false)
            {
                return(err);
            }
            ;
            var watch = new System.Diagnostics.Stopwatch();

            watch.Start();

            var icmsDic = new Dictionary <int, StatusLine>();

            var icms      = SALsA.LivesiteAutomation.TableStorage.ListAllEntity();
            var incidents = ICM.GetIncidentsWithId(icms.Select(x => x.PartitionKey).ToList());
            var lst       = new List <string[]>();

            lst.Add(StatusLine.Headers);
            if (icms != null)
            {
                foreach (var run in icms)
                {
                    if (run.SALsAState == SALsA.General.SALsAState.Ignore.ToString())
                    {
                        continue;
                    }

                    StatusLine tuple;
                    if (icmsDic.ContainsKey(int.Parse(run.PartitionKey)))
                    {
                        tuple = icmsDic[int.Parse(run.PartitionKey)];
                    }
                    else
                    {
                        try
                        {
                            var currentIcm = incidents[run.PartitionKey];
                            tuple = new StatusLine(currentIcm.Id, FunctionUtility.ColorICMStatus(currentIcm.OwningTeamId, currentIcm.Status), DateTime.Parse(currentIcm.CreateDate));
                        }
                        catch
                        {
                            tuple = new StatusLine();
                        }
                    }

                    var status  = run.SALsAState;
                    var logPath = run.Log;
                    if (run.Log != null && run.Log.StartsWith("http"))
                    {
                        if (tuple.IcmStatus == "Unknown" && tuple.IcmCreation.HasValue == false)
                        {
                            run.SALsAState  = SALsAState.ICMNotAccessible.ToString();
                            tuple.IcmStatus = FunctionUtility.ColorICMStatus("Request for assistance", Color.Blue);
                            TableStorage.AppendEntity(tuple.IcmId, SALsAState.ICMNotAccessible);
                        }
                    }
                    else
                    {
                        logPath = run.SALsAState == SALsAState.Running.ToString() || run.SALsAState == SALsAState.Queued.ToString() ? "Wait..." : "Unavailable";
                    }
                    status = Utility.UrlToHml(run.SALsAState, run.SALsALog, 20);
                    tuple.Update(run.PartitionKey, status, logPath, run.Timestamp.UtcDateTime);
                    icmsDic[int.Parse(run.PartitionKey)] = tuple;
                }
            }
            var values = icmsDic.Values.ToList();

            values.Sort((y, x) => {
                int ret = DateTime.Compare(x._SalsaInternalIngestion.HasValue ? x._SalsaInternalIngestion.Value : new DateTime(0),
                                           y._SalsaInternalIngestion.HasValue ? y._SalsaInternalIngestion.Value : new DateTime(0));
                return(ret != 0 ? ret : DateTime.Compare(x.IcmCreation.HasValue ? x.IcmCreation.Value : new DateTime(0),
                                                         y.IcmCreation.HasValue ? y.IcmCreation.Value : new DateTime(0)));
            });
            foreach (var value in values)
            {
                if (value.SalsaLogIngestion == "N/A")
                {
                    try
                    {
                        FunctionUtility.AddRunToSALsA(int.Parse(value._icm));
                    }
                    catch { };
                }
            }
            lst.AddRange(values.Select(x => x.ToArray()).ToList());

            var response = new HttpResponseMessage(HttpStatusCode.OK);

            response.Headers.CacheControl = new CacheControlHeaderValue
            {
                NoCache        = true,
                NoStore        = true,
                MustRevalidate = true
            };
            watch.Stop();
            string result = Utility.List2DToHTML(lst, true) + String.Format("<p style=\"text-align: right\">Page generated at : {0}Z (in {1} seconds)</p>", DateTime.UtcNow.ToString("s"), watch.Elapsed.TotalSeconds);

            response.Content = new StringContent(result, System.Text.Encoding.UTF8, "text/html");

            return(response);
        }
Example #8
0
        //Cuando se encuentra un metodo o una clase pero solo son invocados
        private int ObtenerDatosInvocados(RevisaLinea DatosLinea, string LineaOriginal, string Archivo,
                                          HashSet <string> InventarioCM, List <string> Resultado, int NoLinea, string Ruta,
                                          HashSet <string> Librerias, string Extension, int DependenciaID)
        {
            try
            {
                List <string> Subconjunto;

                if ((LineaOriginal.IndexOf(".class") == -1) && ((LineaOriginal.IndexOf("private") > -1) ||
                                                                (LineaOriginal.IndexOf("public") > -1) || (LineaOriginal.IndexOf("protected") > -1) ||
                                                                (LineaOriginal.IndexOf("final") > -1) ||
                                                                (LineaOriginal.IndexOf("static") > -1) ||
                                                                (LineaOriginal.IndexOf("= new") > -1)))
                {
                    string Linea    = LineaOriginal.Replace(" final", string.Empty);
                    bool   Variable = EsVariable(LineaOriginal, 0);
                    Regex  Regex    = new Regex(@"(private \s\w+\s\w+)|(public \s\w+\s\w+)|(protected \s\w+\s\w+)|(private static\s\w+\s\w+)|(public static\s\w+\s\w+)|(protected static\s\w+\s\w+)|(\w+\s\w+|\w+\<\w+\>\s\w+|\w+\[\]\s\w+)\s*= new");
                    Match  Match    = Regex.Match(Linea);
                    if ((Match.Success) && (!Variable))
                    {
                        string Instancia;
                        string Clase;
                        if (LineaOriginal.IndexOf("= new") > -1)
                        {
                            Linea     = Linea.Substring(0, Linea.IndexOf("= new")).Trim();
                            Instancia = Linea.Split(' ').Last();
                            Clase     = Linea.Split(' ').ElementAt(Linea.Split(' ').Length - 2);
                            Clase     = Clase.Replace("[]", string.Empty);

                            foreach (string Libreria in LibreriasArchivo)
                            {
                                string LibreriaAux = Libreria.Split('.').Length <= 1 ? Libreria : Libreria.Split('.').Last();
                                if (LibreriaAux.Length <= 1)
                                {
                                    LibreriaAux = "No Valida";
                                }
                                Regex = new Regex(@"" + LibreriaAux);
                                Match = Regex.Match(LineaOriginal);

                                if (Match.Success)
                                {
                                    string Espacio = Libreria.Split('.').Length == 1 ? Libreria :
                                                     Libreria.Substring(0, Libreria.Length - Libreria.Split('.').Last().Length - 1);

                                    if (!string.IsNullOrEmpty(Clase) && !string.IsNullOrEmpty(Instancia))
                                    {
                                        Instancias.Add(Clase + "|" + Instancia + "|" + Espacio);
                                    }
                                }
                            }
                        }
                        else
                        {
                            Clase = Match.Value.Split(' ').ElementAt(Match.Value.Split(' ').Count() - 2);
                        }

                        if (string.IsNullOrEmpty(UltimoMetodo))
                        {
                            string[] ClaseLista = ListaClases.ElementAt(ListaClases.Count - 1).Split('|');

                            DatosLinea.TipoPadre = "Clase";
                            DatosLinea.BibPadre  = Archivo;
                            DatosLinea.ObjPadre  = ClaseLista[0];
                        }
                        else
                        {
                            DatosLinea.TipoPadre = "Metodo";
                            DatosLinea.BibPadre  = Archivo;
                            DatosLinea.ObjPadre  = UltimoMetodo;
                        }
                        DatosLinea.TipoHijo = "Clase";
                        DatosLinea.BibHijo  = Clase;
                        DatosLinea.ObjHijo  = Clase;

                        Variable = EsVariable(DatosLinea.ObjHijo, 1);
                        if (!string.IsNullOrEmpty(DatosLinea.ObjHijo) && !Variable)
                        {
                            ++DependenciaID;
                            Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty));
                        }
                    }
                }
                else
                {
                    Regex Regex = new Regex(@"\w+\.\w+");
                    Match Match = Regex.Match(LineaOriginal);

                    if (Match.Success)
                    {
                        //Para C#
                        string ObjetoClase   = Match.Value.Split('.').First();
                        string ObjetoMetodo  = Match.Value.Split('.').Last();
                        string ClaseOriginal = string.Empty;
                        Subconjunto = (from ICM in InventarioCM
                                       where ICM.Split('|').First() == ObjetoClase
                                       select ICM).ToList();
                        //Para Java
                        if (Subconjunto.Count == 0)
                        {
                            string Espacio = string.Empty;
                            foreach (string Instancia in Instancias)
                            {
                                if (ObjetoClase == Instancia.Split('|').ElementAt(1).ToString())
                                {
                                    Espacio       = Instancia.Split('|').Last();
                                    ClaseOriginal = Instancia.Split('|').First();
                                }
                            }
                            if (!string.IsNullOrEmpty(Espacio))
                            {
                                Subconjunto = (from ICM in InventarioCM
                                               where ICM.Split('|').First() == Espacio && ICM.Split('|').ElementAt(2) == "Metodo"
                                               select ICM).ToList();
                            }
                        }
                        bool Excepcion = EsExcepcion(LineaOriginal);
                        foreach (string Item in Subconjunto)
                        {
                            Regex = new Regex(@"([^/\\\w<>{}-]|^)" + Item.Split('|').ElementAt(1) + @"([^/\\\w<>{}-]|$)");
                            Match = Regex.Match(LineaOriginal);

                            if ((Match.Success) && (!Excepcion))
                            {
                                if (ListaClases.Count > 0 && Item.Split('|').ElementAt(1) == ObjetoMetodo)
                                {
                                    string[] Clases = ListaClases.ElementAt(ListaClases.Count - 1).Split('|');

                                    DatosLinea.TipoPadre = "Clase";
                                    DatosLinea.BibPadre  = Archivo;
                                    DatosLinea.ObjPadre  = Clases[0];
                                    DatosLinea.TipoHijo  = Item.Split('|').ElementAt(2);
                                    DatosLinea.BibHijo   = string.IsNullOrEmpty(ClaseOriginal) ? Item.Split('|').ElementAt(0) : ClaseOriginal;
                                    DatosLinea.ObjHijo   = Item.Split('|').ElementAt(1);

                                    bool Variable = EsVariable(DatosLinea.ObjHijo, 1);
                                    if (!string.IsNullOrEmpty(DatosLinea.ObjHijo) && !Variable)
                                    {
                                        ++DependenciaID;
                                        Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty));
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if (Librerias.Count > 0)
                        {
                            foreach (string Libreria in Librerias)
                            {
                                string LibreriaAux = Libreria.Split('.').Length <= 1 ? Libreria : Libreria.Split('.').Last();
                                if (LibreriaAux.Length <= 1)
                                {
                                    LibreriaAux = "No Valida";
                                }
                                Regex = new Regex(@"" + LibreriaAux);
                                Match = Regex.Match(LineaOriginal);

                                if (Match.Success)
                                {
                                    string Espacio = Libreria.Split('.').Length == 1 ? Libreria :
                                                     Libreria.Substring(0, Libreria.Length - Libreria.Split('.').Last().Length - 1);
                                    Regex = new Regex(@"" + Match.Value + @"\s*\w+");
                                    Match = Regex.Match(LineaOriginal);
                                    if (Match.Success && Match.Value.Split(' ').Length > 1)
                                    {
                                        string Instancia      = Match.Value.Split(' ').Last();
                                        string ClaseInstancia = Match.Value.Split(' ').First();

                                        if (!string.IsNullOrEmpty(ClaseInstancia) && !string.IsNullOrEmpty(Instancia))
                                        {
                                            Instancias.Add(ClaseInstancia + "|" + Instancia + "|" + Espacio);
                                        }

                                        if (string.IsNullOrEmpty(UltimoMetodo))
                                        {
                                            string[] ClaseLista = ListaClases.ElementAt(ListaClases.Count - 1).Split('|');

                                            DatosLinea.TipoPadre = "Clase";
                                            DatosLinea.BibPadre  = Archivo;
                                            DatosLinea.ObjPadre  = ClaseLista[0];
                                        }
                                        else
                                        {
                                            DatosLinea.TipoPadre = "Metodo";
                                            DatosLinea.BibPadre  = Archivo;
                                            DatosLinea.ObjPadre  = UltimoMetodo;
                                        }
                                        DatosLinea.TipoHijo = "Clase";
                                        DatosLinea.BibHijo  = ClaseInstancia;
                                        DatosLinea.ObjHijo  = ClaseInstancia;

                                        bool Variable = EsVariable(DatosLinea.ObjHijo, 1);
                                        if (!string.IsNullOrEmpty(DatosLinea.ObjHijo) && !Variable)
                                        {
                                            ++DependenciaID;
                                            Resultado.Add(DatosLinea.TipoPadre + "|" + DatosLinea.BibPadre + "|" + DatosLinea.ObjPadre + "|" + DatosLinea.TipoHijo + "|" + DatosLinea.BibHijo + "|" + DatosLinea.ObjHijo + "|" + Ruta + "|" + NoLinea + "|" + Extension + "|" + DependenciaID + "|" + UltimoPadre + "|" + LineaOriginal.Replace("|", string.Empty));
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(DependenciaID);
        }