Exemplo n.º 1
0
        /// <summary>
        /// 邀请群成员
        /// </summary>
        /// <param name="id"></param>
        /// <param name="javascriptCallback"></param>
        public void newGroupMember(string id, IJavascriptCallback javascriptCallback)
        {
            var friend = DBHelper.Instance.allFriend();
            var member = DBHelper.Instance.getGroupAllUser(id);

            foreach (var item in member)
            {
                friend = friend.Where(p => p.userID != item.userID).ToList();
            }
            List <JSData> fed = new List <JSData>();

            foreach (var item in friend)
            {
                var f = new JSData();
                f.id      = item.userID;
                f.name    = item.friend_self_name;
                f.url     = item.avatar;
                f.id_card = item.id_Card;
                fed.Add(f);
            }
            NewMemberData data = new NewMemberData();

            data.friend = fed;
            NewMember result = new NewMember();

            result.success = true;
            result.data    = data;
            using (javascriptCallback)
            {
                javascriptCallback.ExecuteAsync(JsonConvert.SerializeObject(result));
            }
        }
        public void GetCatalogProductRankList(string obj, int start, int limit, IJavascriptCallback javascriptCallback)
        {
            Task.Factory.StartNew(async() =>
            {
                using (javascriptCallback)
                {
                    Result <List <ProductListItemViewModel> > result = new Result <List <ProductListItemViewModel> >(true);
                    ProductListItemQueryViewModel queryEntity        = JsonConvert.DeserializeObject <ProductListItemQueryViewModel>(obj);
                    if (queryEntity == null)
                    {
                        result.Success = false;
                        result.Msg     = "数据转换失败!";
                    }
                    else
                    {
                        using (DbContext db = DbContextFactory.Context)
                        {
                            //找出mapName
                            var dbSet                    = db.Set <SysCatalog>();
                            SysCatalog entity            = dbSet.First(o => o.ID == queryEntity.CatalogID);
                            List <SQLiteParameter> param = new List <SQLiteParameter>()
                            {
                                new SQLiteParameter("@CatalogID", queryEntity.CatalogID),
                                new SQLiteParameter("@RankLevel", queryEntity.RankNumber),
                                new SQLiteParameter("@StartDate", queryEntity.StartDate),
                                new SQLiteParameter("@EndDate", queryEntity.EndDate)
                            };
                            string sql, fromSql, whereSql, totalSql;

                            fromSql  = $"from {entity.CatalogProductTableName} map join tb_Sys_Product p on map.ProductID = p.ID ";
                            whereSql = "where map.CatalogID = @CatalogID ";

                            if (!string.IsNullOrEmpty(queryEntity.Name))
                            {
                                whereSql += $"AND p.Name LIKE @Name ";
                                param.Add(new SQLiteParameter("@Name", $"%{queryEntity.Name}%"));
                            }

                            whereSql += $"AND map.RankLevel = @RankLevel ";
                            whereSql += $"AND map.CreateTime Between @StartDate AND @EndDate ";

                            sql = " select p.Name,p.ImgPath,map.RankTime,map.RankLevel "
                                  + fromSql
                                  + whereSql
                                  + "order by map.CreateTime desc, map.RankLevel asc "
                                  + $"limit {limit} offset {start}; ";

                            totalSql = " select count(1) " + fromSql + whereSql;

                            SQLiteParameter[] paramArray = param.ToArray();

                            result.Data  = db.Database.SqlQuery <ProductListItemViewModel>(sql, paramArray).ToList();
                            result.Total = db.Database.SqlQuery <int>(totalSql, paramArray).FirstOrDefault();
                        }
                    }
                    await javascriptCallback.ExecuteAsync(JsonConvert.SerializeObject(result));
                    //javascriptCallback.ExecuteAsync(JsonConvert.SerializeObject(result));
                }
            });
        }
Exemplo n.º 3
0
        public void DetectAD(string json, IJavascriptCallback callback, IJavascriptCallback progress)
        {
            var task = new Task(() => {
                var files = JsonConvert.DeserializeObject <string[]>(json);

                var notify = new Action <int, int>((used, left) => {
                    progress.ExecuteAsync(used, left);
                });

                var result = CutAD.DetectAD(files, notify);

                var ret = result.Select(kv => {
                    var ranges = kv.Key;
                    var length = kv.Value;
                    return(new {
                        length = length * 100,
                        ads = ranges.Select(r => new {
                            type = r.type,
                            count = r.count,
                            start = r.begin * 100,
                            end = r.end * 100,
                        }).ToArray()
                    });
                }).ToArray();

                callback.ExecuteJsonAsync(null, ret);
            });

            task.Start();
        }
Exemplo n.º 4
0
        public string TestCallbackFromObject(SimpleClass simpleClass)
        {
            if (simpleClass == null)
            {
                return("TestCallbackFromObject dictionary param is null");
            }

            IJavascriptCallback javascriptCallback = simpleClass.Callback;

            if (javascriptCallback == null)
            {
                return("callback property not found or property is not a function");
            }

            const int taskDelay = 1500;

            Task.Run(async() =>
            {
                await Task.Delay(taskDelay);

                if (javascriptCallback != null)
                {
                    using (javascriptCallback)
                    {
                        await javascriptCallback.ExecuteAsync("message from C# " + simpleClass.TestString + " - " + simpleClass.SubClasses[0].PropertyOne);
                    }
                }
            });

            return("waiting for callback execution...");
        }
Exemplo n.º 5
0
        /// <summary>
        /// Get manga list from provider
        /// </summary>
        /// <param name="id">ID Provider</param>
        /// <param name="page">Page Number</param>
        /// <param name="javascriptCallback"></param>
        public void GetMangaList(int id, int page, bool update, IJavascriptCallback javascriptCallback)
        {
            var provider = (from a in Providers
                            where a.Value.Id == id
                            select a.Value).SingleOrDefault();

            Task.Run(async() => {
                using (javascriptCallback)
                {
                    if (provider == null)
                    {
                        await javascriptCallback.ExecuteAsync("");
                    }
                    else
                    {
                        var skipCnt   = (page - 1) * 20;
                        var list      = await provider.GetMangas(update);
                        var maxPage   = Math.Floor(Convert.ToDecimal(list.Count() / 20));
                        var sliceList = list.Skip(skipCnt).Take(20);
                        var response  = ToJson(new {
                            maxPage,
                            data = sliceList,
                        });

                        await javascriptCallback.ExecuteAsync(response);
                    }
                }
            });
        }
Exemplo n.º 6
0
        /// <summary>
        /// Get chapter list from manga
        /// </summary>
        /// <param name="id">ID Provider</param>
        /// <param name="id_manga">ID Manga</param>
        /// <param name="page">Page Number</param>
        /// <param name="javascriptCallback"></param>
        public void GetChapterList(int id, int id_manga, int page, bool update, IJavascriptCallback javascriptCallback)
        {
            Task.Run(async() =>
            {
                using (javascriptCallback)
                {
                    var provider = (from a in Providers
                                    where a.Value.Id == id
                                    select a.Value).SingleOrDefault();

                    if (provider == null)
                    {
                        await javascriptCallback.ExecuteAsync("");
                    }
                    else
                    {
                        var skipCnt  = (page - 1) * 20;
                        var manga    = await provider.GetManga(id_manga);
                        var chapters = await manga.GetChapters(update);
                        var total    = Convert.ToDecimal(chapters.Count());
                        var maxPage  = Math.Floor(total / 20);

                        var sliceList = chapters.Skip(skipCnt).Take(20);
                        var response  = ToJson(new {
                            total,
                            maxPage,
                            data = sliceList
                        });

                        await javascriptCallback.ExecuteAsync(response);
                    }
                }
            });
        }
Exemplo n.º 7
0
 public void DownloadChapter(int chapter_id, IJavascriptCallback javascriptCallback)
 {
     using (javascriptCallback)
     {
         javascriptCallback.ExecuteAsync();
     }
 }
Exemplo n.º 8
0
 public void DownloadManga(int manga_id, IJavascriptCallback javascriptCallback)
 {
     using (javascriptCallback)
     {
         javascriptCallback.ExecuteAsync();
     }
 }
Exemplo n.º 9
0
 public void GetDownloadStatus(int id_download, IJavascriptCallback javascriptCallback)
 {
     using (javascriptCallback)
     {
         javascriptCallback.ExecuteAsync();
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// Get page list from chapter
        /// </summary>
        /// <param name="id">ID Provider</param>
        /// <param name="id_manga">ID Manga</param>
        /// <param name="id_chapter">ID Chapter</param>
        /// <param name="javascriptCallback"></param>
        public void GetPageList(int id, int id_manga, int id_chapter, bool update, IJavascriptCallback javascriptCallback)
        {
            Task.Run(async() =>
            {
                using (javascriptCallback)
                {
                    var provider = (from a in Providers
                                    where a.Value.Id == id
                                    select a.Value).SingleOrDefault();

                    var manga   = await provider?.GetManga(id_manga);
                    var chapter = await manga?.GetChapter(id_chapter);
                    var pages   = await chapter?.GetPages(update);

                    if (pages != null)
                    {
                        var response = ToJson(pages);

                        await javascriptCallback.ExecuteAsync(response);
                    }
                    else
                    {
                        await javascriptCallback.ExecuteAsync("");
                    }
                }
            });
        }
Exemplo n.º 11
0
 public void token(IJavascriptCallback javascriptCallback)
 {
     using (javascriptCallback)
     {
         javascriptCallback.ExecuteAsync(SettingMenager.shard.token);
     }
 }
Exemplo n.º 12
0
        public void register(string sn, IJavascriptCallback callback)
        {
            if (!MachineInfo.CheckSN(sn))
            {
                callback.ExecuteAsync(false, "注册码不能用");
                return;
            }
            string parmasString = string.Format("code={0}&sn={1}", MachineInfo.MachineCode, sn);
            CAjax  ajax         = new CAjax();

            ajax.postJSON("/api/terminal/register", parmasString, (jsonString) =>
            {
                var data = ajax.Deserialize(jsonString);
                if (ajax.getIntValue(data, "code") == 200)
                {
                    Config.SN = sn;
                    (MainForm.ActiveForm as MainForm).HideSNLabel();
                    callback.ExecuteAsync(true);
                }
                else
                {
                    callback.ExecuteAsync(false, "注册失败,请稍后再试");
                }
            },
                          (msg) =>
            {
                callback.ExecuteAsync(false, "网络请求错误,请稍后再试");
            }, "PATCH");
            callback.ExecuteAsync(true);
        }
Exemplo n.º 13
0
 public void getCarGeneralFileChecksumAsync(string carId, string fileName, IJavascriptCallback callback = null)
 {
     Task.Run(() => {
         var checksum = GetAcChecksum(CarsManager.Instance.GetById(carId)?.Location, FileUtils.NormalizePath(fileName));
         callback?.ExecuteAsync(checksum);
     }).Ignore();
 }
Exemplo n.º 14
0
        public async Task <string> JavascriptCallbackEvalPromise(string msg, IJavascriptCallback callback)
        {
            var response = await callback.ExecuteAsync(callback.Id, msg);

            //Echo the response
            return((string)response.Result);
        }
 public async void CalcAsync(
     string name,
     IJavascriptCallback resolve,
     IJavascriptCallback reject)
 {
     Promisify(resolve, reject, () => /* compute i */);
 }
Exemplo n.º 16
0
        public void setName(string name, IJavascriptCallback callback)
        {
            if (name == Config.TerminalName)
            {
                callback.ExecuteAsync(true);
                return;
            }

            string parmasString = string.Format("code={0}&name={1}", MachineInfo.MachineCode, name);
            CAjax  ajax         = new CAjax();

            ajax.postJSON("/api/terminal/name", parmasString, (jsonString) =>
            {
                var data = ajax.Deserialize(jsonString);
                if (ajax.getIntValue(data, "code") == 200)
                {
                    Config.TerminalName = name;
                    callback.ExecuteAsync(true);
                }
                else
                {
                    callback.ExecuteAsync(false, "修改名称失败,请稍后再试");
                }
            },
                          (msg) =>
            {
                callback.ExecuteAsync(false, "网络请求错误,请稍后再试");
            }, "PATCH");
            callback.ExecuteAsync(true);
        }
Exemplo n.º 17
0
            public void startOnlineRace(string ip, int port, int httpPort, IJavascriptCallback callback = null)
            {
                if (_car == null)
                {
                    throw new Exception("Car is not set");
                }

                if (_track == null)
                {
                    throw new Exception("Track is not set");
                }

                ActionExtension.InvokeInMainThread(async() => {
                    var result = await GameWrapper.StartAsync(new Game.StartProperties {
                        BasicProperties = new Game.BasicProperties {
                            CarId   = _car.Id,
                            TrackId = _track.MainTrackObject.Id,
                            TrackConfigurationId = _track.LayoutId,
                            CarSkinId            = _carSkin?.Id ?? _car.SelectedSkin?.Id ?? ""
                        },
                        ModeProperties = new Game.OnlineProperties {
                            Guid           = SteamIdHelper.Instance.Value,
                            ServerIp       = ip,
                            ServerPort     = port,
                            ServerHttpPort = httpPort,
                            Password       = InternalUtils.GetRaceUPassword(_track.IdWithLayout, ip, port),
                            RequestedCar   = _car.Id
                        }
                    });
                    callback?.ExecuteAsync(result?.IsNotCancelled);
                }).Ignore();
            }
Exemplo n.º 18
0
 public void TestJSCallback(IJavascriptCallback javascriptCallback)
 {
     using (javascriptCallback)
     {
         javascriptCallback.ExecuteAsync("Hello from winforms and C# land!");
     }
 }
Exemplo n.º 19
0
 public void Execute(IJavascriptCallback callback, string sql, IDictionary <string, object> param = null)
 {
     m_Lock.EnterReadLock();
     try
     {
         using (var C = new SQLiteCommand(sql, m_Connection))
         {
             if (param != null)
             {
                 foreach (var prop in param)
                 {
                     C.Parameters.Add(new SQLiteParameter("@" + prop.Key, prop.Value));
                 }
             }
             using (var R = C.ExecuteReader())
             {
                 while (R.Read())
                 {
                     var row = new object[R.FieldCount];
                     R.GetValues(row);
                     callback.ExecuteAsync(row);
                 }
             }
         }
     }
     finally
     {
         m_Lock.ExitReadLock();
     }
 }
 public void TestJSCallback(IJavascriptCallback javascriptCallback)
 {
     using (javascriptCallback)
     {
         javascriptCallback.ExecuteAsync("Hello from winforms and C# land!");
     }
 }
Exemplo n.º 21
0
Arquivo: CAjax.cs Projeto: Jitlee/mixc
        /// <summary>
        /// GET JSON文本
        /// </summary>
        /// <param name="api">api</param>
        /// <param name="success">成功回调</param>
        /// <param name="fail">失败回调</param>
        public void getJSON(string api, IJavascriptCallback success = null, IJavascriptCallback fail = null)
        {
            // 本地数据
            if (api.IndexOf("data/") == 0)
            {
                string filePath = Path.Combine(Config.H5Path, api.Replace("/", "\\"));
                if (File.Exists(filePath))
                {
                    string jsonString = File.ReadAllText(filePath);
                    if (success != null)
                    {
                        success.ExecuteAsync(jsonString);
                    }
                    return;
                }
            }

            this.getJSON(api, (jsonString) =>
            {
                if (success != null)
                {
                    success.ExecuteAsync(jsonString);
                }
            }, (message) =>
            {
                if (fail != null)
                {
                    fail.ExecuteAsync(message);
                }
            });
        }
Exemplo n.º 22
0
        public void Play(string filename, int start, int end, IJavascriptCallback complete)
        {
            var task = new Task(() => {
                Stop();
                var ffplayPath = Path.Combine(Environment.CurrentDirectory, "../ffmpeg/ffplay.exe");

                ffplayProcess = new Process();
                ffplayProcess.StartInfo.FileName = ffplayPath;
                var fstart    = (float)start / 1000;
                var fend      = (float)end / 1000;
                var duration  = fend - fstart;
                var arguments = String.Format(
                    "-i \"{0}\" -ss {1} -t {2} -nodisp -autoexit",
                    filename.Replace("\"", "\\\""),
                    fstart,
                    duration
                    );
                Console.WriteLine(arguments);
                ffplayProcess.StartInfo.Arguments              = arguments;
                ffplayProcess.StartInfo.UseShellExecute        = false;
                ffplayProcess.StartInfo.RedirectStandardError  = true;
                ffplayProcess.StartInfo.RedirectStandardOutput = true;
                ffplayProcess.StartInfo.CreateNoWindow         = true;
                ffplayProcess.Start();

                ffplayProcess.StandardError.ReadToEnd();
                ffplayProcess.StandardOutput.ReadToEnd();
                ffplayProcess.WaitForExit();
                ffplayProcess = null;
                complete.ExecuteAsync();
            });

            task.Start();
        }
Exemplo n.º 23
0
 public void userId(IJavascriptCallback javascriptCallback)
 {
     using (javascriptCallback)
     {
         javascriptCallback.ExecuteAsync(SettingMenager.shard.userID);
     }
 }
Exemplo n.º 24
0
 public void AddListener([CanBeNull] string method, [CanBeNull] IJavascriptCallback callback)
 {
     if (callback == null)
     {
         throw new ArgumentException("callback не может быть null");
     }
     if (callback.IsDisposed || !callback.CanExecute)
     {
         throw new ArgumentException(string.Format("{0}.IsDisposed = {1} или {2}.CanExecute = {3}", (object)nameof(callback), (object)callback.IsDisposed, (object)nameof(callback), (object)callback.CanExecute));
     }
     if (string.IsNullOrWhiteSpace(method))
     {
         throw new ArgumentException("method не может быть null");
     }
     if (!this._listeners.ContainsKey(method))
     {
         this._listeners.TryAdd(method, new HashSet <IJavascriptCallback>()
         {
             callback
         });
     }
     else
     {
         this._listeners[method].Add(callback);
     }
 }
Exemplo n.º 25
0
        public void PlayVideo(string videoUrl, string tweetUrl, string username, IJavascriptCallback callShowOverlay)
        {
            string playerPath = Config.VideoPlayerPath;

            if (playerPath == null || !File.Exists(playerPath))
            {
                if (videoPlayer == null)
                {
                    videoPlayer = new VideoPlayer(this);
                    videoPlayer.ProcessExited += (sender, args) => browser.HideVideoOverlay(true);
                }

                callShowOverlay.ExecuteAsync();
                callShowOverlay.Dispose();

                videoPlayer.Launch(videoUrl, tweetUrl, username);
            }
            else
            {
                callShowOverlay.Dispose();

                string quotedUrl  = '"' + videoUrl + '"';
                string playerArgs = Config.VideoPlayerPathArgs == null ? quotedUrl : Config.VideoPlayerPathArgs + ' ' + quotedUrl;

                try{
                    using (Process.Start(playerPath, playerArgs)){}
                }catch (Exception e) {
                    Program.Reporter.HandleException("Error Opening Video Player", "Could not open the video player.", true, e);
                }
            }

            AnalyticsFile.VideoPlays.Trigger();
        }
 public async void CalcAsync(
     string name,
     IJavascriptCallback resolve,
     IJavascriptCallback reject)
 {
     try
     {
         if (resolve.IsDisposed)
         {
             return;
         }
         int i = /* compute i */;
         if (!resolve.IsDisposed)
         {
             await resolve.ExecuteAsync(i);
         }
     }
     catch (Exception e)
     {
         if (!reject.IsDisposed)
         {
             await reject.ExecuteAsync(e.ToString());
         }
     }
 }
Exemplo n.º 27
0
 public void getCarDataChecksumAsync(string carId, IJavascriptCallback callback = null)
 {
     Task.Run(() => {
         var checksum = GetAcChecksum(CarsManager.Instance.GetById(carId)?.Location, @"data.acd");
         callback?.ExecuteAsync(checksum);
     }).Ignore();
 }
Exemplo n.º 28
0
 public void ExecuteInUI(Control controlToInvoke, IJavascriptCallback callback, params object[] param)
 {
     //AutoResetEvent JSSyncAutoResetEvent = new AutoResetEvent(false);
     controlToInvoke.InvokeOnUiThreadIfRequired(() =>
     {
         var task = callback.ExecuteAsync(param);
     });
 }
Exemplo n.º 29
0
            /// <summary>
            /// 获取信息
            /// </summary>
            /// <param name="callback">回调函数</param>
            public void getInfo(IJavascriptCallback callback)
            {
                mybgw.runDoWork("getInfo", callback);

                //MessageBox.Show("我是webform框架弹出的");
                ////执行前台的回调函数
                //callback.ExecuteAsync("这是webform调用的");
            }
Exemplo n.º 30
0
 //后台执行完成事件
 private void Bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (e.Result != null)
     {
         IJavascriptCallback cb = (IJavascriptCallback)e.Result;
         //执行回调
         cb.ExecuteAsync("123");
     }
 }
Exemplo n.º 31
0
        public void create(IJavascriptCallback javascriptCallback)
        {
            NewGroupForm form = (NewGroupForm)Application.OpenForms["NewGroupForm"];

            using (javascriptCallback)
            {
                javascriptCallback.ExecuteAsync(1);
            }
        }
Exemplo n.º 32
0
        public void TestCallback(IJavascriptCallback javascriptCallback)
        {
            const int taskDelay = 1500;

            Task.Run(async () =>
            {
                await Task.Delay(taskDelay);

                using (javascriptCallback)
                {
                    await javascriptCallback.ExecuteAsync("This callback from C# was delayed " + taskDelay + "ms");
                }
            });
        }
        public void TestCallbackStruct(IJavascriptCallback javascriptCallback)
        {
            const int taskDelay = 500;

            Task.Run(async () =>
            {
                await Task.Delay(taskDelay);

                using (javascriptCallback)
                {
                    CallbackResponseStruct response = new CallbackResponseStruct("Test");
                    await javascriptCallback.ExecuteAsync(response);
                }
            });
        }
Exemplo n.º 34
0
        public void TestCallback(IJavascriptCallback javascriptCallback)
        {
            const int taskDelay = 1500;

            Task.Run(async () =>
            {
                await Task.Delay(taskDelay);

                using (javascriptCallback)
                {
                    //NOTE: Classes are not supported, simple structs are
                    var response = new CallbackResponseStruct("This callback from C# was delayed " + taskDelay + "ms");
                    await javascriptCallback.ExecuteAsync(response);
                }
            });
        }
        public void TestCallbackClass(IJavascriptCallback javascriptCallback)
        {
            const int taskDelay = 500;

            Task.Run(async () =>
            {
                await Task.Delay(taskDelay);

                using (javascriptCallback)
                {
                    CallbackResponseClass response = new CallbackResponseClass("Test");
                    try
                    {
                        javascriptCallback.ExecuteAsync(response);
                    }
                    catch (Exception ex)
                    {
                        javascriptCallback.ExecuteAsync(string.Format("Error: {0}", ex.Message));
                    }
                }
            });
        }
        public void TestCallbackException(IJavascriptCallback errorCallback, IJavascriptCallback errorCallbackResult)
        {
            const int taskDelay = 500;

            Task.Run(async () =>
            {
                await Task.Delay(taskDelay);

                using (errorCallback)
                {
                    JavascriptResponse result = await errorCallback.ExecuteAsync("This callback from C# was delayed " + taskDelay + "ms");
                    string resultMessage;
                    if (result.Success)
                    {
                        resultMessage = "Fatal: No Exception thrown in error callback";
                    }
                    else
                    {
                        resultMessage = "Exception Thrown: " + result.Message;
                    }
                    await errorCallbackResult.ExecuteAsync(resultMessage);
                }
            });
        }