public ImportedTicket(IList <RaffleTicket> originals) { this.originals = originals; Person = originals.First().Person; Account = Names.DefaultAccount; Type = "Melave Malka Raffle"; Tickets = ((IListSource) new RowListBinder(Program.Table <RaffleTicket>(), originals.Cast <Row>().ToList())).GetList(); if (originals.Count > 1) { SubType = "tickets #" + originals.Join(", #", t => t.TicketId.ToString(CultureInfo.InvariantCulture)); } else { SubType = "ticket #" + originals.First().TicketId.ToString(CultureInfo.InvariantCulture); } Amount = RaffleTicket.CalcPrice(originals.Count); Comments = (originals.Select(t => (t.Comments ?? "").Trim()) .Distinct(StringComparer.OrdinalIgnoreCase) .Join(Environment.NewLine) + "\r\n(imported from Rafflizer)").Trim(); AmountPaid = RaffleTicket.CalcPrice(originals.Count(t => t.Paid)); PaymentMethod = AmountPaid > 0 ? "Cash" : "Unpaid"; }
///<summary>Creates tables that should only be loaded at design-time.</summary> ///<remarks>At runtime, these tables are loaded when needed. However, I still want them in the designer.</remarks> static void AddDesignTimeTables(DataContext context) { context.Tables.AddTable(SeatingReservation.CreateTable()); context.Tables.AddTable(MelaveMalkaInfo.CreateTable()); context.Tables.AddTable(MelaveMalkaInvitation.CreateTable()); context.Tables.AddTable(MelaveMalkaSeat.CreateTable()); context.Tables.AddTable(Caller.CreateTable()); context.Tables.AddTable(AdReminderEmail.CreateTable()); context.Tables.AddTable(RaffleTicket.CreateTable()); }
private void gridView_CustomSummaryCalculate(object sender, CustomSummaryEventArgs e) { switch (e.SummaryProcess) { case CustomSummaryProcess.Start: e.TotalValue = 0; break; case CustomSummaryProcess.Calculate: e.TotalValue = (int)e.TotalValue + 1; break; case CustomSummaryProcess.Finalize: e.TotalValue = RaffleTicket.CalcPrice((int)e.TotalValue); e.TotalValueReady = true; break; } }
void AddTicket() { var idDup = tickets.Rows.FirstOrDefault(t => t.TicketId == ticketId.Value); if (idDup != null) { if (DialogResult.No == XtraMessageBox.Show( "Ticket #" + ticketId.Value + " was already given to " + idDup.Person.VeryFullName + ".\r\nAre you sure you want to add a duplicate ticket?", Dialog.DefaultTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2 )) { return; } } if (personSelector.SelectedPerson == null) { return; } Program.Table <RaffleTicket>().Rows.Add(lastTicket = new RaffleTicket { Year = year, Person = personSelector.SelectedPerson, TicketId = (int)ticketId.Value, Paid = isPaid.Checked, Comments = String.IsNullOrWhiteSpace(comments.Text) ? null : comments.Text, DateAdded = DateTime.Now }); InfoMessage.Show("Ticket #" + ticketId.Value + " was registered for " + personSelector.SelectedPerson.VeryFullName + ", " + (isPaid.Checked ? "paid" : "unpaid")); if (ModifierKeys == Keys.Shift) { ticketId.Value = NextID; ticketId.Focus(); } else { personSelector.SelectedPerson = null; //The EditValueChanged handler will reset other fields personSelector.Focus(); } }
protected override DataSyncContext CreateDataContext() { var dc = new DataContext(); dc.Tables.AddTable(Person.CreateTable()); dc.Tables.AddTable(RaffleTicket.CreateTable()); var dsc = new DataSyncContext(dc, new SqlCeSqlProvider(FilePath)); dsc.Tables.AddPrimaryMappings(); if (!File.Exists(FilePath)) { DB.CreateFile(FilePath, DatabaseFile.SqlCe); try { DBManager.SetupDatabase(dsc); } catch { File.Delete(FilePath); } } return(dsc); }
void UpdateStats() { ticketCount.Caption = tickets.Rows.Count + " Tickets"; totalValue.Caption = "Total value: " + tickets.Rows.GroupBy(t => t.Person, (person, set) => set.Count()) .Sum(c => RaffleTicket.CalcPrice(c)) .ToString("c0", CultureInfo.CurrentCulture) + "; paid: " + tickets.Rows.Where(t => t.Paid) .GroupBy(t => t.Person, (person, set) => set.Count()) .Sum(c => RaffleTicket.CalcPrice(c)) .ToString("c0", CultureInfo.CurrentCulture); IList <int> idHoles; if (tickets.Rows.Count == 0) { idHoles = new int[0]; } else { idHoles = Enumerable.Range(1, tickets.Rows.Max(t => t.TicketId)) .Except(tickets.Rows.Select(t => t.TicketId)) .ToList(); } if (idHoles.Count == 0) { holeMessage.Caption = "No Holes"; holeMessage.Appearance.ForeColor = Color.Green; } else if (idHoles.Count == 1) { holeMessage.Appearance.ForeColor = Color.Red; holeMessage.Caption = "Ticket #" + idHoles.First().ToString(CultureInfo.CurrentCulture) + " is missing"; } else { holeMessage.Appearance.ForeColor = Color.Red; var message = new StringBuilder(); for (int i = 0; i < idHoles.Count;) { var start = idHoles[i]; int size = 1; while (++i < idHoles.Count && idHoles[i] == start + size) { size++; } message.Append(message.Length == 0 ? "Holes: " : ", "); message.Append(start); if (size == 2) { message.Append(", ").Append(start + 1); } else if (size > 2) { message.Append(" - ").Append(start + size - 1); } } holeMessage.Caption = message.ToString(); } }
public void RuffleFreeState(RaffleTicket view) { //view.State = new RulfeFreeButtonState(); }
public void RuffleBuyState(RaffleTicket view) { //view.ButtonText.text = "BUY TICKETS"; //view.PanelBuy.SetActive(true); //Debug.Log("BuyPanel"); }
public void RuffleFreeState(RaffleTicket view) { //view.ButtonText.text = "FREE TICKETS"; //Debug.Log("Free"); }
public void RuffleBuyState(RaffleTicket view) { //view.State = new RufleBuyButtonState(); }