コード例 #1
0
ファイル: WebTaskRunner.cs プロジェクト: tisonet/webtasks
        private void RunWebTaskWithoutContext(Func <WebTaskResult> action, WebTask webTask)
        {
            WebTaskController controller = CreateAndStoreWebTaskController(webTask);

            Task.Factory.StartNew <WebTaskResult>(RunWithoutContext, Tuple.Create(controller, action), controller.CancellationToken)
            .ContinueWith(tpl => FinishWithoutContext(tpl));
        }
コード例 #2
0
ファイル: WebTaskRunner.cs プロジェクト: tisonet/webtasks
        private WebTaskController CreateAndStoreWebTaskController(WebTask webTask)
        {
            WebTaskController controller = new WebTaskController(webTask);

            _taskControllers.TryAdd(webTask.Id, controller);

            return(controller);
        }
コード例 #3
0
ファイル: WebTaskRunner.cs プロジェクト: tisonet/webtasks
        public Guid RunWebTask(Func <IWebTaskActionContext, WebTaskResult> action, WebTaskConfiguration configuration)
        {
            WebTask webTask = WebTaskFactory.CreateWebTask(configuration);

            RunWebTaskWithContext(action, webTask);

            return(webTask.Id);
        }
コード例 #4
0
ファイル: WebTaskRunner.cs プロジェクト: tisonet/webtasks
        public Guid RunWebTask(Func <WebTaskResult> action)
        {
            WebTask webTask = WebTaskFactory.CreateWebTaskWithDefaultConfiguration();

            RunWebTaskWithoutContext(action, webTask);

            return(webTask.Id);
        }
コード例 #5
0
ファイル: WebTaskController.cs プロジェクト: tisonet/webtasks
        public WebTaskController(WebTask webTask)
        {
            if (webTask == null)
            {
                throw new ArgumentNullException("webTask");
            }

            _webTask     = webTask;
            _tokenSource = new CancellationTokenSource();
        }
コード例 #6
0
 public MyDatabaseContext.Task WebTypeToLocalType(WebTask theWebTask)
 {
     return(new MyDatabaseContext.Task()
     {
         Date = theWebTask.Date,
         Begin = theWebTask.Begin,
         DefaultTime = theWebTask.DefaultTime,
         FinishTime = theWebTask.FinishTime,
         FinishFlag = theWebTask.FinishFlag,
         Introduction = theWebTask.Introduction,
     });
 }
コード例 #7
0
ファイル: WebTaskFactory.cs プロジェクト: tisonet/webtasks
        public static WebTask CreateWebTask(WebTaskConfiguration configuration)
        {
            WebTask webTask = new WebTask
            {
                Id         = Guid.NewGuid(),
                State      = WebTaskState.Idle,
                Created    = DateTime.UtcNow,
                Expiration = configuration.ResultExpiration,
                Timeout    = configuration.WebTaskTimeout,
                PersistResultWhenPickedOut = configuration.PersistResultWhenPickedOut
            };

            return(webTask);
        }
コード例 #8
0
 public MyDatabaseContext.Task WebTaskToLocal(WebTask webtask)
 {
     return(new MyDatabaseContext.Task()
     {
         ID = webtask.ID,
         Date = webtask.Date,
         Begin = webtask.Begin,
         DefaultTime = webtask.DefaultTime,
         FinishTime = webtask.FinishTime,
         FinishFlag = webtask.FinishFlag,
         Introduction = webtask.Introduction,
         UserID = webtask.UserID
     });
 }
コード例 #9
0
        // TODO: Convert tasks to an ITask object and insert them into the TaskManager
        private void TaskStartClick(object sender, RoutedEventArgs e)
        {
            savelist.Sort();
            // Get the currently selected row using the SelectedRow property.
            var x       = dataGridProxies.SelectedIndex; // get the current index number
            int index   = savelist[x];
            int current = savelist.IndexOf(index);
            //  var q = MyList.Where(X => X.ID == x.ToString()).FirstOrDefault(); // can get all the information on the index
            var item = MyList.FirstOrDefault(X => X.ID == (index - 1).ToString());

            //  Debug.Info(item.ID);
            if (item != null)
            {
                item.Status = "Started";
                //  Debug.Info(item.Status);
            }

            Debug.Info("Product???" + item.Product); // didn't show the proxy info idk y
                                                     //Console.WriteLine("wtf"+item.Proxy);
            Product product = new Product(item.Product, "TODO:GET PRODUCT NAME", int.Parse(item.ID), float.Parse(item.Size, CultureInfo.InvariantCulture.NumberFormat), item.Billing, item.Proxy);

            WebTask webTask = new WebTask(product, ref MyList, index, current, ref dataGridProxies, ref item);

            TaskManager.Instance.Add(product.Name, webTask);

            //// var found = MyList.FirstOrDefault(X => X.ID == (index - 1).ToString());
            //try
            //{
            //    // Debug.Info("webScrapper result: " + result);

            //    MyList.Remove(MyList.Where(i => i.ID == (index - 1).ToString()).Single());
            //    MyList.Insert((current), item);
            //}
            //catch
            //{
            //    // Console.WriteLine(x);
            //    Debug.Error("unknow error");
            //}


            //// MyList.Insert(MyList.IndexOf(q), item);
            ////MyList.Remove(q);
            ////   MyList.IndexOf(); need to fixed the id first
            //// Debug.Info(x.ToString());
            ////Debug.Info(MyList[i].Status);
            //dataGridProxies.ItemsSource = MyList;
        }
コード例 #10
0
        public async Task <bool> UpdateWebTaskAsync(int taskId, int finishFlag, int finishTime, string introduction)
        {
            var identifiedHttpMessageHandler =
                _identityService.GetIdentifiedHttpMessageHandler();
            var updateWebTask = new WebTask {
                FinishFlag = finishFlag, FinishTime = finishTime, Introduction = introduction
            };
            var json = JsonConvert.SerializeObject(updateWebTask);

            using (var httpClient =
                       new HttpClient(identifiedHttpMessageHandler))
            {
                HttpResponseMessage response;
                response = await httpClient.PutAsync(App.ServerEndpoint + "/api/Tasks?id=" + taskId.ToString(), new StringContent(json, Encoding.UTF8, "application/json"));

                return(true);
            }
        }
コード例 #11
0
        void AsyncReceive(IAsyncResult ar)
        {
            WebTask t     = (WebTask)ar.AsyncState;
            var     resp  = t.Req.GetResponse().GetResponseStream();
            int     count = resp.EndRead(ar);

            TraceLogger(String.Format("Received {0} bytes against handle {1}", count, t.Handle));
            t.ReceiveDone = (count == 0);
            if (count > 0)
            {
                t.writeBack(t.Handle, t.ReceiveBuffer, count);
                t.Async = resp.BeginRead(t.ReceiveBuffer, 0, t.ReceiveBuffer.Length, AsyncReceive, t);
            }
            else
            {
                t.Status = (int)((HttpWebResponse)t.Req.GetResponse()).StatusCode;
                t.Async  = null;
            }
        }
コード例 #12
0
        }//ListWebTaskAsync

        public async Task <WebTask> NewWebTaskAsync(string date, string begin, int defaultTime)
        {
            var identifiedHttpMessageHandler =
                _identityService.GetIdentifiedHttpMessageHandler();
            var postWebTask = new WebTask {
                Date = date, Begin = begin, DefaultTime = defaultTime, UserID = 1
            };
            var json = JsonConvert.SerializeObject(postWebTask);

            using (var httpClient =
                       new HttpClient(identifiedHttpMessageHandler))
            {
                HttpResponseMessage response;
                response = await httpClient.PostAsync(App.ServerEndpoint + "/api/Tasks", new StringContent(json, Encoding.UTF8, "application/json"));

                json = await response.Content.ReadAsStringAsync();

                var thisTask = JsonConvert.DeserializeObject <WebTask>(json);

                return(thisTask);
            }
        }
コード例 #13
0
ファイル: UpdatesScreen.cs プロジェクト: dhtdht020/GTTMCube
        void UpdateProgress(WebTask task)
        {
            Request item = game.Downloader.CurrentItem;

            if (item == null || item.Identifier != task.identifier)
            {
                return;
            }
            int progress = game.Downloader.CurrentItemProgress;

            if (progress == buildProgress)
            {
                return;
            }

            buildProgress = progress;
            if (progress >= 0 && progress <= 100)
            {
                view.statusText = buildName + " &a" + progress + "%";
                UpdateStatus();
            }
        }
コード例 #14
0
        private void _IrosHPost(IntPtr handle, ref IrosHPostData data)
        {
            string url   = Marshal.PtrToStringAnsi(data.url);
            string ctype = Marshal.PtrToStringAnsi(data.contentType);

            System.Net.WebRequest req = System.Net.WebRequest.Create(url);
            req.ContentType = ctype;
            //req.Method = data.len > 0 ? "POST" : "GET";
            req.Method = "POST";

            TraceLogger(String.Format("{3}ing {2} bytes to {0} handle {1}", url, handle, data.len, req.Method));

            byte[] buffer = new byte[data.len];
            Marshal.Copy(data.data, buffer, 0, buffer.Length);

            WebTask t = new WebTask()
            {
                Req = req, Handle = handle, writeBack = data.writeBack
            };

            _http[handle] = t;

            AsyncCallback doResponse = ar2 => {
                try {
                    var resp = req.EndGetResponse(ar2);
                    var rs   = req.GetResponse().GetResponseStream();
                    t.Async = rs.BeginRead(t.ReceiveBuffer, 0, t.ReceiveBuffer.Length, AsyncReceive, t);
                } catch (WebException e) {
                    ErrorLogger(String.Format("Error receiving from {0}: {1}", handle, e.ToString()));
                    t.ReceiveDone = true;
                    if (e.Response != null)
                    {
                        t.Status = (int)((HttpWebResponse)e.Response).StatusCode;
                    }
                    else
                    {
                        t.Status = 500;
                    }
                }
                catch (Exception e)
                {
                    ErrorLogger(String.Format("Error receiving from {0}: {1}", handle, e.ToString()));
                    t.ReceiveDone = true;
                    t.Status      = 500;
                }
            };

            t.ReceiveBuffer = new byte[0x10000];

            if (buffer.Length > 0)
            {
                t.Async = req.BeginGetRequestStream(ar => {
                    var s = req.EndGetRequestStream(ar);
                    using (s) {
                        s.Write(buffer, 0, buffer.Length);
                    }
                    t.Completed = t.Size = buffer.Length;
                    TraceLogger(String.Format("Beginning GetResponse for {0}", handle));
                    t.Async = req.BeginGetResponse(doResponse, t);
                }, t);
            }
            else
            {
                TraceLogger(String.Format("Beginning GetResponse [no request data] for {0}", handle));
                t.Async = req.BeginGetResponse(doResponse, t);
            }
        }