public async Task <MasterPageViewModel> TotalGetAllPaging(GetWorkTrackingPagingRequest request)
        {
            var sessions = Core.Token;

            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions);
            var response = await _client.GetAsync($"/api/worktrackings/TotalGetAllPaging?pageIndex=" +
                                                  $"{request.PageIndex}&pageSize={request.PageSize}&Year={request.Year}" +
                                                  $"&MONTH={request.MONTH}&Type={request.Type}"
                                                  );

            var body = await response.Content.ReadAsStringAsync();

            var dataReturn = JsonConvert.DeserializeObject <MasterPageViewModel>(body);

            if (dataReturn != null)
            {
                return(dataReturn);
            }
            else
            {
                MasterPageViewModel data = new MasterPageViewModel
                {
                    TotalRecordes = 0
                };
                return(data);
            }
        }
Ejemplo n.º 2
0
        public async Task <UpdateStatusViewModelList> SyncFromTrackingWorkToWork(GetWorkTrackingPagingRequest request)
        {
            var sessions = Core.Token;

            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions);
            var json        = JsonConvert.SerializeObject(request);
            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
            var response    = await _client.PostAsync($"/api/works/SyncFromTrackingWorkToWork", httpContent);

            var result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                return(JsonConvert.DeserializeObject <UpdateStatusViewModelList>(result));
            }
            return(null);
        }
        public async Task <ApiResult <PagedResult <WorkTrackingAggregateViewModel> > > GetArreggateMasterList(GetWorkTrackingPagingRequest request)
        {
            var data = await _apiClient.GetArreggateMasterList(request);

            return(data);
        }
        public async Task <MasterPageViewModel> TotalGetAllPaging(GetWorkTrackingPagingRequest request)
        {
            var data = await _apiClient.TotalGetAllPaging(request);

            return(data);
        }
        public async Task <ApiResult <PagedResult <WorkTrackingViewModel> > > GetAllPaging(GetWorkTrackingPagingRequest request)
        {
            var data = await _apiClient.GetAllPaging(request);

            return(data);
        }
        public async Task <UpdateStatusViewModelList> SyncFromTrackingWorkToWork(GetWorkTrackingPagingRequest request)
        {
            var result = await _apiClient.SyncFromTrackingWorkToWork(request);

            return(result);
        }
        public async Task <ApiResult <PagedResult <WorkTrackingAggregateViewModel> > > GetArreggateMasterList(GetWorkTrackingPagingRequest request)
        {
            var sessions = Core.Token;

            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions);
            var response = await _client.GetAsync($"/api/worktrackings/GetArreggateMasterList?pageIndex=" +
                                                  $"{request.PageIndex}&pageSize={request.PageSize}&Year={request.Year}" +
                                                  $"&MONTH={request.MONTH}&Type={request.Type}"
                                                  );

            var body = await response.Content.ReadAsStringAsync();

            var dataReturn = JsonConvert.DeserializeObject <PagedResult <WorkTrackingAggregateViewModel> >(body);

            if (dataReturn != null)
            {
                ApiSuccessResult <PagedResult <WorkTrackingAggregateViewModel> > data = new ApiSuccessResult <PagedResult <WorkTrackingAggregateViewModel> >
                {
                    IsSuccessed = true,
                    Message     = "search work is successful",
                    ResultObj   = dataReturn
                };
                return(data);
            }
            else
            {
                ApiSuccessResult <PagedResult <WorkTrackingAggregateViewModel> > data = new ApiSuccessResult <PagedResult <WorkTrackingAggregateViewModel> >
                {
                    IsSuccessed = false,
                    Message     = "search work is failure",
                    ResultObj   = null
                };
                return(data);
            }
        }
Ejemplo n.º 8
0
        private async void SysnData()
        {
            try
            {
                isSyncData = true;
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbOperation.Text = "Sync...";
                }));
                DateTime TheFiestTime = DateTime.Now;
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    progressBarImport.Value = 0;
                    lbPercent.Text          = "0%";
                }));

                GetWorkTrackingPagingRequest requestUpdate = new GetWorkTrackingPagingRequest();
                requestUpdate.PageIndex = 1;
                requestUpdate.Year      = yearUpdate;
                requestUpdate.MONTH     = monthUpdate;
                requestUpdate.Type      = typeUpdate;
                requestUpdate.PageSize  = Core.LimitRequestTrackingWork;
                var masterUpdte = await controller.TotalGetAllPaging(requestUpdate);

                if (masterUpdte == null || masterUpdte.TotalRecordes == 0)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbInfo.Text = $"Data that update is empty, so not sync, please input data source";
                    }));
                    isSyncData = false;
                    return;
                }
                else
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbInfo.Text = $"Proccessing sync...";
                    }));
                    ctMenuStripMain.Invoke(new MethodInvoker(delegate
                    {
                        sysncToWorkToolStripMenuItem.Enabled = false;
                    }));
                    btnSearch.Invoke(new MethodInvoker(delegate
                    {
                        btnSearch.Enabled = false;
                    }));
                    btnGetDetail.Invoke(new MethodInvoker(delegate
                    {
                        btnGetDetail.Enabled = false;
                    }));
                }
                int totalRequest = 0;
                if (masterUpdte.TotalRecordes % Core.LimitRequestTrackingWork == 0)
                {
                    totalRequest = masterUpdte.TotalRecordes / Core.LimitRequestTrackingWork;
                }
                else
                {
                    totalRequest = masterUpdte.TotalRecordes / Core.LimitRequestTrackingWork + 1;
                }
                int index = 0;
                int currentTimeRequest = 0;
                int totalSuccess       = 0;
                while (index < masterUpdte.TotalRecordes)
                {
                    DateTime startTime = DateTime.Now;
                    currentTimeRequest++;
                    #region Creat request
                    index += Core.LimitRequestTrackingWork;
                    if (index > masterUpdte.TotalRecordes)
                    {
                        index = masterUpdte.TotalRecordes;
                    }
                    requestUpdate.PageIndex = currentTimeRequest;
                    var data = await controllerWork.SyncFromTrackingWorkToWork(requestUpdate);

                    #endregion

                    #region Update UI
                    if (data != null || data.Items != null)
                    {
                        totalSuccess += data.Items.Where(p => p.Status == Utilities.Common.UpdateStatus.Successfull).Count();
                        DateTime endtime = DateTime.Now;
                        richinfo.Invoke(new MethodInvoker(delegate
                        {
                            richinfo.Text  = "";
                            richinfo.Text += $"Total record(s): {data.Items.Count}{Environment.NewLine}";
                            richinfo.Text += $"Page index: {currentTimeRequest}{Environment.NewLine}";
                            richinfo.Text += $"Page count: {totalRequest}{Environment.NewLine}";
                            richinfo.Text += $"Page size: {Core.LimitRequestTrackingWork}{Environment.NewLine}";
                            richinfo.Text += $"Start time(search): {startTime.ToString("HH:mm:ss")}{Environment.NewLine}";
                            richinfo.Text += $"End time(search): {endtime.ToString("HH:mm:ss")}{Environment.NewLine}";
                            richinfo.Text += $"Time response(sec(s)): {(endtime - startTime).TotalSeconds.ToString("##0.00")}{Environment.NewLine}";
                        }));
                    }


                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        if (currentTimeRequest > totalRequest)
                        {
                            currentTimeRequest = totalRequest;
                        }
                        float values            = (float)currentTimeRequest / (float)totalRequest * 100;
                        progressBarImport.Value = (int)values;
                        lbPercent.Text          = $"{((int)values).ToString()}%";
                    }));
                    #endregion
                }
                #region update Ui when finish

                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbInfo.Text  = $"sync tracking work to work be finish, total time {(DateTime.Now - TheFiestTime).TotalSeconds}(s)";
                    lbInfo.Text += $", total sync success/total: {totalSuccess}/{masterUpdte.TotalRecordes}";
                }));
                ctMenuStripMain.Invoke(new MethodInvoker(delegate
                {
                    sysncToWorkToolStripMenuItem.Enabled = true;
                }));
                btnSearch.Invoke(new MethodInvoker(delegate
                {
                    btnSearch.Enabled = true;
                }));
                btnGetDetail.Invoke(new MethodInvoker(delegate
                {
                    btnGetDetail.Enabled = true;
                }));
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbOperation.Text = "Sync is finish";
                }));
                #endregion

                isSyncData = false;
            }
            catch (Exception)
            {
                if (ctMenuStripMain != null && !ctMenuStripMain.IsDisposed)
                {
                    ctMenuStripMain.Invoke(new MethodInvoker(delegate
                    {
                        sysncToWorkToolStripMenuItem.Enabled = true;
                    }));
                }
                if (btnGetDetail != null && !btnGetDetail.IsDisposed)
                {
                    btnGetDetail.Invoke(new MethodInvoker(delegate
                    {
                        btnGetDetail.Enabled = true;
                    }));
                }
                if (btnSearch != null && !btnSearch.IsDisposed)
                {
                    btnSearch.Invoke(new MethodInvoker(delegate
                    {
                        btnSearch.Enabled = true;
                    }));
                }
                if (lbOperation != null && !lbInfo.IsDisposed)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbOperation.Text = $"Sync tracking work to work be failure";
                    }));
                }
                isSyncData = false;
            }
        }