Ejemplo n.º 1
0
        /// <summary>
        /// redirigimos a la página con el nodeId de sesión
        /// </summary>
        /// <param name="context"></param>
        /// <param name="session"></param>
        public void SetSessionState(HttpContext context, IWebSession session)
        {
            string url = UrlUtils.InsertSessionId("", (string)session.Auth,
                                                  context.Request.OriginalRequestUrl);

            url = UrlUtils.RemoveArgs(url);

            context.Reply.RedirectTo(url);
        }
        public void OnDisconnect(IWebSession session)
        {
            //Console.WriteLine(m_LocalNode.GetName() + " - OnDisconnect: " + session.GetRemoteAddress());
            //m_LocalNode.GetLogger().Info("OnClientDisconnect: " + session.GetRemoteAddress());

            if (m_Deliverer != null)
            {
                m_Deliverer.RemoveClient(session.GetRemoteAddress());
            }
        }
Ejemplo n.º 3
0
 public UserController(IWebSession webSession, ILog log, IDatabase database, IUserRepository repository, IUserManagementFacade managementFacade, ICache cache)
     : base(webSession, log)
 {
     m_session          = webSession;
     m_log              = log;
     m_database         = database;
     m_repository       = repository;
     m_managementFacade = managementFacade;
     m_cache            = cache;
 }
Ejemplo n.º 4
0
 public StockEventsController(IWebSession webSession, ILog log, IStockEventRepository eventRepository,
                              IMaterialBatchFacade batchFacade,
                              IMaterialBatchRepository batchRepository, AmountProcessor amountProcessor)
     : base(webSession, log)
 {
     m_eventRepository = eventRepository;
     m_batchFacade     = batchFacade;
     m_batchRepository = batchRepository;
     m_amountProcessor = amountProcessor;
 }
Ejemplo n.º 5
0
        public void AddClient(string clientId, IWebSession client)
        {
            IWebSession oldOne = null;

            if (m_Clients.ContainsKey(clientId))
            {
                m_Clients.TryRemove(clientId, out oldOne);
            }
            m_Clients.TryAdd(clientId, client);
        }
 public void AddSession(IWebSession session)
 {
     lock (sync)
     {
         if (!sessions.ContainsKey(session.Auth))
         {
             sessions.Add(session.Auth, session);
         }
         // ((HtmlSession)his[auth]).d
     }
 }
Ejemplo n.º 7
0
        public static ClaimsIdentity CreateClaimsIdentities(IWebSession userSession)
        {
            ClaimsIdentity claimsIdentity = new ClaimsIdentity();

            claimsIdentity.AddClaim(new Claim("UserId", userSession.UserId.ToString()));
            claimsIdentity.AddClaim(new Claim("SessionId", userSession.Id.ToString()));
            claimsIdentity.AddClaim(new Claim("Username", userSession.Username));
            claimsIdentity.AddClaim(new Claim("FirstName", userSession.FirstName));
            claimsIdentity.AddClaim(new Claim("LastName", userSession.LastName ?? ""));

            return(claimsIdentity);
        }
Ejemplo n.º 8
0
 public VirtualProductsController(IWebSession webSession, ILog log, IVirtualProductRepository virtualProductRepository, IErpRepository erpRepository, ICache cache, IMaterialRepository materialRepository, IVirtualProductFacade virtualProductFacade, IMaterialFacade materialFacade, IUnitConversionHelper conversionHelper, IDatabase database, IMaterialThresholdRepository materialThresholdRepository)
     : base(webSession, log)
 {
     m_virtualProductRepository = virtualProductRepository;
     m_erpRepository            = erpRepository;
     m_cache = cache;
     m_materialRepository          = materialRepository;
     m_virtualProductFacade        = virtualProductFacade;
     m_materialFacade              = materialFacade;
     m_conversionHelper            = conversionHelper;
     m_database                    = database;
     m_materialThresholdRepository = materialThresholdRepository;
 }
 public IWebSession this[WebAuth auth]
 {
     get
     {
         IWebSession ret = null;
         try
         {
             ret = sessions[auth];
         }
         catch { }
         return(ret);
     }
 }
        public void OnDisconnect(IWebSession session)
        {
            //Console.WriteLine(m_LocalNode.GetName() + " - OnDisconnect: " + session.GetRemoteAddress());

            if (m_Clients == null)
            {
                return;
            }

            if (m_Clients != null)
            {
                m_Clients.RemoveClient(session.GetRemoteAddress());
            }
        }
Ejemplo n.º 11
0
 public InvoiceFormsController(IWebSession webSession,
                               ILog log,
                               InvoiceFormsQueryingFacade facade,
                               IInvoiceFormsRepository invoiceFormsRepository,
                               IInvoiceFormsGenerationRunner generationRunner,
                               IInvoiceFormRendererFactory formRendererFactory, IDatabase database)
     : base(webSession, log)
 {
     m_log    = log;
     m_facade = facade;
     m_invoiceFormsRepository = invoiceFormsRepository;
     m_generationRunner       = generationRunner;
     m_formRendererFactory    = formRendererFactory;
     m_database = database;
     m_session  = webSession;
 }
Ejemplo n.º 12
0
        public WebSocketSession FindClientSession(string sessionId)
        {
            if (String.IsNullOrEmpty(sessionId))
            {
                return(null);
            }
            IWebSession session = null;

            lock (m_ClientSessions)
            {
                if (!m_ClientSessions.TryGetValue(sessionId, out session))
                {
                    session = null;
                }
            }
            return(session == null ? null : session as WebSocketSession);
        }
        public void OnDisconnect(IWebSession session)
        {
            //Console.WriteLine(m_LocalNode.GetName() + " - OnDisconnect: " + session.GetRemoteAddress());

            var clientMsg = new
            {
                msg = "client_info",

                client_id = session.GetRemoteAddress(),
                front_end = m_LocalNode.GetName(),
                action    = "disconnect"
            };

            var server = m_LocalNode.GetPublicServer();

            if (server != null && server.IsWorking())
            {
                session.Send(m_LocalNode.GetJsonHelper().ToJsonString(clientMsg));
            }
        }
Ejemplo n.º 14
0
        public static string CreateJwt(
            IWebSession session,
            string jwtSecret,
            int daysValid = 1)
        {
            var tokenHandler = new JwtSecurityTokenHandler();
            var claims       = CreateClaimsIdentities(session);

            var now = DateTime.UtcNow;

            // Create JWToken
            var token = tokenHandler.CreateJwtSecurityToken(subject: claims,
                                                            notBefore: now,
                                                            expires: now.AddDays(daysValid),
                                                            signingCredentials:
                                                            new SigningCredentials(
                                                                new SymmetricSecurityKey(
                                                                    Convert.FromBase64String(jwtSecret)),
                                                                SecurityAlgorithms.HmacSha256Signature));

            return(tokenHandler.WriteToken(token));
        }
Ejemplo n.º 15
0
 public PackingController(
     IWebSession webSession,
     ILog log,
     IPurchaseOrderRepository orderRepository,
     IShipmentProvider shipmentProvider,
     IOrdersFacade ordersFacade,
     IKitProductRepository kitProductRepository,
     IErpClientFactory erpClientFactory,
     IMaterialBatchFacade batchFacade,
     IDatabase database,
     IVirtualProductFacade virtualProductFacade, OrdersSystemConfig config)
     : base(webSession, log)
 {
     m_orderRepository      = orderRepository;
     m_shipmentProvider     = shipmentProvider;
     m_ordersFacade         = ordersFacade;
     m_kitProductRepository = kitProductRepository;
     m_erpClientFactory     = erpClientFactory;
     m_batchFacade          = batchFacade;
     m_database             = database;
     m_virtualProductFacade = virtualProductFacade;
     m_config = config;
 }
        public void OnConnect(IWebSession session)
        {
            //Console.WriteLine(m_LocalNode.GetName() + " - OnConnect: " + session.GetRemoteAddress());

            //System.Diagnostics.Debugger.Break();

            //m_LocalNode.GetLogger().Info("OnClientConnect: " + session.GetRequestPath());

            var clientMsg = new
            {
                msg = "client_info",

                client_id = session.GetRemoteAddress(),
                front_end = m_LocalNode.GetName(),
                action    = "connect"
            };

            var server = m_LocalNode.GetPublicServer();

            if (server != null && server.IsWorking())
            {
                session.Send(m_LocalNode.GetJsonHelper().ToJsonString(clientMsg));
            }
        }
Ejemplo n.º 17
0
 public ShipmentController(IWebSession webSession, ILog log, IOrdersFacade ordersFacade, IShipmentProvider shipmentProvider)
     : base(webSession, log)
 {
     m_ordersFacade     = ordersFacade;
     m_shipmentProvider = shipmentProvider;
 }
Ejemplo n.º 18
0
        private async void Deliver()
        {
            Dictionary <string, List <dynamic> > betResults = new Dictionary <string, List <dynamic> >();
            var dbhelper = m_Node.GetDataHelper();

            using (var cnn = dbhelper.OpenDatabase(m_MainCache))
            {
                using (var cmd = cnn.CreateCommand())
                {
                    dbhelper.AddParam(cmd, "@front_end", m_ServerName);

                    cmd.CommandText = " update tbl_bet_record "
                                      + " set bet_state = 2 " // that means we are going to send them
                                      + " where front_end = @front_end and bet_state = 1 ";

                    cmd.ExecuteNonQuery();
                }

                using (var cmd = cnn.CreateCommand())
                {
                    dbhelper.AddParam(cmd, "@front_end", m_ServerName);

                    // select records which are ready to be sent
                    cmd.CommandText = " select * from tbl_bet_record "
                                      + " where front_end = @front_end and bet_state = 2 ";

                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var item = new
                            {
                                client = reader["client_id"].ToString(),
                                server = reader["server_code"].ToString(),
                                table  = reader["table_code"].ToString(),
                                shoe   = reader["shoe_code"].ToString(),
                                round  = Convert.ToInt32(reader["round_number"].ToString()),
                                pool   = Convert.ToInt32(reader["bet_pool"].ToString()),
                                bet    = Convert.ToDecimal(reader["bet_amount"].ToString()),
                                payout = Convert.ToDecimal(reader["pay_amount"].ToString()),
                                result = Convert.ToInt32(reader["game_result"].ToString())
                            };

                            if (betResults.ContainsKey(item.client))
                            {
                                var list = betResults[item.client];
                                list.Add(item);
                            }
                            else
                            {
                                var list = new List <dynamic>();
                                list.Add(item);
                                betResults.Add(item.client, list);
                            }
                        }
                    }
                }

                using (var cmd = cnn.CreateCommand())
                {
                    dbhelper.AddParam(cmd, "@front_end", m_ServerName);

                    // remove them
                    cmd.CommandText = " delete from tbl_bet_record "
                                      + " where front_end = @front_end and bet_state = 2 ";

                    cmd.ExecuteNonQuery();
                }
            }

            foreach (var item in betResults)
            {
                try
                {
                    var list      = item.Value;
                    var clientMsg = new
                    {
                        msg     = "bet_result",
                        results = list
                    };
                    IWebSession client = null;
                    if (m_Clients.TryGetValue(item.Key, out client))
                    {
                        await client.Send(m_Node.GetJsonHelper().ToJsonString(clientMsg));
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("FES Send-Bet-Result Error - " + ex.ToString());
                }
            }

            if (betResults.Count > 0)
            {
                m_Logger.Info("Sent bet results - " + betResults.Count);
            }
        }
Ejemplo n.º 19
0
 protected AutoControllerBase(IWebSession webSession, ILog log)
     : base(webSession, log)
 {
 }
        public void AddClient(string clientId, string merchantCode, string currencyCode, string playerId, IWebSession session)
        {
            ClientInfo newOne = new ClientInfo();

            newOne.ClientId     = clientId;
            newOne.PlayerId     = playerId;
            newOne.MerchantCode = merchantCode;
            newOne.CurrencyCode = currencyCode;
            newOne.Session      = session;

            ClientInfo oldOne = null;

            lock (m_Clients)
            {
                if (m_Clients.ContainsKey(clientId))
                {
                    oldOne = m_Clients[clientId];
                    m_Clients.Remove(clientId);
                }
                if (session != null)
                {
                    m_Clients.Add(clientId, newOne);
                }
            }

            if (oldOne != null)
            {
                oldOne.Session.CloseConnection();
            }
        }
Ejemplo n.º 21
0
 public FixedCostTypeController(IWebSession webSession, ILog log, IFixedCostRepository repository)
     : base(webSession, log)
 {
     m_repository = repository;
 }
Ejemplo n.º 22
0
 public PackingSettingsController(IWebSession webSession, ILog log, IVirtualProductRepository vpRepo) : base(webSession, log)
 {
     m_vpRepo = vpRepo;
 }
Ejemplo n.º 23
0
 public CommonReportsController(IWebSession webSession, ILog log, IStockReportLoader stockReportLoader) : base(webSession, log)
 {
     m_stockReportLoader = stockReportLoader;
 }
Ejemplo n.º 24
0
 public SuppliersAutoController(IWebSession webSession, ILog log, ISupplierRepository supplierRepository)
     : base(webSession, log)
 {
     m_supplierRepository = supplierRepository;
 }
Ejemplo n.º 25
0
 public InvoiceFilesController(IWebSession webSession, ILog log, InvoiceModelFactory invoiceModelFactory, IInvoiceFileProcessor invoiceFileProcessor) : base(webSession, log)
 {
     m_invoiceModelFactory  = invoiceModelFactory;
     m_invoiceFileProcessor = invoiceFileProcessor;
 }
Ejemplo n.º 26
0
 protected ElsaControllerBase(IWebSession webSession, ILog log)
 {
     WebSession = webSession;
     m_log      = log;
 }
Ejemplo n.º 27
0
 public string CreateJwt(IWebSession session)
 {
     return(JwtHelper.CreateJwt(session, _jwtSecret, 1));
 }
        public void OnConnect(IWebSession session)
        {
            //Console.WriteLine(m_LocalNode.GetName() + " - OnConnect: " + session.GetRemoteAddress());
            //m_LocalNode.GetLogger().Info("OnClientConnect: " + session.GetRequestPath());

            if (m_Clients == null)
            {
                session.CloseConnection();
                return;
            }

            var count        = 0;
            var playerId     = "";
            var merchantCode = "";
            var currencyCode = "";
            var sessionId    = "";
            var parts        = session.GetRequestPath().Split('/');

            foreach (var part in parts)
            {
                if (part.Length <= 0)
                {
                    continue;
                }
                count++;
                if (count == 1)
                {
                    merchantCode = part;
                }
                if (count == 2)
                {
                    currencyCode = part;
                }
                if (count == 3)
                {
                    playerId = part;
                }
                if (count == 4)
                {
                    sessionId = part;
                }
                if (count > 4)
                {
                    break;
                }
            }

            var okay        = false;
            var clientToken = "";

            if (!String.IsNullOrEmpty(merchantCode) &&
                !String.IsNullOrEmpty(currencyCode) &&
                !String.IsNullOrEmpty(playerId) &&
                !String.IsNullOrEmpty(sessionId))
            {
                var dbhelper = m_LocalNode.GetDataHelper();
                using (var cnn = dbhelper.OpenDatabase(m_MainCache))
                {
                    using (var cmd = cnn.CreateCommand())
                    {
                        dbhelper.AddParam(cmd, "@session_id", sessionId);
                        dbhelper.AddParam(cmd, "@merchant_code", merchantCode);
                        dbhelper.AddParam(cmd, "@currency_code", currencyCode);
                        dbhelper.AddParam(cmd, "@player_id", playerId);

                        cmd.CommandText = " select * from tbl_player_session "
                                          + " where merchant_code = @merchant_code "
                                          + " and currency_code = @currency_code "
                                          + " and player_id = @player_id "
                                          + " and session_id = @session_id "
                        ;

                        using (var reader = cmd.ExecuteReader())
                        {
                            if (reader.Read())
                            {
                                okay = true;
                            }
                        }
                    }

                    if (okay)
                    {
                        clientToken = Guid.NewGuid().ToString();
                        using (var cmd = cnn.CreateCommand())
                        {
                            dbhelper.AddParam(cmd, "@client_token", clientToken);
                            dbhelper.AddParam(cmd, "@session_id", sessionId);
                            dbhelper.AddParam(cmd, "@merchant_code", merchantCode);
                            dbhelper.AddParam(cmd, "@currency_code", currencyCode);
                            dbhelper.AddParam(cmd, "@player_id", playerId);

                            cmd.CommandText = " update tbl_player_session "
                                              + " set client_token = @client_token, update_time = NOW() "
                                              + " where merchant_code = @merchant_code "
                                              + " and currency_code = @currency_code "
                                              + " and player_id = @player_id "
                                              + " and session_id = @session_id "
                            ;

                            okay = cmd.ExecuteNonQuery() > 0;
                        }
                    }
                }
            }

            //if (okay) m_LocalNode.GetLogger().Info("Client session is ok: " + sessionId);
            //else m_LocalNode.GetLogger().Info("Invalid session: " + sessionId);

            if (okay && m_Clients != null)
            {
                m_Clients.AddClient(session.GetRemoteAddress(), merchantCode, currencyCode, playerId, session);

                var clientMsg = new
                {
                    msg = "client_info",

                    client_id    = session.GetRemoteAddress(),
                    front_end    = m_LocalNode.GetName(),
                    client_token = clientToken,
                    action       = "connect"
                };

                var server = m_LocalNode.GetPublicServer();
                if (server != null && server.IsWorking())
                {
                    session.Send(m_LocalNode.GetJsonHelper().ToJsonString(clientMsg));
                }
            }
            else
            {
                session.CloseConnection();
            }
        }
 public RecipientListsSettingsController(IWebSession webSession, ILog log, IRecipientListsRepository repository) : base(webSession, log)
 {
     m_repository = repository;
 }
Ejemplo n.º 30
0
 public SaleEventsController(IWebSession webSession, ILog log, ISaleEventRepository saleEventRepository, EventModelProcessor eventModelProcessor) : base(webSession, log)
 {
     m_saleEventRepository = saleEventRepository;
     m_eventModelProcessor = eventModelProcessor;
 }