Beispiel #1
0
        public async Task <int> Create(WorkCreateRequest request)
        {
            var work = new Work()
            {
                Name        = request.Name,
                Description = request.Description,
                Status      = request.Status,
                Priority    = request.Priority,
                Deadline    = request.Deadline
            };

            _context.Works.Add(work);
            await _context.SaveChangesAsync();

            return(work.Id);
        }
Beispiel #2
0
        public async Task <UpdateStatusViewModel> Create(WorkCreateRequest 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", httpContent);

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

            if (response.IsSuccessStatusCode)
            {
                return(JsonConvert.DeserializeObject <UpdateStatusViewModel>(result));
            }
            return(null);
        }
        public async Task <IActionResult> Create([FromForm] WorkCreateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(View(request));
            }

            var result = await _workApiClient.Create(request);

            if (result)
            {
                TempData["result"] = "Thêm mới công việc thành công!";
                return(RedirectToAction("Index"));
            }
            ModelState.AddModelError("", "Thêm công việc thất bại!");
            return(View(request));
        }
        public async Task <IActionResult> Create([FromBody] WorkCreateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var workID = await _workSevice.Create(request);

            if (workID == 0)
            {
                return(BadRequest());
            }

            var work = await _workSevice.GetById(workID);

            return(CreatedAtAction(nameof(GetById), new { id = workID }, work));
        }
Beispiel #5
0
        public async Task <bool> Create(WorkCreateRequest request)
        {
            var sessions = _httpContextAccessor
                           .HttpContext
                           .Session
                           .GetString(SystemConstants.AppSettings.Token);

            var client = _httpClientFactory.CreateClient();

            client.BaseAddress = new Uri(_configuration["BaseAddress"]);
            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", httpContent);

            return(response.IsSuccessStatusCode);
        }
        public async Task <UpdateStatusViewModel> Create(WorkCreateRequest request)
        {
            var result = await _apiClient.Create(request);

            return(result);
        }
        private async void SysnData()
        {
            try
            {
                if (dataMaster == null || dataMaster.Items == null || dataMaster.Items.Count == 0)
                {
                    return;
                }
                isSync = true;
                int totalSuccess = 0;
                int total        = 0;
                for (int i = 0; i < dataMaster.Items.Count; i++)
                {
                    total += dataMaster.Items[i].Items.Count();
                }
                if (total == 0)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbInfo.Text      = $"Proccessing sync is finish";
                        lbOperation.Text = "Data is empty, so not sync to work";
                    }));
                    isSync = false;
                    return;
                }
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbOperation.Text = "Sync...";
                }));
                DateTime TheFiestTime = DateTime.Now;
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    progressBarImport.Value = 0;
                    lbPercent.Text          = "0%";
                }));

                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbInfo.Text = $"Proccessing sync...";
                }));
                btnSysToWork.Invoke(new MethodInvoker(delegate
                {
                    btnSysToWork.Enabled = false;
                }));
                btnMatch.Invoke(new MethodInvoker(delegate
                {
                    btnMatch.Enabled = false;
                }));
                btnLoadMasterList.Invoke(new MethodInvoker(delegate
                {
                    btnLoadMasterList.Enabled = false;
                }));
                //btnLoadDetails.Invoke(new MethodInvoker(delegate
                //{
                //    btnLoadDetails.Enabled = false;
                //}));
                btnExportExcel.Invoke(new MethodInvoker(delegate
                {
                    btnExportExcel.Enabled = false;
                }));

                DateTime startTime = DateTime.Now;


                for (int i = 0; i < dataMaster.Items.Count; i++)
                {
                    WorkChangeListRequest request = new WorkChangeListRequest();
                    string codeWriter             = VnHelper.ConvertToUnSign(dataMaster.Items[i].IntNo.ToUpper());
                    string nameWriter             = VnHelper.ConvertToUnSign(dataMaster.Items[i].Member.ToUpper());
                    foreach (var item in dataMaster.Items[i].Items)
                    {
                        if (!request.Items.Where(p => p.WK_INT_NO == item.WorkIntNo.ToUpper()).Any())
                        {
                            WorkCreateRequest itmUpdate = new WorkCreateRequest();
                            itmUpdate.WK_INT_NO = VnHelper.ConvertToUnSign(item.WorkIntNo.ToUpper());
                            itmUpdate.TTL_ENG   = VnHelper.ConvertToUnSign(item.Title.Trim().ToUpper());
                            //vi other title giong voi title nen khong can them
                            //itmUpdate.OtherTitles.Add(new Shared.Mis.Works.OtherTitle
                            //{
                            //    No = 1,
                            //    Title = itmUpdate.TTL_ENG
                            //}) ;
                            itmUpdate.InterestedParties.Add(new Shared.Mis.Works.InterestedParty
                            {
                                No         = 1,
                                IP_INT_NO  = codeWriter,
                                IP_NAME    = nameWriter,
                                IP_WK_ROLE = item.Role,
                                //TODO 2020-10-02
                                //WK_STATUS = "COMPLETE",

                                PER_OWN_SHR = item.Share,
                                PER_COL_SHR = item.Share,

                                MEC_OWN_SHR = item.Share,
                                MEC_COL_SHR = item.Share,

                                SP_SHR        = item.Share,
                                TOTAL_MEC_SHR = item.Share,

                                SYN_OWN_SHR   = item.Share,
                                SYN_COL_SHR   = item.Share,
                                Society       = "",//rong se khong cap nhat
                                CountUpdate   = 1,
                                LastUpdateAt  = DateTime.Now,
                                LastChoiseAt  = DateTime.Now,
                                IP_NUMBER     = dataMaster.Items[i].IPINameNo,
                                IP_NAME_LOCAL = "", //rong se khong cap nhat
                                IP_NAMETYPE   = "", //rong se khong cap nhat
                            });
                            itmUpdate.WRITER    = nameWriter;
                            itmUpdate.ARTIST    = string.Empty;
                            itmUpdate.SOC_NAME  = string.Empty;
                            itmUpdate.WK_STATUS = "COMPLETE";
                            request.Items.Add(itmUpdate);
                        }
                    }
                    //request.Items
                    var data = await controller.ChangeList(request);

                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        float values            = (float)(i + 1) / (float)dataMaster.Items.Count * 100;
                        progressBarImport.Value = (int)values;
                        lbPercent.Text          = $"{((int)values).ToString()}%";
                    }));
                    totalSuccess += data.Items.Where(p => p.Status == Utilities.Common.UpdateStatus.Successfull).ToList().Count;
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbOperation.Text = $"Sync..., total sync success/total: {totalSuccess}/{total}";
                    }));
                }
                #region update Ui when finish
                btnSysToWork.Invoke(new MethodInvoker(delegate
                {
                    btnSysToWork.Enabled = true;
                }));
                btnMatch.Invoke(new MethodInvoker(delegate
                {
                    btnMatch.Enabled = true;
                }));
                btnLoadMasterList.Invoke(new MethodInvoker(delegate
                {
                    btnLoadMasterList.Enabled = true;
                }));
                //btnLoadDetails.Invoke(new MethodInvoker(delegate
                //{
                //    btnLoadDetails.Enabled = true;
                //}));

                btnExportExcel.Invoke(new MethodInvoker(delegate
                {
                    btnExportExcel.Enabled = true;
                }));
                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}/{total}";
                }));

                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbOperation.Text = "Sync is finish";
                }));
                #endregion
                isSync = false;
            }
            catch (Exception)
            {
                isSync = false;
                if (btnMatch != null && !btnMatch.IsDisposed)
                {
                    btnMatch.Invoke(new MethodInvoker(delegate
                    {
                        btnMatch.Enabled = true;
                    }));
                }
                if (btnLoadMasterList != null && !btnLoadMasterList.IsDisposed)
                {
                    btnLoadMasterList.Invoke(new MethodInvoker(delegate
                    {
                        btnLoadMasterList.Enabled = true;
                    }));
                }
                //if (btnLoadDetails != null && !btnLoadDetails.IsDisposed)
                //{
                //    btnLoadDetails.Invoke(new MethodInvoker(delegate
                //    {
                //        btnLoadDetails.Enabled = true;
                //    }));
                //}
                if (btnExportExcel != null && !btnExportExcel.IsDisposed)
                {
                    btnExportExcel.Invoke(new MethodInvoker(delegate
                    {
                        btnExportExcel.Enabled = true;
                    }));
                }
                if (btnSysToWork != null && !btnSysToWork.IsDisposed)
                {
                    btnSysToWork.Invoke(new MethodInvoker(delegate
                    {
                        btnSysToWork.Enabled = true;
                    }));
                }
                if (lbOperation != null && !lbInfo.IsDisposed)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbOperation.Text = $"Sync tracking work to work be failure";
                    }));
                }
            }
        }
        private async void SysnData()
        {
            try
            {
                if (dataLoad == null || dataLoad.Count == 0)
                {
                    return;
                }
                int totalSuccess = 0;
                int total        = dataLoad.Count;

                if (total == 0)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbInfo.Text      = $"Proccessing sync is finish";
                        lbOperation.Text = "Data is empty, so not sync to work";
                    }));
                    return;
                }
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbOperation.Text = "Sync...";
                }));
                DateTime TheFiestTime = DateTime.Now;
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    progressBarImport.Value = 0;
                    lbPercent.Text          = "0%";
                }));

                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbInfo.Text = $"Proccessing sync...";
                }));
                btnSysToWork.Invoke(new MethodInvoker(delegate
                {
                    btnSysToWork.Enabled = false;
                }));
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    btnLoad.Enabled = false;
                }));

                DateTime startTime = DateTime.Now;

                WorkChangeListRequest request = new WorkChangeListRequest();
                string   status;
                string[] writer;
                string[] writer1;
                string[] writer2;
                for (int i = 0; i < dataLoad.Count; i++)
                {
                    if (reportType == 2)
                    {
                        #region Add
                        if (!request.Items.Where(p => p.WK_INT_NO == dataLoad[i].WK_INT_NO.ToUpper()).Any())
                        {
                            WorkCreateRequest itmUpdate = new WorkCreateRequest();
                            itmUpdate.WK_INT_NO = VnHelper.ConvertToUnSign(dataLoad[i].WK_INT_NO.ToUpper());
                            itmUpdate.TTL_ENG   = VnHelper.ConvertToUnSign(dataLoad[i].TTL_ENG.Trim().ToUpper());
                            itmUpdate.TTL_LOCAL = dataLoad[i].TTL_LOCAL.Trim().ToUpper();
                            itmUpdate.WK_STATUS = dataLoad[i].STATUS;
                            #region Tac gia
                            itmUpdate.InterestedParties.Add(new Shared.Mis.Works.InterestedParty
                            {
                                No         = itmUpdate.InterestedParties.Count + 1,
                                IP_INT_NO  = dataLoad[i].InternalNo,
                                IP_NAME    = dataLoad[i].WRITER,
                                IP_WK_ROLE = dataLoad[i].WK_ROLE,

                                PER_OWN_SHR = dataLoad[i].PER_OWN_SHR,
                                PER_COL_SHR = dataLoad[i].PER_OWN_SHR,

                                MEC_OWN_SHR = dataLoad[i].MEC_COL_SHR,
                                MEC_COL_SHR = dataLoad[i].MEC_COL_SHR,

                                SP_SHR        = dataLoad[i].PER_OWN_SHR,
                                TOTAL_MEC_SHR = dataLoad[i].MEC_COL_SHR,

                                SYN_OWN_SHR   = 0,
                                SYN_COL_SHR   = 0,
                                Society       = dataLoad[i].Society,
                                CountUpdate   = 1,
                                LastUpdateAt  = DateTime.Now,
                                LastChoiseAt  = DateTime.Now,
                                IP_NUMBER     = dataLoad[i].IpNumber,
                                IP_NAME_LOCAL = dataLoad[i].WRITER_LOCAL,
                                IP_NAMETYPE   = dataLoad[i].IP_NAME_TYPE,
                            });
                            #endregion
                            itmUpdate.WRITER       = dataLoad[i].WRITER;
                            itmUpdate.WRITER_LOCAL = dataLoad[i].WRITER_LOCAL;
                            itmUpdate.ARTIST       = dataLoad[i].ARTIST;
                            itmUpdate.SOC_NAME     = dataLoad[i].SOC_NAME;
                            itmUpdate.ISWC_NO      = dataLoad[i].ISWC_NO;
                            itmUpdate.ISRC         = dataLoad[i].ISRC;
                            request.Items.Add(itmUpdate);
                        }
                        else
                        {
                            var item = request.Items.Where(p => p.WK_INT_NO == dataLoad[i].WK_INT_NO).FirstOrDefault();
                            if (item != null)
                            {
                                #region tac gia
                                if (!item.InterestedParties.Where(p => p.IP_INT_NO == dataLoad[i].WK_INT_NO).Any())
                                {
                                    item.InterestedParties.Add(new Shared.Mis.Works.InterestedParty
                                    {
                                        No         = item.InterestedParties.Count + 1,
                                        IP_INT_NO  = dataLoad[i].InternalNo,
                                        IP_NAME    = dataLoad[i].WRITER,
                                        IP_WK_ROLE = dataLoad[i].WK_ROLE,

                                        //TODO 2020-10-02
                                        //WK_STATUS = dataLoad[i].STATUS,

                                        PER_OWN_SHR = dataLoad[i].PER_OWN_SHR,
                                        PER_COL_SHR = dataLoad[i].PER_OWN_SHR,

                                        MEC_OWN_SHR = dataLoad[i].MEC_COL_SHR,
                                        MEC_COL_SHR = dataLoad[i].MEC_COL_SHR,

                                        SP_SHR        = dataLoad[i].PER_OWN_SHR,
                                        TOTAL_MEC_SHR = dataLoad[i].MEC_COL_SHR,

                                        SYN_OWN_SHR   = 0,
                                        SYN_COL_SHR   = 0,
                                        Society       = dataLoad[i].Society,
                                        CountUpdate   = 1,
                                        LastUpdateAt  = DateTime.Now,
                                        LastChoiseAt  = DateTime.Now,
                                        IP_NUMBER     = dataLoad[i].IpNumber,
                                        IP_NAME_LOCAL = dataLoad[i].WRITER_LOCAL,
                                        IP_NAMETYPE   = dataLoad[i].IP_NAME_TYPE,
                                    });

                                    if (item.WRITER != string.Empty)
                                    {
                                        item.WRITER += ",";
                                    }
                                    item.WRITER += dataLoad[i].WRITER;
                                    if (item.WRITER_LOCAL != string.Empty)
                                    {
                                        item.WRITER_LOCAL += ",";
                                    }
                                    item.WRITER_LOCAL += dataLoad[i].WRITER_LOCAL;
                                }
                                else
                                {
                                    //int a = 1;
                                }
                                #endregion

                                #region Other title
                                if ((item.TTL_ENG != dataLoad[i].TTL_ENG) && (!item.OtherTitles.Where(p => p.Title == dataLoad[i].TTL_ENG).Any()))
                                {
                                    item.OtherTitles.Add(new Shared.Mis.Works.OtherTitle
                                    {
                                        No        = item.OtherTitles.Count + 1,
                                        Title     = dataLoad[i].TTL_ENG,
                                        TTL_LOCAL = dataLoad[i].TTL_LOCAL,
                                    });
                                }
                                else
                                {
                                    //int a = 1;
                                }
                                #endregion
                            }
                        }
                        #endregion
                    }
                    else
                    {
                        #region Add
                        if (!request.Items.Where(p => p.WK_INT_NO == dataLoad[i].WK_INT_NO.ToUpper()).Any())
                        {
                            WorkCreateRequest itmUpdate = new WorkCreateRequest();
                            itmUpdate.WK_INT_NO = VnHelper.ConvertToUnSign(dataLoad[i].WK_INT_NO.ToUpper());
                            itmUpdate.TTL_ENG   = VnHelper.ConvertToUnSign(dataLoad[i].TTL_ENG.Trim().ToUpper());
                            itmUpdate.TTL_LOCAL = dataLoad[i].TTL_LOCAL.Trim().ToUpper();
                            itmUpdate.WK_STATUS = dataLoad[i].STATUS;
                            if (dataLoad[i].WK_INT_NO == "17615461")
                            {
                                //int a = 1;
                            }
                            //HUNSAKER JASON BRADLEY,MARCKS WILLIAM DANIEL,WILCOX JAMES STEVEN,WOOD JEREMY M
                            writer = dataLoad[i].WRITER.Split(',');
                            //nhac
                            writer1 = dataLoad[i].WRITER2.Split(',');
                            //loi
                            writer2 = dataLoad[i].WRITER3.Split(',');

                            string role = string.Empty;
                            for (int k = 0; k < writer.Length; k++)
                            {
                                #region role
                                if (dataLoad[i].WRITER2.Length > 0 || dataLoad[i].WRITER3.Length > 0)
                                {
                                    //loi trong=> CA
                                    if (dataLoad[i].WRITER3.Length == 0)
                                    {
                                        role = "CA";
                                    }
                                    //nam trong loi
                                    else if (writer2.Contains(writer[k].Trim()))
                                    {
                                        role = "A";
                                    }
                                    else
                                    {
                                        //nhac
                                        role = "C";
                                    }
                                }
                                #endregion

                                #region Tac gia
                                if (writer[k] != string.Empty)
                                {
                                    itmUpdate.InterestedParties.Add(new Shared.Mis.Works.InterestedParty
                                    {
                                        No = itmUpdate.InterestedParties.Count + 1,
                                        //CHo nay neu danh sach co ma thi phai xu ly khac
                                        IP_INT_NO  = dataLoad[i].InternalNo,
                                        IP_NAME    = writer[k].Trim(),
                                        IP_WK_ROLE = role,

                                        PER_OWN_SHR = 0,
                                        PER_COL_SHR = 0,

                                        MEC_OWN_SHR = 0,
                                        MEC_COL_SHR = 0,

                                        SP_SHR        = 0,
                                        TOTAL_MEC_SHR = 0,

                                        SYN_OWN_SHR   = 0,
                                        SYN_COL_SHR   = 0,
                                        Society       = dataLoad[i].Society,
                                        CountUpdate   = 1,
                                        LastUpdateAt  = DateTime.Now,
                                        LastChoiseAt  = DateTime.Now,
                                        IP_NUMBER     = dataLoad[i].IpNumber,
                                        IP_NAME_LOCAL = dataLoad[i].WRITER_LOCAL,
                                        IP_NAMETYPE   = dataLoad[i].IP_NAME_TYPE,
                                    });
                                }
                                #endregion
                            }
                            itmUpdate.WRITER       = dataLoad[i].WRITER;
                            itmUpdate.WRITER_LOCAL = dataLoad[i].WRITER_LOCAL;
                            itmUpdate.ARTIST       = dataLoad[i].ARTIST;
                            itmUpdate.SOC_NAME     = dataLoad[i].SOC_NAME;
                            itmUpdate.ISWC_NO      = dataLoad[i].ISWC_NO;
                            itmUpdate.ISRC         = dataLoad[i].ISRC;
                            request.Items.Add(itmUpdate);
                        }
                        else
                        {
                            int a    = 1;
                            var item = request.Items.Where(p => p.WK_INT_NO == dataLoad[i].WK_INT_NO).FirstOrDefault();
                            writer = dataLoad[i].WRITER.Split(',');
                            //nhac
                            writer1 = dataLoad[i].WRITER2.Split(',');
                            //loi
                            writer2 = dataLoad[i].WRITER3.Split(',');

                            string role = string.Empty;
                            for (int k = 0; k < writer.Length; k++)
                            {
                                #region role
                                if (dataLoad[i].WRITER2.Length > 0 || dataLoad[i].WRITER3.Length > 0)
                                {
                                    //loi trong=> CA
                                    if (dataLoad[i].WRITER3.Length == 0)
                                    {
                                        role = "CA";
                                    }
                                    //nam trong loi
                                    else if (writer2.Contains(writer[k].Trim()))
                                    {
                                        role = "A";
                                    }
                                    else
                                    {
                                        //nhac
                                        role = "C";
                                    }
                                }
                                #endregion

                                if (item != null)
                                {
                                    #region tac gia
                                    if (!item.InterestedParties.Where(p => p.IP_INT_NO == dataLoad[i].WK_INT_NO).Any())
                                    {
                                        item.InterestedParties.Add(new Shared.Mis.Works.InterestedParty
                                        {
                                            No = item.InterestedParties.Count + 1,
                                            //cho nay co ma thi phai xu ly khac
                                            IP_INT_NO  = dataLoad[i].InternalNo,
                                            IP_NAME    = writer[k].Trim(),
                                            IP_WK_ROLE = dataLoad[i].WK_ROLE,

                                            //TODO 2020-10-02
                                            //WK_STATUS = dataLoad[i].STATUS,

                                            PER_OWN_SHR = dataLoad[i].PER_OWN_SHR,
                                            PER_COL_SHR = dataLoad[i].PER_OWN_SHR,

                                            MEC_OWN_SHR = dataLoad[i].MEC_COL_SHR,
                                            MEC_COL_SHR = dataLoad[i].MEC_COL_SHR,

                                            SP_SHR        = dataLoad[i].PER_OWN_SHR,
                                            TOTAL_MEC_SHR = dataLoad[i].MEC_COL_SHR,

                                            SYN_OWN_SHR = 0,
                                            SYN_COL_SHR = 0,
                                            //cho nay co ma, chac chan socity se khac
                                            Society       = dataLoad[i].Society,
                                            CountUpdate   = 1,
                                            LastUpdateAt  = DateTime.Now,
                                            LastChoiseAt  = DateTime.Now,
                                            IP_NUMBER     = dataLoad[i].IpNumber,
                                            IP_NAME_LOCAL = dataLoad[i].WRITER_LOCAL,
                                            IP_NAMETYPE   = dataLoad[i].IP_NAME_TYPE,
                                        });

                                        if (item.WRITER != string.Empty)
                                        {
                                            item.WRITER += ",";
                                        }
                                        item.WRITER += dataLoad[i].WRITER;
                                        if (item.WRITER_LOCAL != string.Empty)
                                        {
                                            item.WRITER_LOCAL += ",";
                                        }
                                        item.WRITER_LOCAL += dataLoad[i].WRITER_LOCAL;
                                    }
                                    else
                                    {
                                        //int a = 1;
                                    }
                                    #endregion

                                    #region Other title
                                    if ((item.TTL_ENG != dataLoad[i].TTL_ENG) && (!item.OtherTitles.Where(p => p.Title == dataLoad[i].TTL_ENG).Any()))
                                    {
                                        item.OtherTitles.Add(new Shared.Mis.Works.OtherTitle
                                        {
                                            No        = item.OtherTitles.Count + 1,
                                            Title     = dataLoad[i].TTL_ENG,
                                            TTL_LOCAL = dataLoad[i].TTL_LOCAL,
                                        });
                                    }
                                    else
                                    {
                                        //int a = 1;
                                    }
                                    #endregion
                                }
                            }
                        }
                        #endregion
                    }

                    #region Update
                    if (request.Items.Count >= Core.LimitRequestUpdate || i == dataLoad.Count - 1)
                    {
                        UpdateStatusViewModelList reponse = null;
                        //request.Items
                        reponse = await controller.ChangeList(request);

                        if (reponse == null)
                        {
                            reponse = new UpdateStatusViewModelList
                            {
                                Items = new List <UpdateStatusViewModel>()
                            };
                        }
                        request.Items.Clear();
                        #region UI
                        statusMain.Invoke(new MethodInvoker(delegate
                        {
                            float values            = (float)(i + 1) / (float)dataLoad.Count * 100;
                            progressBarImport.Value = (int)values;
                            lbPercent.Text          = $"{((int)values).ToString()}%";
                        }));
                        totalSuccess += reponse.Items.Where(p => p.Status == Utilities.Common.UpdateStatus.Successfull).ToList().Count;
                        statusMain.Invoke(new MethodInvoker(delegate
                        {
                            lbOperation.Text = $"Sync..., total sync success/total: {totalSuccess}/{total}";
                        }));
                        #endregion
                    }
                    #endregion
                }
                #region update Ui when finish

                if (request.Items.Count > 0)
                {
                    //int a = 1;
                }
                btnSysToWork.Invoke(new MethodInvoker(delegate
                {
                    btnSysToWork.Enabled = true;
                }));
                statusMain.Invoke(new MethodInvoker(delegate
                {
                    btnLoad.Enabled = true;
                }));
                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}/{total}";
                }));

                statusMain.Invoke(new MethodInvoker(delegate
                {
                    lbOperation.Text = "Sync is finish";
                }));
                #endregion
            }
            catch (Exception)
            {
                if (statusMain != null && !statusMain.IsDisposed)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        btnLoad.Enabled = true;
                    }));
                }
                if (btnSysToWork != null && !btnSysToWork.IsDisposed)
                {
                    btnSysToWork.Invoke(new MethodInvoker(delegate
                    {
                        btnSysToWork.Enabled = true;
                    }));
                }
                if (lbOperation != null && !lbInfo.IsDisposed)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbOperation.Text = $"Sync tracking work to work be failure";
                    }));
                }
            }
        }