protected void SetTicketText(ETicket ticket, string value) { switch (ticket) { case ETicket.TAXI: taxiCount.text = value; break; case ETicket.BUS: busCount.text = value; break; case ETicket.UNDERGROUND: undergroundCount.text = value; break; case ETicket.BLACK_TICKET: blackTicketCount.text = value; break; case ETicket.DOUBLE_TICKET: doubleTicketCount.text = value; break; } }
protected string GetTicketValue(Dictionary <ETicket, int> ticketDict, ETicket ticketKey) { if (ticketDict.ContainsKey(ticketKey)) { return(ticketDict[ticketKey].ToString()); } return("0"); }
protected void Current_OnDetectiveTicketRemoved(object sender, ETicket e) { Agent misterX = agentList.FirstOrDefault(p => p.Data.PlayerType == EPlayerType.MISTERX); misterX.AddTickets(e, 1); GameEvents.Current.TicketUpdated(null, new TicketUpdateEventArgs(new List <PlayerData>() { misterX.Data, ((Agent)sender).Data })); }
private void Current_OnTicketSelected(object sender, TicketButton e) { if (e != null && !e.Equals(selectedTicketButton)) { UnselectAll(); e.Select = true; selectedTicketButton = e; selectedTicket = e.GetTicket(); } }
public void AddHistoryItem(int round, Agent agent) { PlayerData agentDataClone = agent.Data.Clone(); ETicket payedTicket = DeterminePayedTicket(round, agentDataClone); HistoryItem item = new HistoryItem(round, payedTicket, agentDataClone); history.Add($"{round}-{agentDataClone.ID}", item); if (round > 0 && agentDataClone.PlayerType == EPlayerType.MISTERX) { historylist.AddVisibleItem(item, detectionRounds.Contains(round)); } }
protected ETicket DeterminePayedTicket(int round, PlayerData playerData) { ETicket returnTicket = ETicket.EMPTY; if (round > 0) { HistoryItem lastEntry = history[$"{round - 1}-{playerData.ID}"]; if (playerData.PlayerType == EPlayerType.DETECTIVE) { returnTicket = playerData.Tickets.Where(ticket => ticket.Value == lastEntry.Data.Tickets[ticket.Key] - 1).FirstOrDefault().Key; } else if (playerData.PlayerType == EPlayerType.MISTERX) { returnTicket = playerData.Tickets.Where(ticket => ticket.Value == lastEntry.Data.Tickets[ticket.Key] - 1).FirstOrDefault().Key; if (returnTicket == ETicket.EMPTY) { List <ETicket> ticketsAdded = history.Where(historyItem => historyItem.Key.StartsWith($"{round-1}-") && !historyItem.Key.EndsWith($"-{playerData.ID}")) .Select(historyItem => historyItem.Value.Ticket).ToList(); Dictionary <ETicket, int> countedTickets = new Dictionary <ETicket, int>(); Enum.GetValues(typeof(ETicket)).Cast <ETicket>().ToList().ForEach(ticket => countedTickets.Add(ticket, 0)); foreach (ETicket ticket in ticketsAdded) { if (countedTickets.ContainsKey(ticket)) { countedTickets[ticket]++; } else { countedTickets.Add(ticket, 1); } } returnTicket = playerData.Tickets.Where(ticket => ticket.Value == lastEntry.Data.Tickets[ticket.Key] + countedTickets[ticket.Key] - 1).FirstOrDefault().Key; } } } return(returnTicket); }
private ErrorNegocio ValidarDatosTicket(ETicket ticket) { ErrorNegocio retorno = null; if (ticket.Encabezado.IdDoc.FchEmis.Date >= DateTime.Now.Date) { retorno = new ErrorNegocio() { Descripcion = "La fecha de emisión no puede ser mayor a la fecha actual" }; return(retorno); } if (String.IsNullOrEmpty(ticket.Encabezado.Emisor.RUCEmisor) || ticket.Encabezado.Emisor.RUCEmisor.Length < 4) { retorno = new ErrorNegocio() { Descripcion = "Ruc inválido " + ticket.Encabezado.Emisor.RUCEmisor }; return(retorno); } return(retorno); }
public TicketEventArgs(string playerID, ETicket ticket, IStreet street) { this.PlayerID = playerID; this.Ticket = ticket; this.Street = street; }
public ResultGuardarTicket GuardarSobreCFEXML(string sobreCFE, string destinatarioEmail, string adenda) { string ruc = ""; DataAccess.DalcCFE db = new DataAccess.DalcCFE(); long recepcionId = long.MinValue; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(sobreCFE); ResultGuardarTicket retorno = new ResultGuardarTicket(); ErrorNegocio error = null; //Convierto el XML en una entidad ETicket ticket = new ETicket(); ticket.Encabezado = this.ConvertToEncabezado(xmlDoc); ticket.Detalle = this.ConvertToDetalle(xmlDoc); ticket.Referencias = this.ConvertToReferencia(xmlDoc); try { //## INICIO - Aplico las validaciones de negocio ## error = this.ValidarDatosTicket(ticket); if (error != null) { retorno.Error = error; return(retorno); } //## FIN - Aplico las validaciones de negocio ## using (TransactionScope scope = new TransactionScope()) { //Guardo la Recepcion recepcionId = db.GuardarRecepcion(destinatarioEmail, "N"); //Guardo el encabezado IdDoc db.GuardarEncabezadoIdDoc(recepcionId, null, recepcionId, ticket.Encabezado.Emisor.CdgDGISucur, ticket.Encabezado.IdDoc.FmaPago, ticket.Encabezado.IdDoc.FchEmis, 1, null, null, 0, ticket.Encabezado.IdDoc.FchEmis, null, null, ticket.Encabezado.IdDoc.TipoCFE, null, null, null, null, null); if (ticket.Encabezado.Receptor.TipoDocRecep.Equals(3)) { ruc = ticket.Encabezado.Receptor.DocRecep; } else { ruc = ticket.Encabezado.Receptor.DocRecepExt; } //Guardo el Receptor db.GuardarEncabezadoReceptor(recepcionId, null, recepcionId, ruc, ticket.Encabezado.Receptor.TipoDocRecep, ticket.Encabezado.Receptor.CodPaisRecep, ruc, ticket.Encabezado.Receptor.RznSocRecep, ticket.Encabezado.Receptor.DirRecep, ticket.Encabezado.Receptor.CiudadRecep, String.Empty, String.Empty, null, null, null, null); //Guardo los totales db.GuardarEncabezadoTotales(recepcionId, null, ticket.Encabezado.Totales.TpoMoneda, ticket.Encabezado.Totales.TpoCambio, ticket.Encabezado.Totales.MntNoGrv, 0, 0, 0, ticket.Encabezado.Totales.MntNetoIvaTasaMin, ticket.Encabezado.Totales.MntNetoIVATasaBasica, 0, null, ticket.Encabezado.Totales.IVATasaMin, ticket.Encabezado.Totales.IVATasaBasica, ticket.Encabezado.Totales.MntIVATasaMin, ticket.Encabezado.Totales.MntIVATasaBasica, 0, ticket.Encabezado.Totales.MntTotal, 0, ticket.Encabezado.Totales.CantLinDet, 0, ticket.Encabezado.Totales.MntPagar, 0, 0, 0); //Guardo el detalle de la factura if (ticket.Detalle != null && ticket.Detalle.Any()) { foreach (Item item in ticket.Detalle) { db.GuardarDetalle(recepcionId, null, item.NroLinDet, null, null, item.IndFact, item.NomItem, null, item.Cantidad, item.UniMed, item.PrecioUnitario, 0, 0, 0, 0, item.MontoItem, null); } } //Guardo la referencia if (ticket.Referencias != null && ticket.Referencias.Any()) { foreach (Referencia r in ticket.Referencias) { db.GuardarReferencia(recepcionId, null, r.NroLinRef, 1, null, r.TpoDocRef, r.Serie, r.NroCFERef, null, null, r.FechaCFEref); } } //Guardo adenda db.GuardarAgenda(recepcionId, adenda); //Asigno la variable para retornarla retorno.RecepcionId = recepcionId; scope.Complete(); } } catch (Exception ex) { throw; } return(retorno); }
public void DetectiveTicketRemoved(object sender, ETicket ticket) { OnDetectiveTicketRemoved?.Invoke(sender, ticket); }