public void RedeemParticipation(string loginEmail, int participationId, decimal amount) { ExecuteFaultHandledOperation(() => { IAccountRepository accountRepository = _DataRepositoryFactory.GetDataRepository <IAccountRepository>(); IParticipationRepository ParticipationRepository = _DataRepositoryFactory.GetDataRepository <IParticipationRepository>(); IParticipationEngine ParticipationEngine = _BusinessEngineFactory.GetBusinessEngine <IParticipationEngine>(); Account account = accountRepository.GetByLogin(loginEmail); if (account == null) { NotFoundFault fault = new NotFoundFault(string.Format("No account found for login '{0}'.", loginEmail)); throw new FaultException <NotFoundFault>(fault, fault.Message); } ValidateAuthorization(account); Participation participation = ParticipationRepository.Get(participationId); if (participation == null) { NotFoundFault fault = new NotFoundFault(string.Format("No participation record found for id '{0}'.", participationId)); throw new FaultException <NotFoundFault>(fault, fault.Message); } ParticipationEngine.RedeemFundsFromParticipation(participationId, amount); }); }
public void ExecuteParticipationsFromReservation(int reservationId) { ExecuteFaultHandledOperation(() => { IAccountRepository accountRepository = _DataRepositoryFactory.GetDataRepository <IAccountRepository>(); IReservationRepository reservationRepository = _DataRepositoryFactory.GetDataRepository <IReservationRepository>(); IParticipationEngine ParticipationEngine = _BusinessEngineFactory.GetBusinessEngine <IParticipationEngine>(); Reservation reservation = reservationRepository.Get(reservationId); if (reservation == null) { NotFoundFault fault = new NotFoundFault(string.Format("Reservation {0} was not found.", reservationId)); throw new FaultException <NotFoundFault>(fault, fault.Message); } Account account = accountRepository.Get(reservation.AccountID); if (account == null) { NotFoundFault fault = new NotFoundFault(string.Format("No account found for account ID '{0}'.", reservation.AccountID)); throw new FaultException <NotFoundFault>(fault, fault.Message); } // create the new participations foreach (Allocation allocation in reservation.Allocations) { try { Participation participation = ParticipationEngine.PushAllocationIntoParticipation(allocation); } catch (FaultException ex) { throw ex; } } // close and save the reservation reservation.Open = false; reservationRepository.Update(reservation); }); }