/// <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; } } }
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()); }