Beispiel #1
0
        public static TimeSpan DurationFor(PaidServiceType paidServiceType)
        {
            var service = AvailableServices.FirstOrDefault(x => x.Type == paidServiceType);

            if (service == null)
            {
                throw new Exceptions.UnknownService(paidServiceType);
            }

            return(service.Duration);
        }
        public List<PerformerStat> GetAllManagers(PaidServiceType? serviceTypeFilter)
        {
            var performers = new List<PerformerStat>();

            using (var ctx = DatabaseContext.Instance.Make())
            {
                try
                {
                    // ReSharper disable LoopCanBeConvertedToQuery
                    foreach (var p in ctx.GetPerformers())
                    // ReSharper restore LoopCanBeConvertedToQuery
                    {
                        performers.Add(new PerformerStat
                        {
                            Account = p.AccountId.HasValue ? p.AccountId.Value : -1,
                            Login = p.UserNames,
                            Email = p.Email,
                            Group = p.AccountGroup,
                            SubscriberCount = p.SubscriberCount ?? 0,
                            DepoCurrency = p.Currency,
                            Service = p.ID,
                            ServiceType = p.ServiceType,
                            TradeSignalTitle = p.Comment,
                            UserId = p.User,
                            FeeUSD = p.FixedPrice,
                            IsRealAccount = p.IsReal,
                            FullName = p.FullName
                        });
                    }
                }
                catch (Exception ex)
                {
                    Logger.Error("Ошибка в ServerManagerAccount.GetAllManagers()", ex);
                }

                // пересчитать Fee в USD
                var quotes = QuoteStorage.Instance.ReceiveAllData();
                foreach (var performer in performers)
                {
                    if (performer.DepoCurrency == PerformerStat.FeeCurrency || performer.FeeUSD == 0)
                        continue;
                    // произвести пересчет
                    string errorString;
                    var fee = DalSpot.Instance.ConvertSourceCurrencyToTargetCurrency(PerformerStat.FeeCurrency, performer.DepoCurrency,
                                                                                     (double) performer.FeeUSD, quotes,
                                                                                     out errorString);
                    if (!fee.HasValue)
                        Logger.Error("GetAllManagers() - cannot convert " + performer.DepoCurrency + " to " + PerformerStat.FeeCurrency);
                    performer.FeeUSD = fee ?? 0;
                }

            }
            return performers;
        }
 public List<PerformerStat> GetAllManagers(PaidServiceType? serviceTypeFilter)
 {
     if (channel == null) throw new Exception("TradeSharpServerProxy: связь не установлена");
     try
     {
         return channel.GetAllManagers(serviceTypeFilter);
     }
     catch (Exception)
     {
         RenewFactory();
         try
         {
             return channel == null ? null : channel.GetAllManagers(serviceTypeFilter);
         }
         catch (Exception ex)
         {
             Logger.Error("GetAllManagers()", ex);
             return null;
         }
     }
 }
 ActivePaidService(PaidServiceType paidServiceType, DateTimeOffset expiresAt)
 {
     ServiceType = paidServiceType;
     ExpiresAt   = expiresAt;
 }
        public static ActivePaidService Create(PaidServiceType paidServiceType, DateTimeOffset startFrom)
        {
            var expiresAt = startFrom + PaidService.PaidService.DurationFor(paidServiceType);

            return(new ActivePaidService(paidServiceType, expiresAt));
        }
Beispiel #6
0
 public UnknownService(PaidServiceType paidServiceType)
     : base($"Paid service of type {paidServiceType} is unknown")
 {
 }