/// <summary> /// Redeems the ticket. /// </summary> /// <param name="id">The id.</param> /// <returns></returns> public IRedeemResult RedeemTicket(int id) { SqlCeRedeemResult result = new SqlCeRedeemResult(); TicketRecord ticket = GetTicket(id) as TicketRecord; if (ticket == null) { result.Type = RedeemResultType.NotRedeemed; result.Error = "UNKNOW TICKET ID!"; } else if (ticket.IsRedeemed) { result.Type = RedeemResultType.AlreadyRedeemed; } else { ticket.IsRedeemed = true; ticket.RedeemDate = DateTime.Now; try { ticket.Save(); result.Type = RedeemResultType.Redeemed; } catch (Exception exp) { result.Type = RedeemResultType.NotRedeemed; result.Error = exp.Message; } } if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("RedeemedCount")); } return(result); }