Esempio n. 1
0
        /// <summary>
        /// btnCreate_Click - button click event for inserting new track worker into database
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCreate_Click(object sender, EventArgs e)
        {
            bool bFirstNameValid = ValidatingFirstNameTextbox();
            bool bLastNameValid  = ValidatingLastNameTextbox();
            bool bCellValid      = ValidatingCellTextbox();
            bool bEmailValid     = ValidatingEmailTextbox();

            if (bFirstNameValid && bLastNameValid && bCellValid && bEmailValid)
            {
                TrackWorkerModel trackWorker = new TrackWorkerModel();
                trackWorker.FirstName        = txtTrackWorkerFirstName.Text.Trim();
                trackWorker.LastName         = txtTrackWorkerLastName.Text.Trim();
                trackWorker.Cell             = txtTrackWorkerCell.Text.Trim();
                trackWorker.Email            = txtTrackWorkerEmail.Text.Trim();
                trackWorker.IsCapableCaptain = rdoIsCapableCaptain_True.Checked ? true : false;

                try
                {
                    TrackWorkerDataAccess.SaveTrackWorker(trackWorker);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Runtime Error\n" + ex.Message, "Unexpected Error",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    this.Close();
                }
            }
        }
        /// <summary>
        /// btnSend_Click - for sending email
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSend_Click(object sender, EventArgs e)
        {
            if (stringBodyHTML == null)
            {
                MessageBox.Show("You haven't click any event", "Status Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                stringBodyHTML           = "<p>" + txtEmailBody.Text.ToString() + "</p>" + stringBodyHTML;
                webBrowser.DocumentText += stringBodyHTML;

                MailAddress from         = new MailAddress("*****@*****.**", "Ben Miller");
                string      fromPassword = "******";

                MailMessage message = new MailMessage();
                message.From       = from;
                message.IsBodyHtml = true;

                message.Subject = txtEmailSubject.Text.ToString();
                message.Body    = stringBodyHTML;

                foreach (int trackWorkerId in allClientEventTrackWorkerIdList)
                {
                    TrackWorkerModel trackWorker = TrackWorkerDataAccess.LoadTrackWorker(trackWorkerId);
                    //BCC
                    message.Bcc.Add(trackWorker.Email);
                    //To - regular
                    //message.To.Add(trackWorker.Email);
                }

                //SmtpClient client = new SmtpClient
                //{
                //    Host = "smtp.gmail.com",
                //    Port = 587,
                //    EnableSsl = true,
                //    DeliveryMethod = SmtpDeliveryMethod.Network,
                //    UseDefaultCredentials = false,
                //    Credentials = new NetworkCredential(from.Address, fromPassword)
                //};

                var client = new SmtpClient("smtp.mailtrap.io", 2525)
                {
                    Credentials = new NetworkCredential("e105e0282339a3", "ac1ce2513bda52"),
                    EnableSsl   = true
                };

                Console.WriteLine("Sending an email message to {0} and {1}.",
                                  from.DisplayName, message.Bcc.ToString());
                try
                {
                    client.Send(message);
                    MessageBox.Show("Sucessfully delivered email", "Status Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    stringBodyHTML = "";
                }
                catch (SmtpException ex)
                {
                    MessageBox.Show("Failed in sending email", "Status Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        /// <summary>
        /// DataGridViewForm - add selected track worker for client event
        /// </summary>
        /// <param name="clientEventForm"></param>
        /// <param name="clientsEvents_TrackWorkersList"></param>
        public DataGridViewForm(ClientEventForm clientEventForm, List <ClientEvents_TrackWorkersModel> clientsEvents_TrackWorkersList)
        {
            //TODO Need to Make is sticky for update
            InitializeComponent();
            List <TrackWorkerModel> appliedTrackWorkerIdList = new List <TrackWorkerModel>();

            foreach (ClientEvents_TrackWorkersModel clientsEvents_TrackWorkers in clientsEvents_TrackWorkersList)
            {
                appliedTrackWorkerIdList.Add(TrackWorkerDataAccess.LoadTrackWorker(clientsEvents_TrackWorkers.TrackWorkerID));
            }

            var dataTable = ToDataTable(appliedTrackWorkerIdList);

            dataTable.Columns.Add("Selected", typeof(bool)).SetOrdinal(0);
            dataTable.Columns.Add("Present", typeof(bool)).SetOrdinal(1);
            dgvData.DataSource        = dataTable;
            dgvData.CellContentClick += dgrvProductTemplate_CellContentClick;
            dgvData.MultiSelect       = false;
            dgvData.ReadOnly          = false;
            int dgv_width = dgvData.Columns.GetColumnsWidth(DataGridViewElementStates.Visible);

            this.Width = 365 + dgv_width;

            if (clientsEvents_TrackWorkersList != null)
            {
                foreach (DataGridViewRow row in dgvData.Rows)
                {
                    DataGridViewCheckBoxCell isSelectedCell = row.Cells["Selected"] as DataGridViewCheckBoxCell;
                    DataGridViewCheckBoxCell isPresentCell  = row.Cells["Present"] as DataGridViewCheckBoxCell;
                    isSelectedCell.Value = false;
                    isPresentCell.Value  = false;
                    foreach (ClientEvents_TrackWorkersModel trackWorkerId in clientsEvents_TrackWorkersList)
                    {
                        if (row.Cells["TrackWorkerID"].Value.ToString() == trackWorkerId.TrackWorkerID.ToString())
                        {
                            isSelectedCell.Value = trackWorkerId.IsSelected;
                            isPresentCell.Value  = trackWorkerId.IsPresent;
                        }
                    }
                }
            }

            foreach (DataGridViewColumn column in dgvData.Columns)
            {
                if (column.HeaderText == "Selected" || column.HeaderText == "Present")
                {
                    column.ReadOnly = false;
                }
                else
                {
                    column.ReadOnly = true;
                }
            }

            btnSelect.Click += btnSelectedTrackWorker_Click;
            _clientEventForm = clientEventForm;
        }
        /// <summary>
        /// RefreshDataGridViewTrackWorker - refresh track worker data grid view
        /// </summary>
        public void RefreshDataGridViewTrackWorker()
        {
            List <TrackWorkerModel> list         = TrackWorkerDataAccess.LoadAllTrackWorker();
            DataGridView            dataGridView = dgvTrackWorker;
            DataTable dataTable = ToDataTable(list);

            //dataTable.Columns["TrackWorkerID"].ColumnName = "Track Worker ID";

            dataGridView.DataSource = dataTable;
            //dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
            dataGridView.AutoResizeColumns();
            dataGridView.AutoResizeRows();

            //dataGridView.Columns["Id"].HeaderText = "Track Worker ID";
            //dataGridView.Columns["IsDeleted"].Visible = false;

            int dgv_width = dataGridView.Columns.GetColumnsWidth(DataGridViewElementStates.Visible);

            this.Width = 365 + dgv_width;

            dataGridView.ClearSelection();
            txtTrackWorkerSearch.Clear();
        }
        /// <summary>
        /// SetWebBrowserTable - for creating html mail
        /// </summary>
        public void SetWebBrowserTable()
        {
            List <ClientEventModel> clientEventModelsList = new List <ClientEventModel>();

            allClientEventTrackWorkerIdList = new List <int>();
            foreach (int clientEventId in _clientEventIdList)
            {
                ClientEventModel clientEvent = ClientEventDataAccess.LoadClientEvent(clientEventId);
                clientEvent.TrackWorkersId      = ClientEvents_TrackWorkersDataAccess.LoadClientEventTrackWorkerIDList(clientEventId);
                allClientEventTrackWorkerIdList = allClientEventTrackWorkerIdList.Union(clientEvent.TrackWorkersId).ToList();
                clientEventModelsList.Add(clientEvent);
            }

            stringBodyHTML += "<table style=\"border: 1px solid black;text-align:center;\">";
            stringBodyHTML += "<tr>";
            stringBodyHTML += "<td></td>";
            foreach (ClientEventModel clientEvent in clientEventModelsList)
            {
                ClientModel client = ClientDataAccess.LoadClient(clientEvent.ClientID);
                stringBodyHTML += "<td style=\"border: 1px solid black;\">" + client.Name + "</td>";
            }
            stringBodyHTML += "</tr>";
            stringBodyHTML += "<tr>";
            stringBodyHTML += "<td></td>";
            foreach (ClientEventModel clientEvent in clientEventModelsList)
            {
                stringBodyHTML += "<td style=\"border: 1px solid black;\">" + clientEvent.Date + "</td>";
            }
            stringBodyHTML += "</tr>";
            stringBodyHTML += "<tr>";
            stringBodyHTML += "<td style=\"border: 1px solid black;\"># Workers Needed</td>";
            foreach (ClientEventModel clientEvent in clientEventModelsList)
            {
                stringBodyHTML += "<td style=\"border: 1px solid black;\">" + clientEvent.WorkersRequested + "</td>";
            }
            stringBodyHTML += "</tr>";
            stringBodyHTML += "<tr>";
            stringBodyHTML += "<td style=\"border: 1px solid black;\">Track</td>";
            foreach (ClientEventModel clientEvent in clientEventModelsList)
            {
                TrackModel track = TrackDataAccess.LoadTrack(clientEvent.TrackID);
                stringBodyHTML += "<td style=\"border: 1px solid black;\">" + track.Name + "</td>";
            }
            stringBodyHTML += "</tr>";

            stringBodyHTML += "<tr><td><b>Worker Name</b></td></tr>";
            foreach (int trackWorkerId in allClientEventTrackWorkerIdList)
            {
                stringBodyHTML += "<tr>";
                TrackWorkerModel trackWorker = TrackWorkerDataAccess.LoadTrackWorker(trackWorkerId);
                stringBodyHTML += "<td style=\"border: 1px solid black;\">" + trackWorker.FullName() + "</td>";
                foreach (ClientEventModel clientEvent in clientEventModelsList)
                {
                    if (clientEvent.TrackWorkersId.Contains(trackWorkerId))
                    {
                        stringBodyHTML += "<td style=\"border: 1px solid black;\">X</td>";
                    }
                    else
                    {
                        stringBodyHTML += "<td style=\"border: 1px solid black;\">&nbsp;</td>";
                    }
                }
                stringBodyHTML += "</tr>";
            }
            stringBodyHTML += "</table>";

            //webBrowser.DocumentText += stringTableHTML;
        }
        /// <summary>
        /// btnManageTrackWorker_Click - for adding track worker for client event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnManageTrackWorker_Click(object sender, EventArgs e)
        {
            DataGridViewForm dataGridViewForm = new DataGridViewForm(this, TrackWorkerDataAccess.LoadTrackWorker(), _clientsEvents_TrackWorkers);

            dataGridViewForm.ShowDialog();
        }