Esempio n. 1
0
 public void GetTotalPages(QuoteFilter filter)
 {
     using var context = Context();
     filter.TotalRow   = context.Quote.Where(u => u.OrganisationId == filter.OrganisationId &&
                                             (filter.StatusId == 0 || u.StatusId == filter.StatusId) &&
                                             (filter.CustomerId == 0 || u.CustomerId == filter.CustomerId) &&
                                             (u.StatusId != (int)QuoteEnum.Delete) &&
                                             (
                                                 (filter.DateTypeFilter.Id == (int)QuoteFilterEnum.All &&
                                                  (filter.FromDate == null || u.Date >= filter.FromDate || u.ExpireDate >= filter.FromDate) &&
                                                  (filter.ToDate == null || u.Date <= filter.ToDate || u.ExpireDate <= filter.ToDate)) ||
                                                 (
                                                     filter.DateTypeFilter.Id == (int)QuoteFilterEnum.Date &&
                                                     (filter.FromDate == null || u.Date >= filter.FromDate) &&
                                                     (filter.ToDate == null || u.Date <= filter.ToDate)
                                                 ) ||
                                                 (
                                                     filter.DateTypeFilter.Id == (int)QuoteFilterEnum.Expire &&
                                                     (filter.FromDate == null || u.ExpireDate >= filter.FromDate) &&
                                                     (filter.ToDate == null || u.ExpireDate <= filter.ToDate)
                                                 )
                                             ) &&
                                             (string.IsNullOrEmpty(filter.SearchText) || u.Number.Contains(filter.SearchText))
                                             ).Count();
 }
Esempio n. 2
0
        public List <QuoteStatus> GetQuoteStatuses(QuoteFilter filter)
        {
            using var context = Context();
            var totalQuote = context.Quote.Where(u => u.OrganisationId == filter.OrganisationId &&
                                                 (filter.CustomerId == 0 || u.CustomerId == filter.CustomerId) &&
                                                 (
                                                     (filter.DateTypeFilter.Id == (int)QuoteFilterEnum.All &&
                                                      (filter.FromDate == null || u.Date >= filter.FromDate || u.ExpireDate >= filter.FromDate) &&
                                                      (filter.ToDate == null || u.Date <= filter.ToDate || u.ExpireDate <= filter.ToDate)) ||
                                                     (
                                                         filter.DateTypeFilter.Id == (int)QuoteFilterEnum.Date &&
                                                         (filter.FromDate == null || u.Date >= filter.FromDate) &&
                                                         (filter.ToDate == null || u.Date <= filter.ToDate)
                                                     ) ||
                                                     (
                                                         filter.DateTypeFilter.Id == (int)QuoteFilterEnum.Expire &&
                                                         (filter.FromDate == null || u.ExpireDate >= filter.FromDate) &&
                                                         (filter.ToDate == null || u.ExpireDate <= filter.ToDate)
                                                     )
                                                 ) &&
                                                 (u.StatusId != (int)QuoteEnum.Delete) &&
                                                 (string.IsNullOrEmpty(filter.SearchText) || u.Number.Contains(filter.SearchText))
                                                 ).GroupBy(u => u.StatusId)
                             .Select(u => new
            {
                StatusId = u.Key,
                Count    = u.Count()
            }).ToList();
            var status = context.QuoteStatus.Where(u => u.Id != (int)QuoteEnum.Delete).ToList().Select(u => new QuoteStatus
            {
                Id    = u.Id,
                Name  = IsKhmer?u.NameKh: u.Name,
                Count = totalQuote.Any(t => t.StatusId == u.Id) ? totalQuote.FirstOrDefault(t => t.StatusId == u.Id).Count : 0
            }).ToList();

            status.Insert(0, new QuoteStatus
            {
                Id    = 0,
                Name  = AppResource.GetResource("All"),
                Count = totalQuote.Sum(u => u.Count)
            });
            return(status);
        }
Esempio n. 3
0
        private void StartRoutine(object ptrs)
        {
            // получение котировок
            filter = new QuoteFilter();
            var feederType = AppConfig.GetStringParam("Feeder", "Test");

            if (feederType.ToUpper() == "UDP")
            {
                MakeUDPFeeder();
            }
            if (feederType.ToUpper() == "TCP")
            {
                MakeTCPFeeder();
            }
            if (feederType.ToUpper() == "TEST")
            {
                MakeRandomFeeder();
            }
            feeder.OnQuotesReceived += FeederOnQuotesReceived;
            indexMaker = new IndexMaker();

            feeder.Start();

            hostCache = new ServiceHost(QuoteStorageManager.Instance);
            try
            {
                hostNewsReceiver = new ServiceHost(NewsReceiver.Instance);
            }
            catch (Exception ex) { Logger.Error("hostNewsReceiver error", ex); }
            try
            {
                hostNewsStorage = new ServiceHost(NewsStorage.Instance);
            }
            catch (Exception ex) { Logger.Error("hostNewsStorage error", ex); }

            try
            {
                hostModuleController = new ServiceHost(ModuleStatusController.Instance);
                hostModuleController.Open();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка в ModuleController", ex);
            }

            try
            {
                hostCache.Open();
                NewsReceiver.Instance.Start();
                hostNewsReceiver.Open();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта менеджера котировок - новостей", ex);
                throw;
            }

            try
            {
                hostNewsStorage.Open();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта хранилища новостей", ex);
                throw;
            }
            try
            {
                BaseNewsDistributor.Instance.StartPolling();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта раздатчика котировок и новостей", ex);
                throw;
            }

            try
            {
                CandleStoreStream.Instance.Start();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта потока сохранения котировок", ex);
                throw;
            }

            // стартовать раздачу котировок в MT4
            if (distributeQuotesMt4)
            {
                try
                {
                    Mt4Feeder.Instance.Start();
                }
                catch (Exception ex)
                {
                    Logger.Error("Ошибка старта раздачи котировок в МТ4", ex);
                }
            }

            StartWebServer();

            Logger.InfoFormat("Сервис запущен");
        }
Esempio n. 4
0
 public IActionResult GetQuoteStatuses([FromBody] QuoteFilter filter)
 {
     filter.OrganisationId = quoteService.OrganisationId;
     return(Ok(quoteService.GetQuoteStatuses(filter)));
 }
Esempio n. 5
0
 public IActionResult GetTotalPages([FromBody] QuoteFilter filter)
 {
     filter.OrganisationId = quoteService.OrganisationId;
     quoteService.GetTotalPages(filter);
     return(Ok(filter));
 }
Esempio n. 6
0
        public async Task <IEnumerable <Quotation> > GetQuotes(QuoteFilter filter)
        {
            var result = await AXClient.Instance.QuotationsAsync(filter.ToQueryContext());

            return(result?.Data ?? new List <Quotation>());
        }
Esempio n. 7
0
        public List <Quote> GetQuotes(QuoteFilter filter)
        {
            var khmer = IsKhmer;

            using var context = Context();
            var quotes = context.Quote.Where(u => u.OrganisationId == filter.OrganisationId &&
                                             (filter.StatusId == 0 || u.StatusId == filter.StatusId) &&
                                             (filter.CustomerId == 0 || u.CustomerId == filter.CustomerId) &&
                                             (
                                                 (filter.DateTypeFilter.Id == (int)QuoteFilterEnum.All &&
                                                  (filter.FromDate == null || u.Date >= filter.FromDate || u.ExpireDate >= filter.FromDate) &&
                                                  (filter.ToDate == null || u.Date <= filter.ToDate || u.ExpireDate <= filter.ToDate)) ||
                                                 (
                                                     filter.DateTypeFilter.Id == (int)QuoteFilterEnum.Date &&
                                                     (filter.FromDate == null || u.Date >= filter.FromDate) &&
                                                     (filter.ToDate == null || u.Date <= filter.ToDate)
                                                 ) ||
                                                 (
                                                     filter.DateTypeFilter.Id == (int)QuoteFilterEnum.Expire &&
                                                     (filter.FromDate == null || u.ExpireDate >= filter.FromDate) &&
                                                     (filter.ToDate == null || u.ExpireDate <= filter.ToDate)
                                                 )
                                             ) &&
                                             (u.StatusId != (int)QuoteEnum.Delete) &&
                                             (string.IsNullOrEmpty(filter.SearchText) || u.Number.Contains(filter.SearchText))
                                             ).OrderByDescending(u => u.Number)
                         .Skip((filter.Page - 1) * filter.PageSize)
                         .Take(filter.PageSize)
                         .Select(u => new Quote
            {
                AcceptedBy               = u.AcceptedBy,
                CustomerId               = u.CustomerId,
                StatusId                 = u.StatusId,
                AcceptedDate             = u.AcceptedDate,
                BaseCurrencyExchangeRate = u.BaseCurrencyExchangeRate,
                Created   = u.Created,
                CreatedBy = u.CreatedBy,
                Currency  = new Currency
                {
                    Code    = u.Currency.Code,
                    Name    = u.Currency.Name,
                    Id      = u.CurrencyId,
                    Symbole = u.Currency.Symbole,
                },
                CurrencyId = u.CurrencyId,
                Customer   = new Customer
                {
                    Id          = u.CustomerId,
                    DisplayName = u.Customer.DisplayName
                },
                Date           = u.Date,
                DeclinedBy     = u.DeclinedBy,
                Id             = u.Id,
                DeclinedDate   = u.DeclinedDate,
                ExpireDate     = u.ExpireDate,
                InvoicedBy     = u.InvoicedBy,
                InvoicedDate   = u.InvoicedDate,
                Note           = u.Note,
                Number         = u.Number,
                OrganisationId = u.OrganisationId,
                RefNo          = u.RefNo,
                Status         = new QuoteStatus
                {
                    Id   = u.StatusId,
                    Name = IsKhmer?u.Status.NameKh: u.Status.Name
                },
                TaxCurrencyExchangeRate = u.TaxCurrencyExchangeRate,
                Total           = u.Total,
                TotalIncludeTax = u.TotalIncludeTax
            }).ToList();

            return(quotes);
        }