/// <summary>
 ///
 /// </summary>
 /// <param name="Group">nhom doc quyen, 0 tac pham, 1 tac gia</param>
 /// <param name="updataType"></param>
 /// <param name="monopolyObject">Data</param>
 public frmMonopolyUpdate(MonopolyController Controller, UpdataType view, MonopolyViewModel currenObject, int Group)
 {
     InitializeComponent();
     this._Controller  = Controller;
     this._updataType  = view;
     this.currenObject = currenObject;
     this._group       = Group;
 }
 private void btnAdd_Click(object sender, EventArgs e)
 {
     try
     {
         if (isRequest)
         {
             statusMain.Invoke(new MethodInvoker(delegate
             {
                 lbOperation.Text = "Waiting reponse...";
             }));
             return;
         }
         if (isFilter)
         {
             statusMain.Invoke(new MethodInvoker(delegate
             {
                 lbOperation.Text = "Waiting filter...";
             }));
             return;
         }
         CurrenObject = new MonopolyViewModel();
         frmMonopolyUpdate frm = new frmMonopolyUpdate(controller, UpdataType.Add, CurrenObject, cboGroup.SelectedIndex);
         frm.ShowDialog();
         if (frm.ObjectReturn != null && frm.ObjectReturn.Status == Utilities.Common.UpdateStatus.Successfull)
         {
             lbOperation.Text = $"Added Item: {frm.ObjectReturn.Message}, total Added: {frm.ObjectReturn.TotalEffect}";
             #region set backgroundMonopolyer
             Operation        = OperationType.GetDataFromServer;
             pcloader.Visible = true;
             pcloader.Dock    = DockStyle.Fill;
             backgroundWorker.RunWorkerAsync();
             #endregion
         }
         else
         {
             if (frm.ObjectReturn != null)
             {
                 lbOperation.Text = $"Added Item: {frm.ObjectReturn.Message}";
             }
             else
             {
                 lbOperation.Text = $"Added Item is failure";
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error: " + ex.ToString());
     }
 }
 private void dgvMain_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     try
     {
         if (isRequest)
         {
             statusMain.Invoke(new MethodInvoker(delegate
             {
                 lbOperation.Text = "Waiting reponse...";
             }));
             return;
         }
         if (isFilter)
         {
             statusMain.Invoke(new MethodInvoker(delegate
             {
                 lbOperation.Text = "Waiting filter...";
             }));
             return;
         }
         if (data == null || data.IsSuccessed == false || data.ResultObj == null || data.ResultObj.Items.Count == 0)
         {
             return;
         }
         if (dgvMain.Rows.Count > 0)
         {
             string id = (string)dgvMain.CurrentRow.Cells["Id"].Value;
             CurrenObject = data.ResultObj.Items.Where(s => s.Id == id).FirstOrDefault();
             if (CurrenObject == null)
             {
                 MessageBox.Show("Eror: recode is null");
                 return;
             }
             frmMonopolyUpdate frm = new frmMonopolyUpdate(controller, UpdataType.View, CurrenObject, cboGroup.SelectedIndex);
             frm.ShowDialog();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
        private async void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                if (isRequest)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbOperation.Text = "Waiting reponse...";
                    }));
                    return;
                }
                if (isFilter)
                {
                    statusMain.Invoke(new MethodInvoker(delegate
                    {
                        lbOperation.Text = "Waiting filter...";
                    }));
                    return;
                }
                if (data == null || data.IsSuccessed == false || data.ResultObj == null || data.ResultObj.Items.Count == 0)
                {
                    return;
                }
                string id    = "";
                int    count = 0;
                for (int i = 0; i < dgvMain.Rows.Count; i++)
                {
                    if (dgvMain.Rows[i].Cells[0].Value != null && (bool)dgvMain.Rows[i].Cells[0].Value == true)
                    {
                        count++;
                        id = (string)dgvMain.Rows[i].Cells["Id"].Value;
                        if (count > 1)
                        {
                            MessageBox.Show("Please choise only one record!");
                            return;
                        }
                    }
                }
                if (id == string.Empty)
                {
                    MessageBox.Show("Please must choise one record!");
                    return;
                }
                CurrenObject = data.ResultObj.Items.Where(s => s.Id == id).First();
                if (CurrenObject == null)
                {
                    MessageBox.Show("Eror: recode is null");
                    return;
                }
                var confirmResult = MessageBox.Show("Are you sure to delete this record?",
                                                    "Confirm Delete!!",
                                                    MessageBoxButtons.YesNo);
                if (confirmResult == DialogResult.Yes)
                {
                    var deleteStatus = await controller.Delete(CurrenObject.Id);

                    if (deleteStatus != null && deleteStatus.Status == Utilities.Common.UpdateStatus.Successfull)
                    {
                        lbOperation.Text = $"Deleted record: {deleteStatus.Message}, total Deleted: {deleteStatus.TotalEffect}";
                        #region set backgroundMonopolyer
                        Operation        = OperationType.GetDataFromServer;
                        pcloader.Visible = true;
                        pcloader.Dock    = DockStyle.Fill;
                        backgroundWorker.RunWorkerAsync();
                        #endregion
                    }
                    else
                    {
                        if (deleteStatus != null)
                        {
                            lbOperation.Text = $"Deleted Item: {deleteStatus.Message}";
                        }
                        else
                        {
                            lbOperation.Text = $"Deleted Item is failure";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.ToString());
            }
        }
 private void btnEdit_Click(object sender, EventArgs e)
 {
     try
     {
         if (isRequest)
         {
             statusMain.Invoke(new MethodInvoker(delegate
             {
                 lbOperation.Text = "Waiting reponse...";
             }));
             return;
         }
         if (isFilter)
         {
             statusMain.Invoke(new MethodInvoker(delegate
             {
                 lbOperation.Text = "Waiting filter...";
             }));
             return;
         }
         if (data == null || data.IsSuccessed == false || data.ResultObj == null || data.ResultObj.Items.Count == 0)
         {
             return;
         }
         string id    = string.Empty;
         int    count = 0;
         for (int i = 0; i < dgvMain.Rows.Count; i++)
         {
             if (dgvMain.Rows[i].Cells[0].Value != null && (bool)dgvMain.Rows[i].Cells[0].Value == true)
             {
                 count++;
                 id = (string)dgvMain.Rows[i].Cells["Id"].Value;
                 if (count > 1)
                 {
                     MessageBox.Show("Please choise only one record!");
                     return;
                 }
             }
         }
         if (id == string.Empty)
         {
             MessageBox.Show("Please must choise one record!");
             return;
         }
         CurrenObject = data.ResultObj.Items.Where(s => s.Id == id).First();
         if (CurrenObject == null)
         {
             MessageBox.Show("Eror: recode is null");
             return;
         }
         frmMonopolyUpdate frm = new frmMonopolyUpdate(controller, UpdataType.Edit, CurrenObject, cboGroup.SelectedIndex);
         frm.ShowDialog();
         if (frm.ObjectReturn != null && frm.ObjectReturn.Status == Utilities.Common.UpdateStatus.Successfull)
         {
             lbOperation.Text = $"Edited Item: {frm.ObjectReturn.Message}, total Edited: {frm.ObjectReturn.TotalEffect}";
             #region set backgroundMonopolyer
             Operation        = OperationType.GetDataFromServer;
             pcloader.Visible = true;
             pcloader.Dock    = DockStyle.Fill;
             backgroundWorker.RunWorkerAsync();
             #endregion
         }
         else
         {
             if (frm.ObjectReturn != null)
             {
                 lbOperation.Text = $"Edited Item: {frm.ObjectReturn.Message}";
             }
             else
             {
                 lbOperation.Text = $"Edited Item is failure";
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error: " + ex.ToString());
     }
 }
        private void LoadFrom()
        {
            dtStartTime.Value = new DateTime(2020, 01, 01);
            dtEndTime.Value   = dtEndTime.MaxDate;
            if (_group == 0)
            {
                lbName.Visible      = true;
                txtName.Visible     = true;
                lbNameType.Visible  = false;
                txtNameType.Visible = false;
                //lbName.Text = "Tên tác phẩm độc quyền";
            }
            else
            {
                lbName.Visible      = false;
                txtName.Visible     = false;
                lbNameType.Visible  = true;
                txtNameType.Visible = true;
                //lbName.Text = "IP name";
            }
            if (_updataType == UpdataType.Edit || _updataType == UpdataType.View)
            {
                if (_updataType == UpdataType.Edit)
                {
                    this.Text = "Update Monopoly";
                }
                else
                {
                    this.Text = "View Monopoly";
                }
                if (_group == 0)
                {
                    this.Text += "-WORK";
                }
                else
                {
                    this.Text += "-MEMBER";
                }
                if (currenObject == null)
                {
                    return;
                }
                txtCodeOld.Text  = currenObject.CodeOld;
                txtCodeNew.Text  = currenObject.CodeNew;
                txtName.Text     = currenObject.Name;
                txtOwn.Text      = currenObject.Own;
                txtNameType.Text = currenObject.NameType;

                txtNoteMono.Text     = currenObject.NoteMono;
                txtNote2.Text        = currenObject.Note2;
                cheIsExpired.Checked = currenObject.IsExpired;
                txtNote3.Text        = currenObject.Note3;

                dtStartTime.Value   = currenObject.StartTime > dtStartTime.MaxDate ? dtStartTime.MaxDate : currenObject.StartTime;
                dtEndTime.Value     = currenObject.EndTime > dtEndTime.MaxDate? dtEndTime.MaxDate:currenObject.EndTime;
                dtUpdateTime.Value  = currenObject.UpdateTime > dtUpdateTime.MaxDate ? dtUpdateTime.MaxDate : currenObject.UpdateTime;
                dtReceiveTime.Value = currenObject.ReceiveTime > dtReceiveTime.MaxDate ? dtReceiveTime.MaxDate : currenObject.ReceiveTime;

                cheTone.Checked            = currenObject.Tone;
                cheWeb.Checked             = currenObject.Web;
                chePerformances.Checked    = currenObject.Performances;
                chePerformancesHCM.Checked = currenObject.PerformancesHCM;
                cheCddvd.Checked           = currenObject.Cddvd;
                cheKok.Checked             = currenObject.Kok;
                cheBroadCasting.Checked    = currenObject.Broadcasting;

                cheEntertaiment.Checked = currenObject.Entertaiment;

                cheFilm.Checked          = currenObject.Film;
                cheAdvertisement.Checked = currenObject.Advertisement;
                chePubMusicBook.Checked  = currenObject.PubMusicBook;
                cheYoutube.Checked       = currenObject.Youtube;
                cheOther.Checked         = currenObject.Other;

                if (_updataType == UpdataType.Edit)
                {
                    //txtNo.ReadOnly = true;
                }
                else
                {
                    //txtNo.ReadOnly = true;
                    txtCodeOld.ReadOnly  = true;
                    txtCodeNew.ReadOnly  = true;
                    txtName.ReadOnly     = true;
                    txtOwn.ReadOnly      = true;
                    txtNameType.ReadOnly = true;

                    txtNoteMono.ReadOnly = true;
                    txtNote2.ReadOnly    = true;
                    cheIsExpired.Enabled = false;
                    txtNote3.ReadOnly    = true;

                    dtStartTime.Enabled   = false;
                    dtEndTime.Enabled     = false;
                    dtUpdateTime.Enabled  = false;
                    dtReceiveTime.Enabled = false;

                    cheTone.Enabled            = false;
                    cheWeb.Enabled             = false;
                    chePerformances.Enabled    = false;
                    chePerformancesHCM.Enabled = false;
                    cheCddvd.Enabled           = false;
                    cheKok.Enabled             = false;
                    cheBroadCasting.Enabled    = false;

                    cheEntertaiment.Enabled = false;

                    cheFilm.Enabled          = false;
                    cheAdvertisement.Enabled = false;
                    chePubMusicBook.Enabled  = false;
                    cheYoutube.Enabled       = false;
                    cheOther.Enabled         = false;
                    btnOk.Enabled            = false;
                }
            }
            else if (_updataType == UpdataType.Add)
            {
                this.Text = "Add monopoly";
                if (_group == 0)
                {
                    this.Text += "-WORK";
                }
                else
                {
                    this.Text += "-MEMBER";
                }
                currenObject = new MonopolyViewModel();
            }
        }
Example #7
0
        private async void SaveDataToDatabase()
        {
            try
            {
                currentDataImView1 = new List <MonopolyViewModel>();
                dataImport1        = new List <MonopolyViewModel>();
                dgvImportFailure.Invoke(new MethodInvoker(delegate
                {
                    dgvImportFailure.DataSource = currentDataImView1;
                }));
                MonopolyChangeListRequest request = new MonopolyChangeListRequest();
                request.Group = group;
                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)
                {
                    countrun++;
                    totalrun++;
                    #region create WorkTrackingCreateRequest
                    MonopolyCreateRequest updateObj = new MonopolyCreateRequest();
                    updateObj.Group    = item.Group;
                    updateObj.CodeOld  = item.CodeOld;
                    updateObj.CodeNew  = item.CodeNew;
                    updateObj.Name     = item.Name;
                    updateObj.Name2    = item.Name2;
                    updateObj.NameType = item.NameType;
                    updateObj.Own      = item.Own;
                    updateObj.Own2     = item.Own2;
                    updateObj.NoteMono = item.NoteMono;

                    updateObj.StartTime   = item.StartTime;
                    updateObj.EndTime     = item.EndTime;
                    updateObj.UpdateTime  = item.UpdateTime;
                    updateObj.ReceiveTime = item.ReceiveTime;
                    updateObj.Note2       = item.Note2; //thời điểm nhận thông tin
                    updateObj.Note3       = item.Note3; //Ghi chú nhận tác phẩm

                    updateObj.Tone            = item.Tone;
                    updateObj.Web             = item.Web;
                    updateObj.Performances    = item.Performances;
                    updateObj.PerformancesHCM = item.PerformancesHCM;
                    updateObj.Cddvd           = item.Cddvd;
                    updateObj.Kok             = item.Kok;
                    updateObj.Broadcasting    = item.Broadcasting;
                    updateObj.Entertaiment    = item.Entertaiment;
                    updateObj.Film            = item.Film;
                    updateObj.Advertisement   = item.Advertisement;
                    updateObj.PubMusicBook    = item.PubMusicBook;
                    updateObj.Youtube         = item.Youtube;
                    updateObj.Other           = item.Other;

                    updateObj.IsExpired = item.IsExpired;

                    request.Items.Add(updateObj);
                    #endregion
                    if (countrun == Core.countPerSave || totalrun == dataImport.Count)
                    {
                        //send
                        request.Total = countrun;
                        var changeData = await _Controller.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
                                                                ).ToList();
                            foreach (var uvm in uvmL)
                            {
                                MonopolyViewModel x = dataImport.Where(p => p.CodeNew == uvm.WorkCode).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
                {
                    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";
                }));
            }
        }