private static async Task <TakeRateViewModel> GetFullAndPartialViewModelForTakeRateDataPageExcludingData(IDataContext context, TakeRateFilter filter) { var modelBase = GetBaseModel(context); var takeRateModel = new TakeRateViewModel(modelBase) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings, MarketReviewStatus = filter.MarketReviewStatus, Filter = filter.Filter }; await HydrateOxoDocument(context, takeRateModel); await HydrateFdpVolumeHeader(context, takeRateModel); //await HydrateFdpVolumeHeadersFromOxoDocument(context, takeRateModel); await HydrateVehicle(context, takeRateModel); await HydrateMarket(context, takeRateModel); await HydrateMarketGroup(context, takeRateModel); await HydrateMarketGroups(context, takeRateModel); await HydrateModelsByMarket(context, takeRateModel); await HydrateMarketReview(context, takeRateModel); await HydratePublish(context, takeRateModel); return(takeRateModel); }
private static async Task <MarketGroup> GetMarketGroup(IDataContext context, TakeRateDocument forTakeRateDocument) { MarketGroup marketGroup; var cacheKey = string.Format("MarketGroup_{0}_{1}", forTakeRateDocument.TakeRateId, forTakeRateDocument.MarketGroup.Id); var cachedLookup = GetCache(cacheKey); if (cachedLookup != null) { marketGroup = (MarketGroup)cachedLookup; } else { marketGroup = await Task.FromResult(context.Market.GetMarketGroup(new TakeRateFilter() { TakeRateId = forTakeRateDocument.TakeRateId, MarketGroupId = forTakeRateDocument.MarketGroup.Id })); if (!(marketGroup is EmptyMarketGroup) && marketGroup.Id != 0) { AddCache(cacheKey, marketGroup); } } return(marketGroup); }
private static async Task <TakeRateViewModel> GetPartialViewModelForTakeRateDataPage(IDataContext context, TakeRateFilter filter) { var watch = Stopwatch.StartNew(); var modelBase = GetBaseModel(context); var takeRateModel = new TakeRateViewModel(modelBase) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings }; takeRateModel.Document.PageIndex = filter.PageIndex; takeRateModel.Document.PageSize = filter.PageSize; if (takeRateModel.Document.PageSize == -1) { takeRateModel.Document.PageSize = int.MaxValue; } if (!takeRateModel.Document.PageIndex.HasValue) { takeRateModel.Document.PageIndex = 1; } if (!takeRateModel.Document.PageSize.HasValue) { var configuredPageSize = context.ConfigurationSettings.GetInteger("TakeRateDataPageSize"); if (configuredPageSize == -1) { configuredPageSize = int.MaxValue; } takeRateModel.Document.PageSize = configuredPageSize; } takeRateModel.Document.ShowCombinedPackOptions = filter.ShowCombinedPackOptions; takeRateModel.Document.ExcludeOptionalPackItems = filter.ExcludeOptionalPackItems; await HydrateOxoDocument(context, takeRateModel); await HydrateFdpVolumeHeader(context, takeRateModel); //await HydrateFdpVolumeHeadersFromOxoDocument(context, takeRateModel); await HydrateVehicle(context, takeRateModel); await HydrateMarket(context, takeRateModel); await HydrateMarketGroup(context, takeRateModel); await HydrateMarketGroups(context, takeRateModel); await HydrateModelsByMarket(context, takeRateModel); await HydrateData(context, takeRateModel); //await HydrateDataFeatures(context, takeRateModel); await HydrateMarketReview(context, takeRateModel); await HydratePublish(context, takeRateModel); watch.Stop(); Log.Debug("GetFullAndPartialViewModelForTakeRateDataPage : " + watch.ElapsedMilliseconds); return(takeRateModel); }
private static async Task <Publish> GetPublishState(IDataContext context, TakeRateDocument takeRateDocument) { var publish = await context.TakeRate.GetPublish(new TakeRateFilter { TakeRateId = takeRateDocument.TakeRateId, MarketId = takeRateDocument.Market.Id }); publish.Document = takeRateDocument.UnderlyingOxoDocument; publish.Programme = takeRateDocument.Vehicle.GetProgramme(); return(publish); }
private static async Task <TakeRateViewModel> GetFullAndPartialViewModelForPowertrain(IDataContext context, TakeRateFilter filter) { var modelBase = GetBaseModel(context); var takeRateModel = new TakeRateViewModel(modelBase) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings }; await HydrateFdpVolumeHeader(context, takeRateModel); await HydratePowertrain(context, takeRateModel); await HydratePublish(context, takeRateModel); return(takeRateModel); }
private static async Task <TakeRateViewModel> GetFullAndPartialViewModelForFilter(IDataContext context, TakeRateFilter filter) { var modelBase = GetBaseModel(context); var takeRateModel = new TakeRateViewModel(modelBase) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings, MarketReviewStatus = filter.MarketReviewStatus, Filter = filter.Filter }; await HydrateOxoDocument(context, takeRateModel); await HydrateFdpVolumeHeader(context, takeRateModel); return(takeRateModel); }
private static async Task <TakeRateViewModel> GetViewModelForTakeRateDataPage(IDataContext context, TakeRateFilter filter) { var modelBase = GetBaseModel(context); var takeRateModel = new TakeRateViewModel(modelBase) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings }; takeRateModel.Document.PageIndex = filter.PageIndex; takeRateModel.Document.PageSize = filter.PageSize; if (takeRateModel.Document.PageSize == -1) { takeRateModel.Document.PageSize = int.MaxValue; } if (!takeRateModel.Document.PageIndex.HasValue) { takeRateModel.Document.PageIndex = 1; } if (!takeRateModel.Document.PageSize.HasValue) { var configuredPageSize = context.ConfigurationSettings.GetInteger("TakeRateDataPageSize"); if (configuredPageSize == -1) { configuredPageSize = int.MaxValue; } takeRateModel.Document.PageSize = configuredPageSize; } await HydrateOxoDocument(context, takeRateModel); await HydrateFdpVolumeHeader(context, takeRateModel); await HydrateVehicle(context, takeRateModel); await HydrateMarket(context, takeRateModel); await HydrateMarketGroups(context, takeRateModel); await HydrateModels(context, takeRateModel); await HydrateFeatures(context, takeRateModel); await HydrateMarketReview(context, takeRateModel); await HydratePublish(context, takeRateModel); return(takeRateModel); }
private static async Task <TakeRateViewModel> GetFullAndPartialViewModelForValidation(IDataContext context, TakeRateFilter filter) { var watch = Stopwatch.StartNew(); var modelBase = GetBaseModel(context); var takeRateModel = new TakeRateViewModel(modelBase) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings }; await HydrateFdpVolumeHeader(context, takeRateModel); await HydrateRawData(context, takeRateModel); watch.Stop(); Log.Debug("GetFullAndPartialViewModelForTakeRateDataPage : " + watch.ElapsedMilliseconds); return(takeRateModel); }
private static async Task <TakeRateViewModel> GetFullAndPartialViewModelForClone(IDataContext context, TakeRateFilter filter) { var takeRateModel = new TakeRateViewModel(GetBaseModel(context)) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings, }; await HydrateOxoDocument(context, takeRateModel); await HydrateFdpVolumeHeader(context, takeRateModel); await HydrateVehicle(context, takeRateModel); takeRateModel.AvailableProgrammes = await Task.FromResult(context.Vehicle.ListProgrammes(new ProgrammeFilter())); takeRateModel.AvailableDocuments = await Task.FromResult(context.Vehicle.ListPublishedDocuments(new ProgrammeFilter())); return(takeRateModel); }
private static async Task <TakeRateViewModel> GetFullAndPartialViewModelForTakeRateDataItem(IDataContext context, TakeRateFilter filter) { var takeRateModel = new TakeRateViewModel(GetBaseModel(context)) { Document = (TakeRateDocument)TakeRateDocument.FromFilter(filter), Configuration = context.ConfigurationSettings, CurrentTakeRateDataItem = await context.TakeRate.GetDataItem(filter) }; await HydrateOxoDocument(context, takeRateModel); await HydrateVehicle(context, takeRateModel); await HydrateMarket(context, takeRateModel); await HydrateMarketGroup(context, takeRateModel); await HydrateModelsByMarket(context, takeRateModel); await HydrateFeatures(context, takeRateModel); await HydrateCurrentModel(context, takeRateModel); await HydrateCurrentFeature(context, takeRateModel); await HydratePublish(context, takeRateModel); return(takeRateModel); }
private static async Task <MarketReview> GetMarketReview(IDataContext context, TakeRateDocument forTakeRateDocument) { return(await context.TakeRate.GetMarketReview(new TakeRateFilter { TakeRateId = forTakeRateDocument.TakeRateId, MarketId = forTakeRateDocument.Market.Id })); }
private static async Task<Publish> GetPublishState(IDataContext context, TakeRateDocument takeRateDocument) { var publish = await context.TakeRate.GetPublish(new TakeRateFilter { TakeRateId = takeRateDocument.TakeRateId, MarketId = takeRateDocument.Market.Id }); publish.Document = takeRateDocument.UnderlyingOxoDocument; publish.Programme = takeRateDocument.Vehicle.GetProgramme(); return publish; }
private static async Task<MarketReview> GetMarketReview(IDataContext context,TakeRateDocument forTakeRateDocument) { return await context.TakeRate.GetMarketReview(new TakeRateFilter { TakeRateId = forTakeRateDocument.TakeRateId, MarketId = forTakeRateDocument.Market.Id }); }
private static async Task <OXODoc> GetOxoDocumentFromTakeRateFile(IDataContext context, TakeRateDocument takeRateFile) { OXODoc oxoDocument; var cacheKey = string.Format("TakeRateFile_{0}", takeRateFile.TakeRateId.GetValueOrDefault()); var cachedLookup = GetCache(cacheKey); if (cachedLookup != null) { oxoDocument = (OXODoc)cachedLookup; } else { oxoDocument = await context.TakeRate.GetUnderlyingOxoDocument(new TakeRateFilter() { TakeRateId = takeRateFile.TakeRateId }); AddCache(cacheKey, oxoDocument); } return(oxoDocument); }
private static async Task <IEnumerable <FdpFeature> > ListFeatures(IDataContext context, TakeRateDocument forDocument) { if (forDocument.UnderlyingOxoDocument is EmptyOxoDocument) { return(Enumerable.Empty <FdpFeature>()); } return(await context.Vehicle.ListFeatures(FeatureFilter.FromOxoDocumentId(forDocument.UnderlyingOxoDocument.Id))); }
private static async Task <IEnumerable <FdpModel> > ListAvailableModels(IDataContext context, TakeRateDocument forVolume) { var filteredModels = Enumerable.Empty <FdpModel>(); if (forVolume.UnderlyingOxoDocument is EmptyOxoDocument || forVolume.Vehicle is EmptyVehicle) { return(filteredModels); } var filter = new TakeRateFilter() { TakeRateId = forVolume.TakeRateId, ProgrammeId = forVolume.UnderlyingOxoDocument.ProgrammeId, Gateway = forVolume.UnderlyingOxoDocument.Gateway, DocumentId = forVolume.UnderlyingOxoDocument.Id, PageSize = forVolume.PageSize, PageIndex = forVolume.PageIndex, BMC = forVolume.BMC, DPCK = forVolume.DPCK, FeatureCode = forVolume.FeatureCode }; filteredModels = (await context.Market.ListAvailableModelsByMarket(filter)); // Bit of a hack here. We have introduced model level paging and the easiest way to return the page values is in the original filter object forVolume.TotalRecords = filter.TotalRecords; forVolume.TotalDisplayRecords = filter.TotalDisplayRecords; forVolume.TotalPages = filter.TotalPages; return(filteredModels); }
private static async Task<IEnumerable<FdpModel>> ListAvailableModelsFilteredByMarket(IDataContext context, TakeRateDocument forVolume) { var filteredModels = Enumerable.Empty<FdpModel>(); if (forVolume.UnderlyingOxoDocument is EmptyOxoDocument || forVolume.Vehicle is EmptyVehicle) return filteredModels; var filter = new TakeRateFilter() { TakeRateId = forVolume.TakeRateId, ProgrammeId = forVolume.UnderlyingOxoDocument.ProgrammeId, Gateway = forVolume.UnderlyingOxoDocument.Gateway, DocumentId = forVolume.UnderlyingOxoDocument.Id, PageSize = forVolume.PageSize, PageIndex = forVolume.PageIndex, BMC = forVolume.BMC, DPCK= forVolume.DPCK, FeatureCode = forVolume.FeatureCode }; if (!(forVolume.Market is EmptyMarket)) { filter.MarketId = forVolume.Market.Id; } filteredModels = (await context.Market.ListAvailableModelsByMarket(filter)); // Bit of a hack here. We have introduced model level paging and the easiest way to return the page values is in the original filter object forVolume.TotalRecords = filter.TotalRecords; forVolume.TotalDisplayRecords = filter.TotalDisplayRecords; forVolume.TotalPages = filter.TotalPages; return filteredModels; }
private static async Task<OXODoc> GetOxoDocumentFromTakeRateFile(IDataContext context, TakeRateDocument takeRateFile) { OXODoc oxoDocument; var cacheKey = string.Format("TakeRateFile_{0}", takeRateFile.TakeRateId.GetValueOrDefault()); var cachedLookup = GetCache(cacheKey); if (cachedLookup != null) { oxoDocument = (OXODoc)cachedLookup; } else { oxoDocument = await context.TakeRate.GetUnderlyingOxoDocument(new TakeRateFilter() { TakeRateId = takeRateFile.TakeRateId }); AddCache(cacheKey, oxoDocument); } return oxoDocument; }
private static async Task<MarketGroup> GetMarketGroup(IDataContext context, TakeRateDocument forTakeRateDocument) { MarketGroup marketGroup; var cacheKey = string.Format("MarketGroup_{0}_{1}", forTakeRateDocument.TakeRateId, forTakeRateDocument.MarketGroup.Id); var cachedLookup = GetCache(cacheKey); if (cachedLookup != null) { marketGroup = (MarketGroup) cachedLookup; } else { marketGroup = await Task.FromResult(context.Market.GetMarketGroup(new TakeRateFilter() { TakeRateId = forTakeRateDocument.TakeRateId, MarketGroupId = forTakeRateDocument.MarketGroup.Id })); if (!(marketGroup is EmptyMarketGroup) && marketGroup.Id != 0) AddCache(cacheKey, marketGroup); } return marketGroup; }
public async Task <ITakeRateDocument> GetTakeRateDocument(TakeRateFilter filter) { return(await Task.FromResult(TakeRateDocument.FromFilter(filter))); }
private static async Task<IEnumerable<FdpFeature>> ListFeatures(IDataContext context, TakeRateDocument forDocument) { if (forDocument.UnderlyingOxoDocument is EmptyOxoDocument) return Enumerable.Empty<FdpFeature>(); return await context.Vehicle.ListFeatures(FeatureFilter.FromOxoDocumentId(forDocument.UnderlyingOxoDocument.Id)); }