private void DeliverSelectedGarment() { if (SelectedGarment == null) { MessageBox.Show("Please, click on a garment on the list first"); } else { if (SelectedGarment.Paid) { MessageBox.Show("The selected garment has already been delivered"); } else { LaundryDb db; using (db = new LaundryDb()) { db.Garments.Find(SelectedGarment.Id).Paid = true; db.SaveChanges(); } _garments.Remove(SelectedGarment); OnPropertyChanged("Garments"); } } }
private void PerformPayment() { if (SelectedTicket != null) { if (Payment < 0) { MessageBox.Show("Please, input a non-negative value"); } else { LaundryDb db; double payment = Payment; double remanent = SelectedTicket.TotalAmount - SelectedTicket.PaidAmount; if (payment >= remanent) { payment = remanent; } using (db = new LaundryDb()) { db.Tickets.Find(SelectedTicket.Id).PaidAmount += payment; db.SaveChanges(); } ShowTicket(); } } else { MessageBox.Show("Please, pick a Ticket first"); } }
private void SearchTicketByColor() { LaundryDb db; using (db = new LaundryDb()) { var ticketsOfInterest = db.Tickets.Join(db.Garments, t => t.Id, g => g.TicketId, (t, g) => new { TicketId = t.Id, TicketPhone = t.Phone, GarmentColor = g.Color }).Where(t => t.GarmentColor.ToUpper() == this.GarmentColor.ToUpper()); if (ticketsOfInterest.Count() != 0) { ColorTickets = new List <string>(); foreach (var t in ticketsOfInterest) { string s = string.Format("Tickets {0} with color: {1}", t.TicketPhone, t.GarmentColor); ColorTickets.Add(s); } RaisePropertyChanged("ColorTickets"); } else { MessageBox.Show("The Garment colour specified is not stored in the Database"); } } }
private void PerformSearch() { LaundryDb db; using (db = new LaundryDb()) { var garmentsDelivered = db.Garments.Where(g => g.Paid); var garmentsDeliveredGrouped = garmentsDelivered.GroupBy(g => g.GarmentType) .Select(gr => new { GarmentType = gr.Key, TotalEarnings = gr.Sum(g => g.PriceTag) }); EarningsByGarment = new List <string>(); foreach (var g in garmentsDelivered) { string s = string.Format("Garment {1}, with id {0} generated an income of {2}", g.Id, g.Name, g.PriceTag); EarningsByGarment.Add(s); } RaisePropertyChanged("EarningsByGarment"); EarningsByGarmentType = new List <string>(); foreach (var gr in garmentsDeliveredGrouped) { string s = string.Format("Garment Type {0} generated an income of {1}", gr.GarmentType, gr.TotalEarnings); EarningsByGarmentType.Add(s); } RaisePropertyChanged("EarningsByGarmentType"); } }
private void SearchTicketByTicketId() { LaundryDb db; using (db = new LaundryDb()) { var tickets = db.Tickets.Join(db.Garments, t => t.Id, g => g.TicketId, (t, g) => new { TicketId = t.Id, TicketPhone = t.Phone, GarmentName = g.Name }).Where(t => t.TicketId == this.TicketId); if (tickets.Count() != 0) { IdTickets = new List <string>(); foreach (var t in tickets) { string s = string.Format("Garment Name:{0} with ticket Id:{1} and Phone:{2}", t.GarmentName, t.TicketId, t.TicketPhone); IdTickets.Add(s); } RaisePropertyChanged("IdTickets"); } else { MessageBox.Show("The Ticket identifier specified is not stored in the Database"); } } }
public void GetDeliveries() { using (_db = new LaundryDb()) { _deliveries = _db.Tickets.Count(t => t.DeliveryDate.Contains(_ticket.DeliveryDate)).ToString(); Deliveries = _deliveries == "" ? "0" : _deliveries; } }
private void ShowTicket() { _tickets = new ObservableCollection <Ticket>(); LaundryDb db; using (db = new LaundryDb()) { var ticketsWithPhone = db.Tickets.Where(t => t.Phone == PhoneToSearch); foreach (var t in ticketsWithPhone) { _tickets.Add(t); } } OnPropertyChanged("Tickets"); }
private void PerformSearch() { LaundryDb db; using (db = new LaundryDb()) { var ticketsNotFullyPaid = db.Tickets.Where(t => t.PaidAmount < t.TotalAmount); TicketsNotYetPaid = new List <string>(); foreach (var t in ticketsNotFullyPaid) { string s = string.Format("Ticket ID {0} with Phone {1} still has an unpaid amount of {2}", t.Id, t.Phone, t.TotalAmount - t.PaidAmount); TicketsNotYetPaid.Add(s); } RaisePropertyChanged("TicketsNotYetPaid"); } }
private void SearchTicketByGarment() { LaundryDb db; using (db = new LaundryDb()) { Garment garment = db.Garments.Find(GarmentId); if (garment != null) { var ticket = db.Tickets.Find(garment.TicketId); MessageBox.Show(string.Format("Garment name:\t '{0}'.\n Ticket phone:\t '{1}'", garment.Name, ticket.Phone)); } else { MessageBox.Show(string.Format("The Garment Identifier specified is not stored in the Database")); } } }
public void Initialize() { _garments = new ObservableCollection <Garment>(); _ticket = new Ticket(); using (_db = new LaundryDb()) { TicketId = _db.Tickets.Count() + 1; } Phone = 0; TotalAmount = 0; PaidAmount = 0; Deliveries = ""; DeliveryDate = "Select a date"; Garments.Clear(); OnPropertyChanged("Garments"); }
public void SaveTicket() { CalculateTotalAmount(); if (IsValidate()) { _ticket.Garments = _garments; using (_db = new LaundryDb()) { for (int i = 0; i < _garments.Count(); i++) { _db.Garments.Add(_garments[i]); } _db.Tickets.Add(_ticket); _db.SaveChanges(); } Initialize(); } }
private void LoadGarments() { if (SelectedTicket != null) { _garments = new ObservableCollection <Garment>(); LaundryDb db; using (db = new LaundryDb()) { var garments = db.Garments.Where(g => g.TicketId == SelectedTicket.Id); foreach (var g in garments) { _garments.Add(g); } } OnPropertyChanged("Garments"); } else { MessageBox.Show("Please, pick a Ticket first"); } }
private void DeliverAllGarments() { if (SelectedTicket == null) { MessageBox.Show("Please, pick a ticket first"); } else { LaundryDb db; using (db = new LaundryDb()) { var garmentsToFlagAsPaid = db.Garments.Where(g => g.TicketId == SelectedTicket.Id); foreach (var g in garmentsToFlagAsPaid) { g.Paid = true; } db.SaveChanges(); } _garments.Clear(); OnPropertyChanged("Garments"); } }
private void ListByPaidAmount() { LaundryDb db; using (db = new LaundryDb()) { var clientsOrdered = db.Tickets.OrderByDescending(t => t.PaidAmount) .Select(t => new { ClientPhone = t.Phone, ClientPaidAmount = t.PaidAmount }); BestClients = new List <string>(); foreach (var c in clientsOrdered) { string s = string.Format("Client with Phone {0} has paid us {1}", c.ClientPhone, c.ClientPaidAmount); BestClients.Add(s); } RaisePropertyChanged("BestClients"); } }
private void ListByNumberOfGarments() { LaundryDb db; using (db = new LaundryDb()) { var clientsOrdered = db.Tickets.Select(t => new { ClientPhone = t.Phone, ClientNumberOfGarments = t.Garments.Count() }) .OrderByDescending(c => c.ClientNumberOfGarments); BestClients = new List <string>(); foreach (var c in clientsOrdered) { string s = string.Format("Client with Phone {0} has registered {1} garments", c.ClientPhone, c.ClientNumberOfGarments); BestClients.Add(s); } RaisePropertyChanged("BestClients"); } }
private void ListByEarnings() { LaundryDb db; using (db = new LaundryDb()) { string deliveryDate = DeliveryDate.Substring(0, 10); var dailyEarningsList = db.Tickets.Where(t => t.DeliveryDate == deliveryDate) .Select(t => new { TicketPhone = t.Phone, Income = t.PaidAmount }); DailyEarnings = new List <string>(); foreach (var e in dailyEarningsList) { string s = string.Format("Earnings for ticket with Phone {0}: {1}", e.TicketPhone, e.Income); DailyEarnings.Add(s); } RaisePropertyChanged("DailyEarnings"); } }
private void ListTicketsNotRetrieved() { LaundryDb db; using (db = new LaundryDb()) { string deliveryDate = DeliveryDate.Substring(0, 10); var ticketsNotRetrieved = db.Tickets.Select(t => new { TicketPhone = t.Phone, TicketDeliveryDate = t.DeliveryDate }) .AsEnumerable() .Where(t => HasExpired(t.TicketDeliveryDate, deliveryDate)); TicketsNotRetrieved = new List <string>(); foreach (var t in ticketsNotRetrieved) { string s = string.Format("Ticket with Phone {0} should have been retrieved on {1}", t.TicketPhone, t.TicketDeliveryDate); TicketsNotRetrieved.Add(s); } RaisePropertyChanged("TicketsNotRetrieved"); } }