private void CopyToClipboardButton_Click(object sender, EventArgs e) { if (EmailResultTextBox.Text.Length == 0) { return; } Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); excelApp.Visible = true; _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing)); _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet; TicketRepository ticketRepo = new TicketRepository(); List<TicketResource> listOfTickets = ticketRepo.GetDistinctEmailAddressBetweenDates(StartingDatePicker.Value, EndingDatePicker.Value); for (int i = 0; i < listOfTickets.Count; i++) { TicketResource ticket = listOfTickets[i]; int row = i + 1; worksheet.Cells[row, "A"] = ticket.LastName; worksheet.Cells[row, "B"] = ticket.FirstName; worksheet.Cells[row, "C"] = ticket.Email; } worksheet.Columns["A:C"].AutoFit(); }
public AlterationForm(CustomerResource customer) { Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ConfigurationRepository configRepo = new ConfigurationRepository(); maxAlterations = Convert.ToDouble(configRepo.GetConfigrationSettings().Where(x => x.Setting == "maxAlterations").Select(x => x.Value).DefaultIfEmpty("").First()); TicketRepository ticketRepo = new TicketRepository(); alterationToatalForDays = ticketRepo.GetAlterationToatalForDays(); SetupForm(); this.customer = customer; customerId = customer.CustomerId; isNewAlteration = true; TicketNumberLabel.Hide(); DateInPicker.Value = DateTime.Today; var readyDate = GetNextValidDateNotOverMaxAlterations(DateTime.Today.AddDays(7)); DateReadyPicker.Value = readyDate; previousStatus = "a"; NewTicketWithCustomerBttn.Enabled = false; TitleComboBox.Text = customer.Title; FirstNameTextBox.Text = customer.FirstName; MiddleNameTextBox.Text = customer.MiddleName; LastNameTextBox.Text = customer.LastName; AddressTextBox.Text = customer.Address; CityTextBox.Text = customer.City; StateTextBox.Text = customer.State; ZipTextBox.Text = customer.Zip; PhoneTextBox.Text = customer.Telephone; EmailTextBox.Text = customer.Email; }
private void CreateTicketWithUserBttn_Click(object sender, EventArgs e) { int selectedIndex = ResultGrid.CurrentCell.RowIndex; int ticketId = Convert.ToInt32(ResultGrid.Rows[selectedIndex].Cells["TicketIdCol"].Value); try { TicketRepository ticketRepo = new TicketRepository(); TicketResource ticketRes = ticketRepo.GetCustomerInfoBasedOnTicketId(ticketId); AlterationForm alterationForm = new AlterationForm(ticketRes); alterationForm.Show(); } catch (Exception ex) { MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message); } //TODO ask neil which behavior he prefers //EnableButtonsBasedOnGrid(); this.Close(); }
private void DeleteTicketButton_Click(object sender, EventArgs e) { int selectedIndex = ResultGrid.CurrentCell.RowIndex; int ticketId = Convert.ToInt32(ResultGrid.Rows[selectedIndex].Cells["TicketIdCol"].Value); if (MessageBox.Show("This will delete ticket #" + ticketId + ". Are you sure?", "Delete Ticket", MessageBoxButtons.YesNo) == DialogResult.Yes) { try { TicketRepository ticketRepo = new TicketRepository(); ticketRepo.DeleteTicketByTicketID(ticketId); TicketAlterationRepository alterationRepo = new TicketAlterationRepository(); alterationRepo.DeleteAlterationsByTicketID(ticketId); ResultGrid.Rows.RemoveAt(selectedIndex); } catch (Exception ex) { MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message); } EnableButtonsBasedOnGrid(); } }
//@return true if successful save private Boolean UpdateAlterationInDatabase() { try { TicketResource ticketResource = CollectFormDataForTicketResource(); TicketRepository ticketRepo = new TicketRepository(); ticketRepo.UpdateTicket(ticketResource); TicketAlterationResource alterationResource = CollectAlterationGridDataForAlterationResource(); TicketAlterationRepository alterationRepo = new TicketAlterationRepository(); alterationRepo.DeleteAndReinsertAlterations(alterationResource, ticketID); MessageBox.Show("Your alteration was successfully Updated."); NewTicketWithCustomerBttn.Enabled = true; return true; } catch (Exception ex) { MessageBox.Show("There was an error saving to the database. Please contact Jay with this message: " + ex.Message); return false; } }
public AlterationForm(TicketResource ticketResource) { SetupForm(); ConfigurationRepository configRepo = new ConfigurationRepository(); TicketRepository ticketRepo = new TicketRepository(); maxAlterations = Convert.ToDouble(configRepo.GetConfigrationSettings().Where(x => x.Setting == "maxAlterations").Select(x => x.Value).DefaultIfEmpty("").First()); alterationToatalForDays = ticketRepo.GetAlterationToatalForDays(); if (ticketResource.TicketId == 0) { isNewAlteration = true; TicketNumberLabel.Hide(); previousStatus = "a"; NewTicketWithCustomerBttn.Enabled = false; } else { isNewAlteration = false; ticketID = ticketResource.TicketId; TicketNumberLabel.Text = ticketResource.TicketId.ToString(); previousStatus = ticketResource.Status ?? "a"; } customerId = ticketResource.CustomerID; TitleComboBox.Text = ticketResource.Title ?? ""; FirstNameTextBox.Text = ticketResource.FirstName ?? ""; MiddleNameTextBox.Text = ticketResource.MiddleName ?? ""; LastNameTextBox.Text = ticketResource.LastName ?? ""; AddressTextBox.Text = ticketResource.Address ?? ""; CityTextBox.Text = ticketResource.City ?? ""; StateTextBox.Text = ticketResource.State ?? ""; ZipTextBox.Text = ticketResource.Zip ?? ""; PhoneTextBox.Text = ticketResource.Telephone ?? ""; EmailTextBox.Text = ticketResource.Email ?? ""; CommentBox.Text = ticketResource.Comments ?? ""; if (ticketResource.Status == "a") { StatusComboBox.Text = "Active"; } else if (ticketResource.Status == "d") { StatusComboBox.Text = "Done"; } else if (ticketResource.Status == "c") { StatusComboBox.Text = "Cancelled"; } else if (ticketResource.Status == "i") { StatusComboBox.Text = "In Progress"; } else { StatusComboBox.Text = ""; } PickedUpComboBox.Text = ticketResource.PickedUp ?? "n/a"; DateInPicker.Value = ticketResource.DateIn; DateReadyPicker.Value = ticketResource.DateReady; OrderIdTextBox.Text = ticketResource.OrderId ?? ""; if (isNewAlteration) { //cant add this above because it will just get overwritten down here, and it looks messy it the if logic is added below DateReadyPicker.Value = DateTime.Today.AddDays(7); } DepositTextBox.Text = ticketResource.Deposit.ToString(); TailorComboBox.Text = ticketResource.TailorName == "" ? "In House" : ticketResource.TailorName; }
//@return true if successful save private Boolean InsertAlterationIntoDatabase() { try { TicketResource ticketResource = CollectFormDataForTicketResource(); TicketRepository ticketRepo = new TicketRepository(); ticketID = ticketRepo.InsertNewTicket(ticketResource); TicketAlterationResource alterationResource = CollectAlterationGridDataForAlterationResource(); TicketAlterationRepository alterationRepo = new TicketAlterationRepository(); alterationRepo.InsertAlterations(alterationResource); TicketNumberLabel.Text = ticketID.ToString(); TicketNumberLabel.Show(); MessageBox.Show("Your alteration was successfully saved. The ticket ID is " + ticketID.ToString()); isNewAlteration = false; NewTicketWithCustomerBttn.Enabled = true; return true; } catch (Exception ex) { MessageBox.Show("There was an error saving to the database. Please contact Jay with this message: " + ex.Message); return false; } }
private void SearchButton_Click(object sender, EventArgs e) { if (ValidateForm() == false) { MessageBox.Show("Please enter at least 1 search criteria."); return; } ResultGrid.Rows.Clear(); Dictionary<TicketRepository.TicketProperty, object> searchArguments = new Dictionary<TicketRepository.TicketProperty, object>(); if (TicketIdTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.TicketId, TicketIdTextBox.Text); } if (FirstNameTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.FirstName, FirstNameTextBox.Text); } if (MiddleNameTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.MiddleName, MiddleNameTextBox.Text); } if (LastNameTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.LastName, LastNameTextBox.Text); } if (AddressTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.Address, AddressTextBox.Text); } if (CityTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.City, CityTextBox.Text); } if (StateTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.State, StateTextBox.Text); } if (ZipTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.Zip, ZipTextBox.Text); } if (TelephoneTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.Telephone, TelephoneTextBox.Text); } if (EmailTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.Email, EmailTextBox.Text); } if (PickedUpComboBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.PickedUp, PickedUpComboBox.Text); } if (StatusComboBox.Text != "") { if (StatusComboBox.Text == "Active") { searchArguments.Add(TicketRepository.TicketProperty.Status, "a"); } else if (StatusComboBox.Text == "Done") { searchArguments.Add(TicketRepository.TicketProperty.Status, "d"); } else if (StatusComboBox.Text == "Cancelled") { searchArguments.Add(TicketRepository.TicketProperty.Status, "c"); } else if (StatusComboBox.Text == "In Progress") { searchArguments.Add(TicketRepository.TicketProperty.Status, "i"); } } if (TailorComboBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.TailorName, TailorComboBox.Text); } if (OrderIdTextBox.Text != "") { searchArguments.Add(TicketRepository.TicketProperty.OrderId, OrderIdTextBox.Text); } try { TicketRepository ticketRepo = new TicketRepository(); List<TicketResource> searchResults = ticketRepo.GetTicketsByArguments(searchArguments); if (searchResults.Count == 0) { MessageBox.Show("I couldn't find any matching tickets. Please check the search criteria and try again."); } else { for(int i=0; i<searchResults.Count; i++) { String status = ""; if (searchResults[i].Status == "a") { status = "Active"; } else if (searchResults[i].Status == "d") { status = "Done"; } else if (searchResults[i].Status == "c") { status = "Cancelled"; } else if (searchResults[i].Status == "i") { status = "In Progress"; } ResultGrid.Rows.Add(searchResults[i].TicketId, searchResults[i].FirstName, searchResults[i].LastName,searchResults[i].DateIn, searchResults[i].DateReady, status, searchResults[i].TailorName, String.Format("{0:C}", searchResults[i].TotalPrice), String.Format("{0:C}", searchResults[i].Deposit), String.Format("{0:C}",searchResults[i].TotalPrice - searchResults[i].Deposit)); } } } catch (Exception ex) { MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message); } EnableButtonsBasedOnGrid(); }
private void OpenTicketButton_Click(object sender, EventArgs e) { int selectedIndex = ResultGrid.CurrentCell.RowIndex; int ticketId = Convert.ToInt32(ResultGrid.Rows[selectedIndex].Cells["TicketIdCol"].Value); try { TicketRepository ticketRepo = new TicketRepository(); TicketResource ticketRes = ticketRepo.GetTicketByTicketID(ticketId); TicketAlterationRepository alterationRepo = new TicketAlterationRepository(); TicketAlterationResource alterationRes = alterationRepo.GetAlterationsByTicketId(ticketId); AlterationForm alterationForm = new AlterationForm(ticketRes, alterationRes); alterationForm.Show(); } catch (Exception ex) { MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message); } //TODO get Neil's feedback on what behavior he prefers //this.Close(); }
private void MarkAsDonePaidPickedUpBttn_Click(object sender, EventArgs e) { int index = ResultGrid.CurrentCell.RowIndex; int ticketId = Convert.ToInt32(ResultGrid.Rows[index].Cells["TicketIdCol"].Value); try { TicketRepository ticketRepo = new TicketRepository(); ticketRepo.MarkTicketAsDonePaidAndPickedUp(ticketId); DataGridViewRow row = ResultGrid.Rows[index]; row.Cells["StatusCol"].Value = "Done"; row.Cells["DepositCol"].Value = row.Cells["TotalPriceCol"].Value; row.Cells["BalanceCol"].Value = String.Format("{0:C}", 0); } catch (Exception ex) { MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message); } EnableButtonsBasedOnGrid(); }
private void GetCustomOrdersButton_Click(object sender, EventArgs e) { //refactor this once API is up TicketRepository repo = new TicketRepository(); List<TicketResource> tickets = repo.GetActiveTicketsBetweenDates(CustomOrderDatePickerStart.Value, CustomOrderDatePickerEnd.Value); List<TicketResource> orders = new List<TicketResource>(); foreach (TicketResource ticket in tickets) { if (ticket.OrderId.Trim() != "") { orders.Add(ticket); } } if (orders.Count > 0) { orders = orders.OrderBy(x => x.DateReady).ToList(); Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); excelApp.Visible = true; _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing)); _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet; for (int i = 0; i < orders.Count; i++) { TicketResource order = orders[i]; int row = i + 1; worksheet.Cells[row, "A"] = order.TicketId; worksheet.Cells[row, "B"] = order.FirstName; worksheet.Cells[row, "C"] = order.LastName; worksheet.Cells[row, "D"] = order.DateReady.ToString(); worksheet.Cells[row, "E"] = order.Telephone; worksheet.Cells[row, "F"] = "$" + order.TotalPrice; } worksheet.Columns["A:F"].AutoFit(); } else { MessageBox.Show("There are no orders due between those dates."); } }
private void GetTicketsForDateButton_Click(object sender, EventArgs e) { TicketRepository repo = new TicketRepository(); List<TicketResource> tickets = repo.GetActiveTicketsBetweenDates(TicketsForDatePicker.Value, TicketsForDatePicker.Value); if (tickets.Count > 0) { Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); excelApp.Visible = true; _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing)); _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet; for (int i = 0; i < tickets.Count; i++) { TicketResource ticket = tickets[i]; int row = i + 1; worksheet.Cells[row, "A"] = ticket.TicketId; worksheet.Cells[row, "B"] = ticket.FirstName; worksheet.Cells[row, "C"] = ticket.LastName; worksheet.Cells[row, "D"] = ticket.TailorName; worksheet.Cells[row, "E"] = ticket.Telephone; worksheet.Cells[row, "F"] = "$" + ticket.TotalPrice; } worksheet.Columns["A:F"].AutoFit(); } else { MessageBox.Show("There are no tickets due on that date."); } }
private void getMailingAddressesButton_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); excelApp.Visible = true; _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing)); _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet; TicketRepository ticketRepo = new TicketRepository(); List<TicketResource> listOfTickets = ticketRepo.GetDistinctMailingAddressBetweenDates(StartingDatePicker.Value, EndingDatePicker.Value); //change the getDistintMailing to not accept "" as a unique address. then we can remove this row checking int row = 1; for (int i = 0; i < listOfTickets.Count; i++) { TicketResource ticket = listOfTickets[i]; if (ticket.Address == "") { continue; } worksheet.Cells[row, "A"] = ticket.LastName; worksheet.Cells[row, "B"] = ticket.FirstName; worksheet.Cells[row, "C"] = ticket.Address; worksheet.Cells[row, "D"] = ticket.City; worksheet.Cells[row, "E"] = ticket.State; worksheet.Cells[row, "F"] = ticket.Zip; row++; } worksheet.Columns["A:F"].AutoFit(); }
private void GetEmailsButton_Click(object sender, EventArgs e) { TicketRepository ticketRepo = new TicketRepository(); List<TicketResource> listOfTickets = ticketRepo.GetDistinctEmailAddressBetweenDates(StartingDatePicker.Value, EndingDatePicker.Value); String emailString = ""; for (int i = 0; i < listOfTickets.Count; i++) { TicketResource ticket = listOfTickets[i]; if (i == 0) { emailString += ticket.Email; } else { emailString += ", " + ticket.Email; } } EmailResultTextBox.Text = emailString; }