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