Пример #1
0
        //cap nhap lai trang thia cua Client :
        private void clientUpdate()
        {
            //=================Mien Gang truy xuat du lieu ====================================
            S_getClient.WaitOne();
            List <DTOClient> listClient = BUSClient.getListClient();

            S_getClient.Release();
            //=================Mien Gang truy xuat du lieu ====================================
            string[] ipp = (S_connectClient.RemoteEndPoint.ToString()).Split(new char[] { ':' });
            foreach (DTOClient client in listClient)
            {
                if (client.UserName.ToLower() == User.ToLower() && client.IPAdr == ipp[0])
                {
                    client.FlagSta = false;

                    //=======Mien Gang la truy xuat du lieu ===============
                    S_updateClient.WaitOne();
                    BUSClient.Update(client);
                    S_updateClient.Release();
                    //=======Mien Gang la truy xuat du lieu ===============

                    break;
                }
            }
        }
Пример #2
0
        /// Implementing Interface

        /// <summary>
        /// List Companies Sync
        /// </summary>
        public ClientListResponse ClientList(HeaderInfo headerInfo)
        {
            //loadClientListAsync();
            //return;


            var responseClientList = new BUSClient().ClientList(HeaderInfo.Instance);

            if (responseClientList.response.ReturnCode < 0000)
            {
                LogFile.WriteToTodaysLogFile("Error loading client list", HeaderInfo.Instance.UserID, "", "UIClientList.cs");
                return(responseClientList);
            }

            var clientList = responseClientList.clientList;

            try
            {
                clientBindingSource.DataSource = clientList;
            }
            catch (Exception ex)
            {
                LogFile.WriteToTodaysLogFile(
                    "Error binding response. " + ex.ToString(),
                    Utils.UserID,
                    ResponseStatus.MessageCode.Error.FCMERR00009999,
                    "UIClientList.cs");
            }
            return(responseClientList);
        }
Пример #3
0
        public UIClientRegistration(Form calledFrom, int icuid)
        {
            InitializeComponent();

            _calledFrom = calledFrom;

            var busClientRead = BUSClient.ClientRead(new ClientReadRequest()
            {
                clientUID = icuid, headerInfo = HeaderInfo.Instance
            });

            _client = busClientRead.client;

            // Load User ID
            //
            var ua = UserAccess.List();

            foreach (var user in ua)
            {
                comboUserID.Items.Add(user.UserID);
            }

            // Load Contractor Size
            //
            var dsl = new DocumentSetList();

            dsl.List();
            foreach (var documentSet in dsl.documentSetList)
            {
                comboContractorSize.Items.Add(documentSet.UIDNameDisplay);
            }

            MapFieldsToScreen();
        }
Пример #4
0
        private void getListData()
        {
            dtgvFile.Rows.Clear();

            List <DTOData>   listData   = BUSData.getListData();
            List <DTOClient> listClient = BUSClient.getListClient();

            foreach (DTOData data in listData)
            {
                foreach (DTOClient cli in listClient)
                {
                    if (cli.IDClient == data.IDClient)
                    {
                        if (cli.FlagSta == true)
                        {
                            dtgvFile.Rows.Add(data.FileName, data.Size, cli.UserName, cli.IPAdr, cli.NumPort, "Yes", data.FlagSta);
                        }
                        else
                        {
                            dtgvFile.Rows.Add(data.FileName, data.Size, cli.UserName, cli.IPAdr, cli.NumPort, "No", data.FlagSta);
                        }
                    }
                }
            }
        }
Пример #5
0
        private void miContract_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            clientUID = GetClientUIDSelected();

            if (clientUID <= 0)
            {
                return;
            }

            //Client client = new Client(HeaderInfo.Instance);
            //client.UID = Utils.ClientID;

            ClientReadRequest crr = new ClientReadRequest();

            crr.clientUID  = Utils.ClientID;
            crr.headerInfo = HeaderInfo.Instance;

            var crresponse = BUSClient.ClientRead(crr);

            if (crresponse.client.UID <= 0)
            {
                return;
            }

            UIClientContract uicc = new UIClientContract(this, crresponse.client);

            uicc.Show();

            Cursor.Current = Cursors.Arrow;
        }
Пример #6
0
        private void addDownload(String online, String myBool)
        {
            //=================Mien Gang truy xuat du lieu ====================================
            S_getClient.WaitOne();
            List <DTOClient> list = BUSClient.getListClient();

            S_getClient.Release();
            //=================Mien Gang truy xuat du lieu ====================================

            String[] share = new String[2];
            for (int j = 0; j < list.Count; j++)
            {
                if (list[j].UserName == Arr[3])
                {
                    share[0] = list[j].IPAdr;
                    share[1] = list[j].NumPort.ToString();
                    break;
                }
            }

            string[] ipp = (S_connectClient.RemoteEndPoint.ToString()).Split(new char[] { ':' });
            myServer.Q_dataDownload.Enqueue(User);
            myServer.Q_dataDownload.Enqueue(ipp[0]);
            myServer.Q_dataDownload.Enqueue(ipp[1]);
            myServer.Q_dataDownload.Enqueue(Arr[3]);
            myServer.Q_dataDownload.Enqueue(share[0]);
            myServer.Q_dataDownload.Enqueue(share[1]);
            myServer.Q_dataDownload.Enqueue(online);
            myServer.Q_dataDownload.Enqueue(Arr[1]);
            myServer.Q_dataDownload.Enqueue(Arr[2]);
            myServer.Q_dataDownload.Enqueue(myBool);
            myServer.flag = 1;
        }
Пример #7
0
        private void getListClient()
        {
            dtgv.Rows.Clear();

            List <DTOClient> listClient = BUSClient.getListClient();

            for (int i = 0; i < listClient.Count; i++)
            {
                dtgv.Rows.Add(listClient[i].UserName, listClient[i].PassWord, listClient[i].IPAdr, listClient[i].NumPort, listClient[i].FlagSta);
                dtgv.Rows[dtgv.RowCount - 1].Tag = listClient[i];
            }
        }
Пример #8
0
        private void button1_Click(object sender, EventArgs e)
        {
            ButListen.Enabled = false;
            ButQuit.Enabled   = false;
            Butstop.Enabled   = true;
            BoxPort.Enabled   = false;
            if (BoxPort.Text == "" && checkBox1.Checked == false)
            {
                MessageBox.Show("Please input NumPort !", "MessageBox Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2);
                ButListen.Enabled = true;
                return;
            }

            timer1.Enabled = true;
            String Port = BoxPort.Text;

            if (Port == "" && checkBox1.Checked == false)
            {
                MessageBox.Show("Please input NumPort !", "MessageBox Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2);
                ButListen.Enabled = true;
                return;
            }

            //Kiem tra xem threa lang nghe co bi Pause hay ko ?
            if (S_threadListen != null)
            {
                if (S_threadListen.ThreadState == ThreadState.SuspendRequested || S_threadListen.ThreadState == ThreadState.Suspended)
                {
                    S_threadListen.Resume();
                    return;
                }
            }
            else
            {
                List <DTOClient> list = BUSClient.getListClient();
                foreach (DTOClient client in list)
                {
                    if (client.FlagSta == true)
                    {
                        client.FlagSta = false;
                        BUSClient.Update(client);
                    }
                }
            }
            //Tao Thread lang nghe de lang nghe cac ke noi den :
            S_threadListen = new Thread(new ThreadStart(serverListen));
            S_threadListen.Start();
        }
Пример #9
0
        private void tsRefresh_Click(object sender, EventArgs e)
        {
            ClientReadRequest crr = new ClientReadRequest();

            crr.clientUID = _client.UID;

            var crresponse = BUSClient.ClientRead(crr);

            _client = crresponse.client;

            //var bclient = _client.Read();
            //if (_client == null)
            //    _client = new Client(HeaderInfo.Instance);

            MapFieldsToScreen();

            MessageBox.Show("Client details reloaded from database.");
        }
Пример #10
0
        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var answer = MessageBox.Show("Are you sure? Do you really want to delete the client?",
                                         "Delete Client",
                                         MessageBoxButtons.YesNo);

            if (answer == DialogResult.Yes)
            {
                Client client = new Client(HeaderInfo.Instance);
                client.UID = Utils.ClientID;

                var response = new BUSClient().ClientDelete(new ClientDeleteRequest()
                {
                    clientUID = client.UID, headerInfo = HeaderInfo.Instance
                });

                ListClient();
            }
        }
Пример #11
0
        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var answer = MessageBox.Show("Are you sure? Do you really want to delete the client?",
                                         "Delete Client",
                                         MessageBoxButtons.YesNo);

            if (answer == DialogResult.Yes)
            {
                Client client = new Client(HeaderInfo.Instance);
                client.UID = Convert.ToInt32(txtUID.Text);

                var response = new BUSClient().ClientDelete(
                    new ClientDeleteRequest()
                {
                    clientUID = client.UID, headerInfo = HeaderInfo.Instance
                });

                ControllerUtils.ShowFCMMessage(response.responseStatus, Utils.UserID);
            }
        }
Пример #12
0
        /// <summary>
        /// Load method
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmParserMainUI_Load(object sender, EventArgs e)
        {
            // Set current environment
            Utils.FCMenvironment = MackkadoITFramework.Helper.Utils.EnvironmentList.LOCAL;

            UILogon log = new UILogon();

            log.ShowDialog();

            if (log.connectedTo == "not connected" || string.IsNullOrEmpty(log.connectedTo))
            {
                Application.Exit();
            }

            if (log.connectedTo == "Local")
            {
                toolStripStatusLabel1.BackColor = Color.Green;
            }

            if (log.connectedTo == "Server")
            {
                toolStripStatusLabel1.BackColor = Color.Red;
            }


            // Utils.ClientList = Client.List();

            int st = ConnString.ConnectionString.IndexOf("Data Source");

            int en = ConnString.ConnectionString.IndexOf(";");

            if (st > 0 && en > 0)
            {
                string s = ConnString.ConnectionString.Substring(st, en - st);
                toolStripStatusLabel1.Text = string.Format("({0}) {1}", log.connectedTo, s);
            }
            else
            {
                toolStripStatusLabel1.Text = string.Format("({0}) {1}", log.connectedTo, ConnString.ConnectionString.Substring(0, 10));
            }

            toolStripStatusLabel2.Text = @"Version: " + ControllerUtils.GetCurrentAssemblyVersion();

            tslLoadedFrom.Text = this.Tag.ToString();


            var responseCL = new BUSClient().ClientList(HeaderInfo.Instance);

            var responseClientList = responseCL.clientList;

            // Retrieve last client id
            //
            var lastClient = new CodeValue();

            lastClient.FKCodeType = "LASTINFO";
            lastClient.ID         = "CLIENTID";
            lastClient.Read(false);
            try
            {
                Utils.ClientID = Convert.ToInt32(lastClient.ValueExtended);
            }
            catch
            {
                Utils.ClientID = Utils.ClientList[0].UID;
            }

            // Load HeaderInfo
            HeaderInfo.Instance.UserID          = Utils.UserID;
            HeaderInfo.Instance.CurrentDateTime = DateTime.Now;

            // Remove menu items

            // Get full list of screens
            var fullListOfScreens = CachedInfo.GetListOfCodeValue(FCMConstant.CodeTypeString.SCREENCODE);

            // var listOfScreen = BUSReferenceData.GetListScreensForUser(Utils.UserID);

            foreach (var screen in fullListOfScreens)
            {
                bool found = CachedInfo.ListOfScreensAllowedToUser.Any(allowedScreen => allowedScreen.ID == screen.ID);

                //foreach (var allowedScreen in CachedInfo.ListOfScreensAllowedToUser)
                //{
                //    if (allowedScreen.ID == screen.ID)
                //    {
                //        found = true;
                //        break;
                //    }
                //}

                if (found)
                {
                    continue;
                }

                // find screen disallowed and hide
                switch (screen.ID)
                {
                case FCMConstant.ScreenCode.DocumentSetLink:
                    miDocumentSetLink.Enabled = false;
                    break;

                case FCMConstant.ScreenCode.DocumentSetList:
                    miDocumentSetList.Enabled = false;
                    break;

                case FCMConstant.ScreenCode.DocumentList:
                    miDocumentList.Enabled = false;
                    break;

                case FCMConstant.ScreenCode.DocumentLink:
                    miDocumentLink.Enabled = false;
                    break;

                case FCMConstant.ScreenCode.ClientList:
                    toolStripClient.Enabled = false;
                    miListNew.Enabled       = false;
                    break;

                case FCMConstant.ScreenCode.ReportMetadata:
                    miReportMetadata.Enabled = false;
                    break;

                case FCMConstant.ScreenCode.ReferenceData:
                    miReferenceData.Enabled = false;
                    break;

                //case FCMConstant.ScreenCode.UserAccess:
                //    miUsers.Enabled = false;
                //    break;
                case FCMConstant.ScreenCode.UserSettings:
                    miUserSettings.Enabled = false;
                    break;

                case FCMConstant.ScreenCode.ImpactedDocuments:
                    miImpacted.Enabled = false;
                    break;

                case FCMConstant.ScreenCode.ProcessRequest:
                    miProcessRequest.Enabled = false;
                    break;
                }
            }

            this.Activate();

            // Utils.ClientIndex = 0;
        }
Пример #13
0
        private static void GenerateList(Program program, bool isRestart, string processName)
        {
            #region startList
            if (program.activeList.Count > 0)
            {
                // If there is a request, process the request
                //

                foreach (var request in program.activeList)
                {
                    request.SetStatusToStarted();

                    program.processRequest = request;

                    // Update request to completed
                    //
                    if (request.Type == ProcessRequest.TypeValue.DOCUMENTGENERATION.ToString())
                    {
                        // Find Values
                        //
                        var    clientUID         = 0;
                        int    clientSetID       = 0;
                        var    overrideDocument  = "Yes";
                        int    clientDocumentUID = 0;
                        string filename          = " Full Set Generated";

                        foreach (var argument in request.argumentList)
                        {
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.CLIENTUID.ToString())
                            {
                                clientUID = Convert.ToInt32(argument.Value);
                            }
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.CLIENTSETID.ToString())
                            {
                                clientSetID = Convert.ToInt32(argument.Value);
                            }
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.OVERRIDE.ToString())
                            {
                                overrideDocument = argument.Value;
                            }
                            if (argument.Code == ProcessRequestArguments.ProcessRequestCodeValues.CLIENTDOCUID.ToString())
                            {
                                clientDocumentUID = Convert.ToInt32(argument.Value);
                                if (clientDocumentUID > 0)
                                {
                                    var clientDocument = BUSClientDocument.ClientDocumentReadS(clientDocumentUID);
                                    filename = " File: " + clientDocument.FileName;
                                }
                            }
                        }

                        var client = BUSClient.ClientRead(new ClientReadRequest()
                        {
                            clientUID = clientUID, headerInfo = HeaderInfo.Instance
                        });


                        // Send email to requester
                        //
                        string emailGraham = "*****@*****.**";
                        string emailDaniel = "*****@*****.**";

                        string emailSubject = "<> STARTED <> " + DateTime.Now + "<> generation requested by: " + request.RequestedByUser +
                                              " Client: " + clientUID + " " + client.client.Name +
                                              filename;

                        string emailBody = "Generation Started: " + DateTime.Now + " <> " + emailSubject + " -- ";

                        if (request.RequestedByUser.ToUpper() == "GC0001")
                        {
                            var resp1 = FCMEmail.SendEmailSimple(
                                iRecipient: emailGraham,
                                iSubject: emailSubject,
                                iBody: emailBody);
                        }

                        var resp2 = FCMEmail.SendEmailSimple(
                            iRecipient: emailDaniel,
                            iSubject: emailSubject,
                            iBody: emailBody);


                        // 30.03.2012
                        // Mudar para processamento paralelo e async
                        //

                        // Generate Document
                        //
                        BUSFCMBackendStatus.ReportStatus(HeaderInfo.Instance, processName, "Before document generation starts.");
                        if (clientDocumentUID > 0)
                        {
                            program.GenerateDocumentsForClient(clientUID, clientSetID, program, overrideDocument, clientDocumentUID, processName, request.RequestedByUser);
                        }
                        else
                        {
                            program.GenerateFullSetOfDocumentsForClient(clientUID, clientSetID, program, overrideDocument, isRestart, processName, request.RequestedByUser);
                        }
                        // Write output to database of logs and allow access online or
                        // Write to a file and allow access online...
                        // We can see the process of the request...

                        request.SetStatusToCompleted();
                        HeaderInfo.Instance.UserID          = request.RequestedByUser;
                        HeaderInfo.Instance.CurrentDateTime = DateTime.Now;



                        // Send email to requester
                        //

                        emailSubject = "<>  ENDED  <> " + DateTime.Now + "<> generation requested by: " + request.RequestedByUser +
                                       " Client: " + clientUID + " " + client.client.Name +
                                       filename;

                        emailBody = "Generation Ended: " + DateTime.Now + " <> " + emailSubject + " -- " + "File Generated.";

                        if (request.RequestedByUser.ToUpper() == "GC0001")
                        {
                            var resp3 = FCMEmail.SendEmailSimple(
                                iRecipient: emailGraham,
                                iSubject: emailSubject,
                                iBody: emailBody);
                        }

                        var resp4 = FCMEmail.SendEmailSimple(
                            iRecipient: emailDaniel,
                            iSubject: emailSubject,
                            iBody: emailBody);
                    }
                }
            }

            #endregion
        }
Пример #14
0
        public ClientUpdateResponse ClientUpdate(ClientUpdateRequest clientUpdateRequest)
        {
            var response = new BUSClient().ClientUpdate(clientUpdateRequest);

            return(response);
        }
Пример #15
0
        public ClientAddResponse ClientAdd(ClientAddRequest clientAddRequest)
        {
            var response = new BUSClient().ClientAdd(clientAddRequest);

            return(response);
        }
Пример #16
0
        /// <summary>
        /// Add/ Update client
        /// </summary>
        /// <param name="client"></param>
        public void SaveClient()
        {
            if (cbxAssociateInitialSet.Checked)
            {
                if (comboContractorSize.SelectedIndex < 0)
                {
                    MessageBox.Show("Please select contractor size.");
                    return;
                }
            }


            // Check if the client is new.
            // If the UID is empty, it is a new client.
            // If the UID is populated, it is an existing client.
            //
            if (string.IsNullOrEmpty(txtUID.Text))
            {
                _client.UID = 0;
            }
            else
            {
                _client.UID = Convert.ToInt32(txtUID.Text);
            }

            _client.ABN                   = txtABN.Text;
            _client.Name                  = txtName.Text;
            _client.LegalName             = txtLegalName.Text;
            _client.Address               = txtAddress.Text;
            _client.Phone                 = txtPhone.Text;
            _client.Fax                   = txtFax.Text;
            _client.Mobile                = txtMobile.Text;
            _client.Logo1Location         = txtLogo1Location.Text;
            _client.Logo2Location         = "";
            _client.Logo3Location         = "";
            _client.EmailAddress          = txtEmailAddress.Text;
            _client.MainContactPersonName = txtContactPerson.Text;
            _client.FKUserID              = comboUserID.Text;
            _client.DocSetUIDDisplay      = comboContractorSize.Text;
            _client.DisplayLogo           = checkDisplayLogo.Checked ? 'Y' : 'N';

            if (string.IsNullOrEmpty(_client.DocSetUIDDisplay))
            {
                _client.FKDocumentSetUID = 0;
            }
            else
            {
                string[] part = _client.DocSetUIDDisplay.Split(';');
                _client.FKDocumentSetUID = Convert.ToInt32(part[0]);
            }

            _client.DisplayLogo = checkDisplayLogo.Checked ? 'Y' : 'N';

            _client.clientExtraInformation                         = new ClientExtraInformation();
            _client.clientExtraInformation.FKClientUID             = _client.UID;
            _client.clientExtraInformation.DateToEnterOnPolicies   = dtpDateToEnterOnPolicies.Value;
            _client.clientExtraInformation.ActionPlanDate          = dtpActionPlanDate.Value;
            _client.clientExtraInformation.CertificationTargetDate = dtpCertificationTargetDate.Value;

            _client.clientExtraInformation.ScopeOfServices              = txtScopeOfServices.Text;
            _client.clientExtraInformation.TimeTrading                  = txtTimeTrading.Text;
            _client.clientExtraInformation.RegionsOfOperation           = txtRegionsOfOperation.Text;
            _client.clientExtraInformation.OperationalMeetingsFrequency = txtOperationalMeetings.Text;
            _client.clientExtraInformation.ProjectMeetingsFrequency     = txtProjectMeetings.Text;

            // Check if it is to add / update
            if (_client.UID <= 0)
            {
                string associateInitialSet = "N";
                if (cbxAssociateInitialSet.Checked)
                {
                    associateInitialSet = "Y";
                }


                var clientAddRequest = new ClientAddRequest();
                clientAddRequest.headerInfo     = HeaderInfo.Instance;
                clientAddRequest.eventClient    = _client;
                clientAddRequest.linkInitialSet = associateInitialSet;

                // var response = new BUSClient().ClientAdd(clientAddRequest);
                var response = ClientAdd(clientAddRequest);

                ControllerUtils.ShowFCMMessage(response.responseStatus, Utils.UserID);

                _client.UID = 0;

                if (response.responseStatus.Successful)
                {
                    _client.UID           = response.clientUID;
                    txtUID.Text           = _client.UID.ToString();
                    txtRecordVersion.Text = _client.RecordVersion.ToString();
                }
            }
            else
            {
                var requestClientUpdate = new ClientUpdateRequest();
                requestClientUpdate.headerInfo  = HeaderInfo.Instance;
                requestClientUpdate.eventClient = _client;

                // var response = new BUSClient().ClientUpdate(requestClientUpdate);
                var response = ClientUpdate(requestClientUpdate);

                txtRecordVersion.Text = _client.RecordVersion.ToString(CultureInfo.InvariantCulture);

                ControllerUtils.ShowFCMMessage(response.response, Utils.UserID);
            }

            // Refresh client list
            //
            Utils.ClientID = _client.UID;

            var responseClientList = new BUSClient().ClientList(HeaderInfo.Instance);

            Utils.ClientList = responseClientList.clientList;
        }
Пример #17
0
        private void btnLogon_Click(object sender, EventArgs e)
        {
            connectedTo = "not connected";

            if (rbLocal.Checked || rbServer.Checked)
            {//ok
            }
            else
            {
                MessageBox.Show("Please select database.");
                return;
            }


            if (rbLocal.Checked)
            {
                ConnString.ConnectionString = ConnString.ConnectionStringLocal;
                connectedTo = "Local";
            }
            if (rbServer.Checked)
            {
                ConnString.ConnectionString = ConnString.ConnectionStringServer;
                connectedTo = "Server";
            }

            // Set framework db as the same at this stage
            ConnString.ConnectionStringFramework = ConnString.ConnectionString;

            if (string.IsNullOrEmpty(ConnString.ConnectionString))
            {
                return;
            }

            try
            {
                Utils.UserID = txtUserID.Text;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error loading database. Contact system administrator. " + ex.ToString());
                Application.Exit();
            }
            // Check if user is valid
            var uacnew = new UserAccess();

            var readuser = uacnew.Read(txtUserID.Text);

            if (readuser.ReturnCode == 0001 && readuser.ReasonCode == 0001)
            {
                // cool
            }
            if (readuser.ReturnCode == 0001 && readuser.ReasonCode == 0002)
            {
                MessageBox.Show("User not found.");
                return;
            }

            if (readuser.ReturnCode <= 000)
            {
                MessageBox.Show(readuser.Message);
                return;
            }

            if (string.IsNullOrWhiteSpace(uacnew.Password))
            {
                MessageBox.Show("User not found. Contact System Support.");
                return;
            }

            var response = uacnew.AuthenticateUser(txtUserID.Text, txtPassword.Text);

            if (response.ReturnCode == 0001 && response.ReasonCode == 0001)
            {
                // Cool
            }
            else
            {
                // Invalid Password
                //

                ControllerUtils.ShowFCMMessage(response.UniqueCode, txtUserID.Text, response.Message, "UILogon.cs");

                return;
            }


            var responseClientList = new BUSClient().ClientList(HeaderInfo.Instance);

            Utils.ClientList = responseClientList.clientList;

            string ret = LogFile.WriteToTodaysLogFile("User has logged on", Utils.UserID);

            if (ret != "" && ret.Length > 3 && ret.Substring(0, 5) == "Error")
            {
                MessageBox.Show(ret);
                Application.Exit();
            }

            // Retrieve User Settings - Load in memory
            //

            Utils.LoadUserSettingsInCache();
            LogFile.WriteToTodaysLogFile("User Settings loaded in cache", Utils.UserID);

            // Load reference data in cache
            //
            CachedInfo.LoadReferenceDataInCache(HeaderInfo.Instance);
            LogFile.WriteToTodaysLogFile("Reference Data loaded in cache", Utils.UserID);

            CachedInfo.LoadRelatedCodeInCache();
            LogFile.WriteToTodaysLogFile("Related code loaded in cache", Utils.UserID);

            // Set Header Info
            //
            HeaderInfo.Instance.CurrentDateTime = System.DateTime.Today;
            HeaderInfo.Instance.UserID          = txtUserID.Text;

            this.Hide();
        }
Пример #18
0
        /// <summary>
        /// Add/ Update client
        /// </summary>
        /// <param name="client"></param>
        public void SaveClient()
        {
            if (string.IsNullOrEmpty(txtUID.Text))
            {
                client.UID = 0;
            }
            else
            {
                client.UID = Convert.ToInt32(txtUID.Text);
            }

            client.ABN                   = txtABN.Text;
            client.Name                  = txtName.Text;
            client.Address               = txtAddress.Text;
            client.Phone                 = txtPhone.Text;
            client.Fax                   = txtFax.Text;
            client.EmailAddress          = txtEmailAddress.Text;
            client.MainContactPersonName = txtContactPerson.Text;
            client.FKUserID              = comboUserID.Text;
            client.DocSetUIDDisplay      = comboContractorSize.Text;
            if (string.IsNullOrEmpty(client.DocSetUIDDisplay))
            {
                client.FKDocumentSetUID = 0;
            }
            else
            {
                string[] part = client.DocSetUIDDisplay.Split(';');
                client.FKDocumentSetUID = Convert.ToInt32(part[0]);
            }

            client.DisplayLogo = checkDisplayLogo.Checked ? 'Y' : 'N';

            // Check if it is to add / update
            if (client.UID <= 0)
            {
                string associateInitialSet = "N";
                if (cbxAssociateInitialSet.Checked)
                {
                    associateInitialSet = "Y";
                }

                var response = new BUSClient().ClientAdd(new ClientAddRequest()
                {
                    headerInfo = HeaderInfo.Instance, eventClient = client, linkInitialSet = associateInitialSet
                });
            }
            else
            {
                var response = new BUSClient().ClientUpdate(new ClientUpdateRequest()
                {
                    eventClient = client, headerInfo = HeaderInfo.Instance
                });

                ReplaceRowSelected();
            }

            // Refresh client list
            //
            Utils.ClientID = client.UID;

            var responseClientList = new BUSClient().ClientList(HeaderInfo.Instance);

            Utils.ClientList = responseClientList.clientList;

            ListClient();
        }
Пример #19
0
        public ThreadClient(Socket S_sockClient, server MyServer)
        {
            this.S_connectClient = S_sockClient;
            myServer             = MyServer;
            for (int i = 0; i < 10; i++)
            {
                listDataSemaphore[i] = new Queue <string>();
            }
            string command  = "";
            string username = "";
            string password = "";
            string numport  = "";

            byte[] bufData;
            int    exit = 0;

            try
            {
                if (this.S_connectClient != null)
                {
                    int i_DataFile = 0;
                    while (true)
                    {
                        //Receive name, size of file download :
                        bufData    = new byte[1024];
                        i_DataFile = S_connectClient.Receive(bufData);

                        char[] chars_DataFile          = new char[i_DataFile];
                        System.Text.Decoder d_DataFile = System.Text.Encoding.UTF8.GetDecoder();
                        int           charLen          = d_DataFile.GetChars(bufData, 0, i_DataFile, chars_DataFile, 0);
                        System.String S_DataFile       = new System.String(chars_DataFile);

                        Arr = S_DataFile.Split(new char[] { '@' });
                        if (Arr[0].Contains("\0"))
                        {
                            clientUpdate();
                            exit = 1;
                            break;
                        }

                        command  = Arr[0];
                        username = Arr[1];
                        password = Arr[2];

                        switch (command)
                        {
                        //Register@UserName@UserPass@UserPort@null.
                        case "Register":
                        {
                            if (BUSClient.Test(username) == true)
                            {
                                DTOClient client = new DTOClient();
                                client.UserName = username;
                                client.PassWord = password;

                                //========Mien Gang===================
                                S_updateClient.WaitOne();
                                bool rs = BUSClient.Insert(client);
                                S_updateClient.Release();
                                //==========Mien Gang==================

                                if (rs == false)
                                {
                                    String S_Error = "Cannot create Account";
                                    byte[] byData  = System.Text.Encoding.ASCII.GetBytes(S_Error);
                                    this.S_connectClient.Send(byData);
                                }
                                else
                                {
                                    String S_Error = "Accept";
                                    byte[] byData  = System.Text.Encoding.ASCII.GetBytes(S_Error);
                                    this.S_connectClient.Send(byData);
                                }
                            }
                            else
                            {
                                String S_Error = "Username has existed!";
                                byte[] byData  = System.Text.Encoding.ASCII.GetBytes(S_Error);
                                this.S_connectClient.Send(byData);
                            }
                            exit = 1;
                        }
                        break;

                        //"Login @UserName @UserPass @PortListen @ IPClient@null
                        case "Login":
                        {
                            User    = username;
                            numport = Arr[3];
                            if (BUSClient.TestLogin(username, password) == true)
                            {
                                String S_Login = "******";
                                byte[] byData  = System.Text.Encoding.ASCII.GetBytes(S_Login);
                                this.S_connectClient.Send(byData);

                                DTOClient client = new DTOClient();
                                client.UserName = username;
                                client.PassWord = password;
                                client.IPAdr    = Arr[4];
                                client.NumPort  = Convert.ToInt32(numport, 10);
                                client.FlagSta  = true;
                                BUSData.DeleteAll(username);

                                //=========Mien Gang================
                                S_updateClient.WaitOne();
                                BUSClient.Update(client);
                                S_updateClient.Release();
                                //=========Mien Gang================

                                LoginClient.IPAdr   = Arr[4];
                                LoginClient.NumPort = Convert.ToInt32(numport, 10);

                                //Kiem tra xem co thread nao dang Wait Download ?
                                Thread T_testLogin = new Thread(new ThreadStart(testLogin));
                                T_testLogin.IsBackground = true;
                                T_testLogin.Start();
                            }
                            else
                            {
                                String S_Error = "Bad";
                                byte[] byData  = System.Text.Encoding.ASCII.GetBytes(S_Error);
                                this.S_connectClient.Send(byData);
                            }
                            numport = "";
                        }
                        break;

                        //@quit@username@IPClient@null.
                        case "Quit":
                        {
                            try
                            {
                                //=================Mien Gang truy xuat du lieu =====================================
                                S_getClient.WaitOne();
                                List <DTOClient> listClient = BUSClient.getListClient();
                                S_getClient.Release();
                                //=================Mien Gang truy xuat du lieu ====================================

                                foreach (DTOClient client in listClient)
                                {
                                    if (client.UserName.ToLower() == username.ToLower() && client.IPAdr == Arr[2])
                                    {
                                        client.FlagSta = false;

                                        //=========Mien Gang================
                                        S_updateClient.WaitOne();
                                        BUSClient.Update(client);
                                        S_updateClient.Release();
                                        //=========Mien Gang================

                                        String S_Error = "Quit";
                                        byte[] byData  = System.Text.Encoding.ASCII.GetBytes(S_Error);
                                        this.S_connectClient.Send(byData);
                                        S_connectClient.Close();
                                        exit = 1;
                                        break;
                                    }
                                }
                                if (exit == 0)
                                {
                                    String S_No   = "No";
                                    byte[] byS_No = System.Text.Encoding.ASCII.GetBytes(S_No);
                                    this.S_connectClient.Send(byS_No);
                                    S_connectClient.Close();
                                }
                            }
                            catch (SocketException)
                            {
                            }
                        }
                        break;

                        //"Share@ FileName@ FileSize@ UserName@ null"
                        case "Share":
                        {
                            //========================CS===============================
                            S_getClient.WaitOne();
                            List <DTOClient> listClient = BUSClient.getListClient();
                            S_getClient.Release();
                            //========================CS===============================

                            string[] ipp   = (S_connectClient.RemoteEndPoint.ToString()).Split(new char[] { ':' });
                            DTOData  share = new DTOData();

                            foreach (DTOClient client in listClient)
                            {
                                if (string.Compare(client.UserName, Arr[3], true) == 0)
                                {
                                    if (BUSData.checkFile(username, client.IDClient) == true)
                                    {
                                        share.FileName = username;
                                        share.Size     = Convert.ToInt32(password);
                                        share.IDClient = client.IDClient;

                                        //=======Truy xuat tai nguyn du lieu Data================
                                        S_updateClient.WaitOne();
                                        BUSData.Insert(share);
                                        S_updateClient.Release();
                                        //=======Truy xuat tai nguyn du lieu Data================
                                    }

                                    String S_Next = "Next";
                                    byte[] byNext = System.Text.Encoding.ASCII.GetBytes(S_Next);
                                    this.S_connectClient.Send(byNext);

                                    break;
                                }
                            }
                        }
                        break;

                        //Search@FileName@null.
                        case "Search":     // tien hanh search file do Client gửi len
                        {
                            List <DTOData> listFile = BUSData.Search(username, password);
                            int            count    = listFile.Count;
                            string         infor    = "";

                            // Khong tim duoc thi gui cho Client chuoi Null de thong bao
                            if (count == 0)
                            {
                                infor = "Null@Null@Null@Null@Null@Null";
                                byte[] byinfor = System.Text.Encoding.ASCII.GetBytes(infor);
                                this.S_connectClient.Send(byinfor);
                            }
                            else
                            {
                                //Begin Search file in Clientt :
                                foreach (DTOData file in listFile)
                                {
                                    //Get information from Client :
                                    DTOClient client = BUSClient.Search(file.IDClient);
                                    if (client == null)
                                    {
                                        count--;
                                    }
                                    else
                                    {
                                        bufData = new byte[1024];
                                        //Information : file+size+IP+Port+Flag
                                        if (count > 1)
                                        {
                                            infor = file.FileName + "@" + file.Size.ToString() + "@" + client.IPAdr + "@" + client.NumPort.ToString() + "@" + client.UserName + "@" + client.FlagSta.ToString() + "@Next";
                                        }
                                        else
                                        {
                                            infor = file.FileName + "@" + file.Size.ToString() + "@" + client.IPAdr + "@" + client.NumPort.ToString() + "@" + client.UserName + "@" + client.FlagSta.ToString() + "@End";
                                        }
                                        byte[] byinfor = System.Text.Encoding.ASCII.GetBytes(infor);
                                        this.S_connectClient.Send(byinfor);

                                        //Reveice information from Client :
                                        byte[] bysearch     = new byte[1024];
                                        int    i_DataSearch = this.S_connectClient.Receive(bysearch);

                                        char[] chars_DataSearch          = new char[i_DataSearch];
                                        System.Text.Decoder d_DataSearch = System.Text.Encoding.UTF8.GetDecoder();
                                        int           charLenSearch      = d_DataSearch.GetChars(bysearch, 0, i_DataSearch, chars_DataSearch, 0);
                                        System.String S_DataSearch       = new System.String(chars_DataSearch);

                                        //nhan duoc chuoi "Next"thi tiep tuc send thong tin file tim thay :
                                        if (S_DataSearch == "Next")
                                        {
                                            infor = "";
                                            count--;
                                        }
                                        //nhan chuoi "End" tuc la da gui het tat ca file da tim thay va thoat khoi vong lap :
                                        if (S_DataSearch == "End")
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        break;

                        //Start  : Download @nameFile @size @Username @Me @null.
                        //Ending : Download @Finish @fileName @username @null.
                        case "Download":
                        {
                            //=================Mien Gang truy xuat du lieu ====================================
                            S_getClient.WaitOne();
                            List <DTOClient> listClient = BUSClient.getListClient();
                            List <DTOData>   listData   = BUSData.getListData();
                            S_getClient.Release();
                            //=================Mien Gang truy xuat du lieu ====================================

                            bool i_show = false;
                            if (username == "Finish")
                            {
                                // Khi qua trinh download ket thuc :
                                foreach (DTOClient client in listClient)
                                {
                                    if (client.UserName == Arr[3])
                                    {
                                        foreach (DTOData data in listData)
                                        {
                                            if (data.FileName == Arr[2] && data.IDClient == client.IDClient)
                                            {
                                                data.FlagSta = false;

                                                //=======Mien Gang la truy xuat du lieu ===============
                                                S_updateClient.WaitOne();
                                                BUSData.Update(data);
                                                S_updateClient.Release();
                                                //=======Mien Gang la truy xuat du lieu ===============

                                                String temp = Arr[2] + "-" + Arr[3];
                                                for (int i = 0; i < listNameSemaphore.Count; i++)
                                                {
                                                    if (temp == listNameSemaphore[i])
                                                    {
                                                        try
                                                        {
                                                            listCheckFile[i] = false;
                                                            listSemaphore[i].Release();
                                                        }
                                                        catch (AbandonedMutexException se)
                                                        {
                                                            MessageBox.Show(se.Message);
                                                        }
                                                        break;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            //Download @nameFile @size @Username @Me @null.
                            else
                            {
                                //Bat dau kiem tra file co trang thai nhu the nao ?
                                foreach (DTOClient client in listClient)
                                {
                                    if (client.UserName == Arr[3])
                                    {
                                        foreach (DTOData data in listData)
                                        {
                                            if (data.IDClient == client.IDClient)
                                            {
                                                // TIM KIEM TEN FILE :
                                                if (data.FileName == Arr[1])
                                                {
                                                    //kiem tra xem da tao mutes voi ten file nay chua ?
                                                    nameSemaphore = Arr[1] + "-" + Arr[3];
                                                    if (!check(nameSemaphore))
                                                    {
                                                        //neu chua thi tao Mutex voi ten file va UserName:
                                                        Semaphore S_mutex = new Semaphore(1, 1);
                                                        listSemaphore.Add(S_mutex);
                                                        listNameSemaphore.Add(nameSemaphore);
                                                        listCheckFile.Add(false);
                                                    }
                                                    //tim kiem ten Mutex ung voi ten file :
                                                    for (int i = 0; i < listNameSemaphore.Count; i++)
                                                    {
                                                        if (nameSemaphore == listNameSemaphore[i])
                                                        {
                                                            //Neu ko co file nao downlaod thi bat dau download :
                                                            if (listCheckFile[i] == false)
                                                            {
                                                                listSemaphore[i].WaitOne();
                                                                //send tin hieu download cho client :
                                                                String S_Start = "Start";
                                                                byte[] byStart = System.Text.Encoding.ASCII.GetBytes(S_Start);
                                                                this.S_connectClient.Send(byStart);
                                                                listCheckFile[i] = true;
                                                                data.FlagSta     = true;

                                                                //=======Mien Gang la truy xuat du lieu ===============
                                                                S_updateClient.WaitOne();
                                                                BUSData.Update(data);
                                                                S_updateClient.Release();
                                                                //=======Mien Gang la truy xuat du lieu ===============

                                                                break;
                                                            }

                                                            //Neu da co Clien dang download thi tao thread vao hang doi :
                                                            else
                                                            {
                                                                //tiem kiem ten mutex de vao hang doi mutex :
                                                                //==============Mien Gang la bien i_Semaphore================================
                                                                S_iSemaphore.WaitOne();
                                                                DownData = data;
                                                                for (i_Semaphore = 0; i_Semaphore < listNameSemaphore.Count; i_Semaphore++)
                                                                {
                                                                    //Tim thay ten Mutex ung voi ten file-User :
                                                                    if (nameSemaphore == listNameSemaphore[i_Semaphore])
                                                                    {
                                                                        // endWaiting @IPCLient @PorClient @NameFile @online @ClientShare @null - IPMe @PortMe.
                                                                        foreach (DTOClient clientMe in listClient)
                                                                        {
                                                                            if (clientMe.UserName == Arr[4])
                                                                            {
                                                                                //Luu thong tin cua thread vao hang doi ung voi thread do :
                                                                                String temp = "endWaiting@" + client.IPAdr + "@" + client.NumPort + "@" + data.FileName + "@true@" + Arr[3] + "@null-" + clientMe.IPAdr + "@" + clientMe.NumPort;
                                                                                listDataSemaphore[i_Semaphore].Enqueue(temp);
                                                                                break;
                                                                            }
                                                                        }

                                                                        //tao thread vao hang doi cua Mutex :
                                                                        Thread T_waitSemaphore = new Thread(new ThreadStart(waitDownload));
                                                                        T_waitSemaphore.Start();
                                                                        T_waitSemaphore.Join(100);
                                                                    }
                                                                }
                                                                S_iSemaphore.Release();
                                                                //==============Mien Gang la bien i_Mutex================================
                                                                //send tin hieu waiting cho client :
                                                                String S_Wait = "Wait";
                                                                byte[] byWait = System.Text.Encoding.ASCII.GetBytes(S_Wait);
                                                                this.S_connectClient.Send(byWait);
                                                                break;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        i_show = true;
                                        break;
                                    }
                                }
                            }

                            if (i_show == true)
                            {
                                addDownload("Loading", "true");
                            }
                        }
                        break;

                        //Download ofline :
                        //Offline @nameFile @size @Username @IPofMe @PortofMe @null.
                        case "Offline":
                        {
                            for (int i = 0; i < numThread; i++)
                            {
                                if (T_downloadWait[i] == null)
                                {
                                    Thread T_waiting = new Thread(new ThreadStart(beginWait));
                                    T_waiting.Name          = Arr[3] + "@" + i.ToString();
                                    T_downloadWait[i]       = T_waiting;
                                    myServer.DataWait[i][0] = Arr[1];         // name file
                                    myServer.DataWait[i][1] = Arr[3];         // name Client.
                                    myServer.DataWait[i][2] = Arr[4];         //IP Me
                                    myServer.DataWait[i][3] = Arr[5];         // Port Me

                                    addDownload("Waiting", "true");
                                    break;
                                }
                            }
                        }
                        break;

                        case "endOffline":
                        {
                            S_offlineDown.Release();
                        }
                        break;
                        }
                        if (exit == 1)
                        {
                            break;
                        }
                    }
                }
            }
            catch (SocketException)
            {
                clientUpdate();
            }
        }
Пример #20
0
        private void sendEmailToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var answer = MessageBox.Show("Would you like to send emails to impacted clients?",
                                         "Send email",
                                         MessageBoxButtons.YesNo);

            if (answer != DialogResult.Yes)
            {
                return;
            }

            Cursor.Current = Cursors.WaitCursor;

            List <Client> listOfClients = new List <Client>();

            // Get file name
            //
            string filePathName = Utils.getFilePathName(
                document.Location,
                document.FileName);

            if (!File.Exists(filePathName))
            {
                MessageBox.Show("File not found. " + filePathName);
                return;
            }


            // Select client to send email and show before send
            //
            var impacted = new ClientDocument();

            // impacted.ListImpacted(document);

            BUSClientDocument.ListImpacted(impacted, document);

            foreach (var doco in impacted.clientDocSetDocLink)
            {
                var response =
                    BUSClientContract.GetValidContractOnDate(doco.clientDocument.FKClientUID, System.DateTime.Today);

                if (response.ReturnCode == 0001 && response.ReasonCode == 0001)
                {
                    //Client client = new Client(HeaderInfo.Instance);
                    //client.UID = doco.clientDocument.FKClientUID;

                    ClientReadRequest crr = new ClientReadRequest();
                    crr.clientUID  = doco.clientDocument.FKClientUID;
                    crr.headerInfo = HeaderInfo.Instance;

                    var busClientResponse = BUSClient.ClientRead(crr);

                    //var busClientResponse = client.Read();

                    listOfClients.Add(busClientResponse.client);
                }
            }

            if (listOfClients.Count <= 0)
            {
                return;
            }

            string subject = "Document updated";
            string body    = "The document " + document.Name + " has been updated.";

            var resp = SendEmailToGroup(
                clientList: listOfClients,
                iSubject: subject,
                iBody: body,
                Attachment: filePathName);

            MessageBox.Show(resp.Message);

            Cursor.Current = Cursors.Arrow;
        }
Пример #21
0
        private void ListImpact(Document document, int h = 16, int w = 16)
        {
            // Clear nodes
            tvDocumentList.Nodes.Clear();

            var impacted = new ClientDocument();

            // impacted.ListImpacted(document);

            BUSClientDocument.ListImpacted(impacted, document);

            TreeNode rootNode = new TreeNode("Impacted List", FCMConstant.Image.Folder, FCMConstant.Image.Folder);

            rootNode.Name = "Impacted List";
            tvDocumentList.Nodes.Add(rootNode);

            foreach (var doco in impacted.clientDocSetDocLink)
            {
                // string clientName = Client.ReadFieldClient(DBFieldName.Client.Name, doco.clientDocument.FKClientUID);

                var clientField = new Client(HeaderInfo.Instance);

                // string clientName = clientField.ReadFieldClient(DBFieldName.Client.Name, doco.clientDocument.FKClientUID);
                var readFieldClientResponse = new BUSClient().ReadFieldClient(
                    new ReadFieldRequest()
                {
                    clientUID = doco.clientDocument.FKClientUID, field = FCMDBFieldName.Client.Name, headerInfo = HeaderInfo.Instance
                });

                string clientName = readFieldClientResponse.fieldContents;

                // 1) Add client to tree
                //
                // 1.1) Find out current contract information
                // 1.2) Display document version
                // 1.3) Check if document has been further updated
                var response =
                    BUSClientContract.GetValidContractOnDate(doco.clientDocument.FKClientUID, System.DateTime.Today);

                // Successful
                ClientContract clientContractValid = new ClientContract();
                string         validContract       = @";Contract=N/A";
                if (response.ReturnCode == 0001 && response.ReasonCode == 0001)
                {
                    clientContractValid = (ClientContract)response.Contents;
                    validContract       = ";Contract=Valid";
                }

                int imageClient = Utils.GetClientLogoImageSeqNum(doco.clientDocument.FKClientUID);

                string NameToDisplay = clientName + " ==> " +
                                       validContract +
                                       "; Version: " +
                                       doco.clientDocument.ClientIssueNumber.ToString();

                TreeNode clientNode = new TreeNode(NameToDisplay, imageClient, imageClient);
                clientNode.Name = doco.clientDocument.FKClientUID.ToString();
                clientNode.Tag  = doco;
                rootNode.Nodes.Add(clientNode);

                // Add Client Document Set to tree
                //
                TreeNode clientDocumentSetNode = new TreeNode("Set " + doco.clientDocument.FKClientDocumentSetUID.ToString(), FCMConstant.Image.Folder, FCMConstant.Image.Folder);
                clientDocumentSetNode.Name = "Set " + doco.clientDocument.FKClientDocumentSetUID.ToString("0000");
                clientDocumentSetNode.Tag  = doco;
                clientNode.Nodes.Add(clientDocumentSetNode);

                // Add document to tree
                //
                int      image        = Utils.GetFileImage(doco.clientDocument.SourceFilePresent, doco.clientDocument.DestinationFilePresent, doco.clientDocument.DocumentType);
                TreeNode documentNode = new TreeNode(txtDocumentName.Text, image, image);
                documentNode.Name = txtDocumentName.Text;
                documentNode.Tag  = doco;
                clientDocumentSetNode.Nodes.Add(documentNode);
            }

            if (tvDocumentList.Nodes.Count > 0)
            {
                tvDocumentList.Nodes[0].Expand();
            }
        }
Пример #22
0
        public WordReport(int ClientID, int ClientDocSetID, IOutputMessage UIoutput = null,
                          string OverrideDocuments = null)
        {
            row = 1;

            // Set private attributes
            clientID       = ClientID;
            clientDocSetID = ClientDocSetID;
            uioutput       = UIoutput;

            // Instantiate Word
            //
            vkFalse = false;

            vkWordApp = new Word.Application();

            // Make it not visible
            vkWordApp.Visible = false;

            vkExcelApp = new Excel.Application();

            // Make it not visible
            vkExcelApp.Visible = false;

            // Make it not visible
            oApplication         = new Application();
            oApplication.Visible = false;

            // Get Metadata for client

            clientMetadata = new ReportMetadataList();
            clientMetadata.ListMetadataForClient(clientID);

            ts = new List <WordDocumentTasks.TagStructure>();

            // Load variables/ metadata into memory
            //
            #region ClientMetadata
            foreach (ReportMetadata metadata in clientMetadata.reportMetadataList)
            {
                // Retrieve value for the field selected
                //
                string value = metadata.GetValue();

                // If the field is not enabled, the program has to replace the value with spaces.
                //
                var valueOfTag = metadata.Enabled == 'Y' ? value : string.Empty;

                // When the field is an image and it is not enable, do not include the "No image" icon in the list
                //
                if (metadata.InformationType == MackkadoITFramework.Helper.Utils.InformationType.IMAGE && metadata.Enabled == 'N')
                {
                    continue;
                }

                ts.Add(new WordDocumentTasks.TagStructure()
                {
                    TagType  = metadata.InformationType,
                    Tag      = metadata.FieldCode,
                    TagValue = valueOfTag
                });
            }
            #endregion ClientMetadata

            // Get Client Document Set Details
            // To get the source and destination folders
            cds = new ClientDocumentSet();
            cds.Get(clientID, clientDocSetID);

            valueForProgressBar = 0;
            startTime           = System.DateTime.Now.ToString();

            client = new Client();
            ClientReadRequest crr = new ClientReadRequest();
            crr.clientUID = clientID;
            var response = BUSClient.ClientRead(crr);

            client = response.client;
        }