コード例 #1
0
        public static Quotation Create(Guid instrumentId, string ask, string bid,
                                       string high, string low, DateTime timestamp, Setting quotationParameterProvider)
        {
            QuotationParameter quotationParameter = quotationParameterProvider.GetQuotationParameter(instrumentId);

            if (quotationParameter == QuotationParameter.Invalid)
            {
                return(null);
            }
            Quotation quotation = new Quotation();

            quotation.IsNormal     = quotationParameter.IsNormal;
            quotation.InstrumentId = instrumentId;
            quotation.Timestamp    = timestamp;

            quotation.Ask  = CommonPrice.CreateInstance(ask, quotationParameter.Numerator, quotationParameter.Denominator);
            quotation.Bid  = CommonPrice.CreateInstance(bid, quotationParameter.Numerator, quotationParameter.Denominator);
            quotation.High = CommonPrice.CreateInstance(high, quotationParameter.Numerator, quotationParameter.Denominator);
            quotation.Low  = CommonPrice.CreateInstance(low, quotationParameter.Numerator, quotationParameter.Denominator);
            return(quotation);
        }
コード例 #2
0
        public async Task <IHttpActionResult> LookupQuotationsWithPaging([ModelBinder] QuotationParameter searchCondition, string sortName, string sortDirection, int pageIndex, int pageSize)
        {
            var searchTerm = new List <Expression <Func <Quotation, bool> > >();

            if (!string.IsNullOrEmpty(searchCondition.QuotationId))
            {
                searchTerm.Add(x => x.Id.Contains(searchCondition.QuotationId));
            }

            searchTerm = FilterQuotationConditionByLookupType(searchTerm, searchCondition);

            var result = await CallAsyncWithRetry(() => _serviceParameter.QuotationService.GetQuotationsLookupWithPagingAsync(searchTerm, sortName, sortDirection, pageIndex, pageSize));

            if (!result.HasErrors)
            {
                var successResult = SuccessResult(result.Target);
                return(Ok(successResult));
            }

            var errorResult = ErrorResult(result.Errors);

            return(Content(HttpStatusCode.InternalServerError, errorResult));
        }
コード例 #3
0
        private List <Expression <Func <Quotation, bool> > > FilterQuotationConditionByLookupType(List <Expression <Func <Quotation, bool> > > searchTerm, QuotationParameter searchCondition)
        {
            int doneStatusId = (int)DTOQuotationStatusName.Done;

            if (!string.IsNullOrEmpty(searchCondition.LookupType) && searchCondition.LookupType != "MaitainingService")
            {
                if (searchCondition.LookupType == "TransactionHistory")
                {
                    searchTerm.Add(x => x.StatusId == doneStatusId);
                }
                else if (searchCondition.LookupType == "MaintenanceExpire")
                {
                    var lastSevenMaintenanceDays = DateTime.Now.AddDays(7);
                    searchTerm.Add(x => x.NextMaintenanceDate.Value <= lastSevenMaintenanceDays &&
                                   x.StatusId == doneStatusId);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(searchCondition.QuotationStatusId))
                {
                    int statusId = int.Parse(searchCondition.QuotationStatusId);
                    searchTerm.Add(x => x.StatusId == statusId);
                }
                if (!string.IsNullOrEmpty(searchCondition.QuotationEntryDate))
                {
                    var entryDate = DateTime.Parse(searchCondition.QuotationEntryDate);
                    searchTerm.Add(x => x.StartDate == entryDate);
                }
                searchTerm.Add(x => x.StatusId != doneStatusId);
            }

            if (!string.IsNullOrEmpty(searchCondition.CustomerId))
            {
                searchTerm.Add(x => x.CustomerExchange.CustomerId.Contains(searchCondition.CustomerId));
            }

            return(searchTerm);
        }