public async Task <UpdateStatusViewModelList> ChangeList(PeclaimChangeListRequest 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/preclaims/ChangeList", httpContent);

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

            if (response.IsSuccessStatusCode)
            {
                return(JsonConvert.DeserializeObject <UpdateStatusViewModelList>(result));
            }
            return(null);
        }
        private async void SaveDataToDatabase()
        {
            try
            {
                PeclaimChangeListRequest request = new PeclaimChangeListRequest();
                int      countSend       = 0;
                int      countSended     = 0;
                int      countrun        = 0;
                int      totalrun        = 0;
                int      totalInserted   = 0;
                int      totalUpdateSucc = 0;
                DateTime startTime       = DateTime.Now;
                dataImport1.Clear();
                //save

                if (totalPageIm % Core.countPerSave == 0)
                {
                    countSend = dataImport.Count / Core.countPerSave;
                }
                else
                {
                    countSend = dataImport.Count / Core.countPerSave + 1;
                }

                foreach (var item in dataImport)
                {
                    //if(item.MONTH != 8)
                    //{
                    //    int a = 1;
                    //}
                    countrun++;
                    totalrun++;
                    #region create list
                    PreclaimCreateRequest pre = new PreclaimCreateRequest();
                    pre.Asset_ID       = item.Asset_ID;
                    pre.ISRC           = item.ISRC;
                    pre.Comp_Asset_ID  = item.Comp_Asset_ID;
                    pre.C_Title        = item.C_Title;
                    pre.C_ISWC         = item.C_ISWC;
                    pre.C_Workcode     = item.C_Workcode;
                    pre.C_Writers      = item.C_Writers;
                    pre.Combined_Claim = item.Combined_Claim;
                    pre.Mechanical     = item.Mechanical;
                    pre.Performance    = item.Performance;
                    //pre.MONTH = item.MONTH;
                    pre.DtCREATED_AT = item.DtCREATED_AT;
                    pre.DtUPDATED_AT = item.DtUPDATED_AT;
                    //pre.Year = item.Year;
                    request.Items.Add(pre);
                    #endregion
                    if (countrun == Core.countPerSave || totalrun == dataImport.Count)
                    {
                        //send
                        request.Total = countrun;
                        var changeData = await _preclaimController.ChangeList(request);

                        #region get info from reponse
                        if (changeData != null && changeData.Items != null)
                        {
                            //insert
                            totalInserted += changeData.Items.Where
                                             (
                                p => p.Command == Utilities.Common.CommandType.Add &&
                                p.Status == Utilities.Common.UpdateStatus.Successfull
                                             ).Count();
                            //update
                            totalUpdateSucc += changeData.Items.Where
                                               (
                                p => p.Command == Utilities.Common.CommandType.Update &&
                                p.Status == Utilities.Common.UpdateStatus.Successfull
                                               ).Count();
                            List <UpdateStatusViewModel> uvmL = changeData.Items.Where
                                                                (
                                p => p.Command == Utilities.Common.CommandType.Update &&
                                p.Status == Utilities.Common.UpdateStatus.Failure   //test
                                                                ).ToList();
                            foreach (var uvm in uvmL)
                            {
                                PreclaimViewModel x = dataImport.Where(p => p.Asset_ID == uvm.Asset_id).FirstOrDefault();
                                if (x != null)
                                {
                                    dataImport1.Add(x);
                                }
                            }
                            dataImport1 = dataImport1.OrderBy(p => p.SerialNo).ToList();
                        }
                        #endregion
                        //clear
                        request.Items.Clear();
                        countrun = 0;
                        //cap nhat phan tram
                        countSended++;
                        mainStatus.Invoke(new MethodInvoker(delegate
                        {
                            float values                  = (float)countSended / (float)countSend * 100;
                            progressBarImport.Value       = (int)values;
                            progressBarImport.ToolTipText = progressBarImport.Value.ToString();
                        }));
                    }
                }
                //view
                int totalFailure = 0;
                if (dataImport1 != null && dataImport1.Count > 0)
                {
                    totalFailure = dataImport1.Count;
                    if (totalFailure % limitIm1 == 0)
                    {
                        totalPageIm1 = totalFailure / limitIm1;
                    }
                    else
                    {
                        totalPageIm1 = totalFailure / limitIm1 + 1;
                    }
                    lbTotalPage1.Invoke(new MethodInvoker(delegate
                    {
                        lbTotalPage1.Text = totalPageIm1.ToString();
                    }));
                    GotoPage1(currentPageIm1, totalPageIm1);
                    mainStatus.Invoke(new MethodInvoker(delegate
                    {
                        lbInfo.Text = $"Total records saveing be failure: {totalFailure}";
                    }));
                }
                else
                {
                    dataImport1        = new List <PreclaimViewModel>();
                    currentDataImView1 = new List <PreclaimViewModel>();
                    dgvImportFailure.Invoke(new MethodInvoker(delegate
                    {
                        dgvImportFailure.DataSource = currentDataImView1;
                    }));
                    mainStatus.Invoke(new MethodInvoker(delegate
                    {
                        lbInfo.Text = "Saving is successfull!";
                    }));
                }
                mainStatus.Invoke(new MethodInvoker(delegate
                {
                    progressBarImport.Value       = 100;
                    progressBarImport.ToolTipText = progressBarImport.Value.ToString();
                }));
                DateTime endTime = DateTime.Now;
                lbInfoImport1.Invoke(new MethodInvoker(delegate
                {
                    lbInfoImport1.Text  = $"Time load(second(s)): {(endTime - startTime).TotalSeconds.ToString("##0.##")}, ";
                    lbInfoImport1.Text += $"total add new(s): {totalInserted}, total Update(s): {totalUpdateSucc}, ";
                    lbInfoImport1.Text += $"total Failure: {totalFailure}";
                }));
            }
            catch (Exception)
            {
                mainStatus.Invoke(new MethodInvoker(delegate
                {
                    lbInfo.Text = "send request to server be error";
                }));
            }
        }
        public async Task <UpdateStatusViewModelList> ChangeList(PeclaimChangeListRequest request)
        {
            var result = await _apiClient.ChangeList(request);

            return(result);
        }