Ejemplo n.º 1
0
        public AlgorithmMessage UpdateAlgorithmMessage(AlgorithmMessage message)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IAlgorithmInstanceRepository algorithmInstanceRepository = _DataRepositoryFactory.GetDataRepository <IAlgorithmInstanceRepository>();
                AlgorithmInstance instance = algorithmInstanceRepository.Get(message.AlgorithmInstanceID);

                if (instance == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No algorithm instance found for instanceId '{0}'.", message.AlgorithmInstanceID));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                IAlgorithmMessageRepository messageRepository = _DataRepositoryFactory.GetDataRepository <IAlgorithmMessageRepository>();
                AlgorithmMessage updatedEntity = null;

                if (message.AlgorithmMessageID == 0)
                {
                    updatedEntity = messageRepository.Add(message);
                }
                else
                {
                    updatedEntity = messageRepository.Update(message);
                }

                return updatedEntity;
            }));
        }
Ejemplo n.º 2
0
        public Reservation UpdateReservation(Reservation reservation)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IAccountRepository accountRepository = _DataRepositoryFactory.GetDataRepository <IAccountRepository>();
                IReservationRepository reservationRepository = _DataRepositoryFactory.GetDataRepository <IReservationRepository>();

                Account account = accountRepository.GetByLogin(reservation.Account.LoginEmail);
                if (account == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No account found for login '{0}'.", reservation.Account.LoginEmail));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                ValidateAuthorization(account);

                Reservation updatedEntity = null;

                if (reservation.ReservationID == 0)
                {
                    updatedEntity = reservationRepository.Add(reservation);
                }
                else
                {
                    updatedEntity = reservationRepository.Update(reservation);
                }

                return updatedEntity;
            }));
        }
Ejemplo n.º 3
0
        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);
            });
        }
Ejemplo n.º 4
0
        protected Account GetAccountEntity(string loginName)
        {
            IAccountRepository accountRepository = _DataRepositoryFactory.GetDataRepository <IAccountRepository>();
            Account            acctEntity        = accountRepository.GetByLogin(loginName);

            if (acctEntity == null)
            {
                NotFoundFault fault = new NotFoundFault(string.Format("Cannot find account for login name {0} to use as thread principal.", loginName));
                throw new FaultException <NotFoundFault>(fault, fault.Message);
            }

            return(acctEntity);
        }
Ejemplo n.º 5
0
        public Strategy GetStrategy(int strategyId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                Strategy strategy = GetStrategies().Where(s => s.StrategyID == strategyId).FirstOrDefault();

                if (strategy == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No strategy found for id '{0}'.", strategyId));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }
                return strategy;
            }));
        }
Ejemplo n.º 6
0
        public Broker GetBroker(int brokerId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                Broker broker = GetBrokers().Where(b => b.BrokerID == brokerId).FirstOrDefault();

                if (broker == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No broker found with BrokeID '{0}'.", brokerId));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                return broker;
            }));
        }
Ejemplo n.º 7
0
        public Broker GetBrokerByName(string name)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                Broker broker = GetBrokers().Where(b => b.Name == name).FirstOrDefault();

                if (broker == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No broker found with name '{0}'.", name));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                return broker;
            }));
        }
Ejemplo n.º 8
0
        public MetaSetting GetSetting(string type, string code, bool enabledOnly = true)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IMetaSettingRepository settingRepository = _DataRepositoryFactory.GetDataRepository <IMetaSettingRepository>();
                MetaSetting setting = settingRepository.GetSetting(type, code, enabledOnly);

                if (setting == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No setting found for type-code: [{0}]-[{1}].", type, code));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                return setting;
            }));
        }
Ejemplo n.º 9
0
        public MetaResource GetResource(string set, string type, string key, string cultureCode = "en-US", bool enabled = true)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IMetaResourceRepository resourceRepository = _DataRepositoryFactory.GetDataRepository <IMetaResourceRepository>();
                MetaResource resource = resourceRepository.GetResource(set, type, key, cultureCode, enabled);

                if (resource == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No resource found for set-type-code-culture-enabled: [{0}]-[{1}]-[{2}]-[{3}]-[{4}].", set, type, key, cultureCode, enabled));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                return resource;
            }));
        }
Ejemplo n.º 10
0
        public MetaLookup GetLookup(string type, string code, bool enabled = true)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IMetaLookupRepository lookupRepository = _DataRepositoryFactory.GetDataRepository <IMetaLookupRepository>();
                MetaLookup lookup = lookupRepository.GetLookup(type, code, enabled);

                if (lookup == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No lookup found for type-code: [{0}]-[{1}].", type, code));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                return lookup;
            }));
        }
Ejemplo n.º 11
0
        public StrategyTransaction GetStrategyTransaction(int transactionId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IStrategyTransactionRepository transactionRepository = _DataRepositoryFactory.GetDataRepository <IStrategyTransactionRepository>();

                StrategyTransaction transaction = transactionRepository.Get(transactionId);

                if (transaction == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No transaction found with id '{0}'.", transactionId));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                return transaction;
            }));
        }
Ejemplo n.º 12
0
        public Reservation GetReservation(int reservationId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IReservationRepository reservationRepository = _DataRepositoryFactory.GetDataRepository <IReservationRepository>();

                Reservation reservation = reservationRepository.Get(reservationId);
                if (reservation == null)
                {
                    NotFoundFault fault = new NotFoundFault(string.Format("No reservation found for id '{0}'.", reservationId));
                    throw new FaultException <NotFoundFault>(fault, fault.Message);
                }

                ValidateAuthorization(reservation);

                return reservation;
            }));
        }
Ejemplo n.º 13
0
        public Participation GetParticipation(int participationId)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IParticipationRepository ParticipationRepository = _DataRepositoryFactory.GetDataRepository <IParticipationRepository>();

                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);
                }

                ValidateAuthorization(participation);

                return participation;
            }));
        }
Ejemplo n.º 14
0
        public Participation[] GetParticipationsByAccount(string loginEmail)
        {
            return(ExecuteFaultHandledOperation(() =>
            {
                IAccountRepository accountRepository = _DataRepositoryFactory.GetDataRepository <IAccountRepository>();
                IParticipationRepository ParticipationRepository = _DataRepositoryFactory.GetDataRepository <IParticipationRepository>();

                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);

                IEnumerable <Participation> participations = ParticipationRepository.GetParticipationsByAccount(account.AccountID);

                return participations.ToArray();
            }));
        }
Ejemplo n.º 15
0
        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);
            });
        }