コード例 #1
0
        public virtual void FillSubscribeSettings(ISubscribeSettings activity)
        {
            var settings = Get(activity.Id);

            if (settings == null)
            {
                return;
            }

            activity.CanSubscribe   = settings.CanSubscribe;
            activity.SubscribeNotes = settings.SubscribeNotes;
        }
コード例 #2
0
        public virtual async Task FillSubscribeSettingsAsync(ISubscribeSettings activity)
        {
            var settings = await GetAsync(activity.Id);

            if (settings == null)
            {
                return;
            }

            activity.CanSubscribe   = settings.CanSubscribe;
            activity.SubscribeNotes = settings.SubscribeNotes;
        }
コード例 #3
0
        public void SignalSubscriptionSettingsUpdate(Int64 accountSlaveId, Int64 accountMasterId, ISubscribeSettings settings)
        {
            using (var db = GetDBConnect())
            {
                Queryable.Where(db.signal_subscriptions, sub => sub.account_slave_id == accountSlaveId && sub.account_master_id == accountMasterId)
                .Set(p => p.subscription_type, (short)settings.SignalType)
                .Set(p => p.multiplier, settings.Multiplier)
                .Set(p => p.reverse, settings.Reverse)
                .Set(p => p.risk, settings.Risk)
                .Set(p => p.max_order_count, settings.MaxOrderCount)
                .Set(p => p.max_volume, settings.MaxVolume)
                .Set(p => p.order_type, (short)settings.OrdersType)
                .Set(p => p.status, (short)settings.Status)
                .Update();

                var settingsVal = Enumerable.First(subscriptionCache.Filter(x => x.account_slave_id == accountSlaveId && x.account_master_id == accountMasterId));
                settingsVal.subscription_type = (short)settings.SignalType;
                settingsVal.multiplier        = settings.Multiplier;
                settingsVal.reverse           = settings.Reverse;
                settingsVal.risk            = settings.Risk;
                settingsVal.max_order_count = settings.MaxOrderCount;
                settingsVal.max_volume      = settings.MaxVolume;
                settingsVal.order_type      = (short)settings.OrdersType;
                settingsVal.status          = (short)settings.Status;
                subscriptionCache.InsertOrUpdate(settingsVal.id, settingsVal);
            }
        }
コード例 #4
0
        public void SignalSubscription(short status, long accountSlaveId, string masterNickname, ISubscribeSettings settings,
                                       AccountInfo result)
        {
            using (var db = GetDBConnect())
            {
                try
                {
                    db.BeginTransaction();

                    var signalSubscriber = new signal_subscribers
                    {
                        id = (int)accountSlaveId,
                        client_account_id = result.ClientId,
                        account_type_id   = result.AccountTypeId,
                        isenabled         = result.IsEnabled,
                        isdeleted         = false,
                        login             = result.Login,
                        nickname          = result.Nickname,
                        avatar            = result.Avatar,
                        currency          = result.Currency
                    };

                    db.InsertOrReplace(signalSubscriber);
                    subscriberCache.InsertOrUpdate(accountSlaveId, signalSubscriber);

                    var signalSubscription = new signal_subscriptions
                    {
                        status            = (short)SubscriptionStatus.On,
                        account_slave_id  = accountSlaveId,
                        account_master_id = Queryable.First(db.signal_providers, source => source.nickname.ToLower() == masterNickname.ToLower()).id,
                        slave_profit      = 0,
                        subscription_type = (short)settings.SignalType,
                        multiplier        = settings.Multiplier,
                        reverse           = settings.Reverse,
                        risk            = settings.Risk,
                        max_order_count = settings.MaxOrderCount,
                        max_volume      = settings.MaxVolume,
                        order_type      = (short)settings.OrdersType
                    };

                    var id = Convert.ToInt32(db.InsertWithIdentity(signalSubscription));
                    subscriptionCache.InsertOrUpdate(id, signalSubscription);

                    db.CommitTransaction();
                }
                catch (Exception)
                {
                    db.RollbackTransaction();
                    throw;
                }
            }
        }