/// <summary>
        ///
        /// </summary>
        /// <param name="msg"></param>
        public static async Task HandleMessageAsync(string msg)
        {
            var input = JsonConvert.DeserializeObject <AdminMessageDTO>(msg, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });

            if (input != null)
            {
                switch (input.Event)
                {
                case "CourierSelected":
                    await WebSocketService.CourierSelected(input.CourierId, (int)input.OrderId);

                    break;

                case "OrderChanged":
                    await WebSocketService.OrderChanged(input.CourierId, (int)input.OrderId);

                    break;

                case "ShiftChanged":
                    await WebSocketService.ShiftChanged(input.CourierId);

                    break;

                case "Ping":
                    await WebSocketService.Ping(input.CourierId);

                    break;
                }
            }
        }
Beispiel #2
0
        private static async Task <string> ParseKey(string query)
        {
            var jwToken = HttpUtility.ParseQueryString(query).Get("Bearer");

            // Проверяем это из админки или нет.
            if (jwToken == "admin")
            {
                return(AdminKey);
            }
            ;

            //
            if (jwToken == "observer")
            {
                return("observer");
            }
            ;


            // Проверяем это мобильное приложение курьера или нет
            var courierId = await WebSocketService.GetCourierIdAsync(jwToken);

            if (courierId.HasValue == false)
            {
                return(null);
            }

            return("courier_" + courierId.ToString());
        }