public async Task <ActionResult> ListTakeRates(TakeRateParameters parameters)
        {
            TakeRateParametersValidator
            .ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.NoValidation);

            var js     = new JavaScriptSerializer();
            var filter = new TakeRateFilter()
            {
                FilterMessage    = parameters.FilterMessage,
                TakeRateStatusId = parameters.TakeRateStatusId,
                Action           = TakeRateDataItemAction.TakeRates
            };

            filter.InitialiseFromJson(parameters);

            var results = await TakeRateViewModel.GetModel(DataContext, filter);

            var jQueryResult = new JQueryDataTableResultModel(results);

            foreach (var result in results.TakeRates.CurrentPage)
            {
                jQueryResult.aaData.Add(result.ToJQueryDataTableResult());
            }

            return(Json(jQueryResult));
        }
        public async Task <JsonResult> TakeRateFeatureData(TakeRateParameters parameters)
        {
            Log.Debug(MethodBase.GetCurrentMethod().Name);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.TakeRateDataPage;
            var model = await TakeRateViewModel.GetModel(DataContext, filter);

            var rows = new List <Dictionary <string, object> >();

            foreach (DataRow dr in model.Document.TakeRateData.RawData.Rows)
            {
                var row = new Dictionary <string, object>();
                foreach (DataColumn col in model.Document.TakeRateData.RawData.Columns)
                {
                    row.Add(col.ColumnName, dr[col]);
                }
                rows.Add(row);
            }

            Response.AddHeader("Content-Encoding", "gzip");
            Response.Filter = new GZipStream(Response.Filter,
                                             CompressionMode.Compress);

            return(Json(new
            {
                FeatureData = rows,
                model.Document.Market
            }));
        }
        //[OutputCache(Duration = 600,
        //    VaryByParam = "TakeRateParameters.TakeRateId,TakeRateParameters.MarketId,TakeRateParameters.PageSize,TakeRateParameters.PageIndex")]
        //[SiteMapTitle("DocumentName")]
        public ActionResult TakeRateDataPage(TakeRateParameters parameters)
        {
            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.TakeRateDataPage;
            var model = TakeRateViewModel.GetModel(DataContext, filter).Result;

            var title = string.Format("{0} - {1} ({2}) - {3}",
                                      model.Document.Vehicle.Code,
                                      model.Document.Vehicle.ModelYear, model.Document.UnderlyingOxoDocument.Gateway,
                                      model.Document.TakeRateSummary.First().Version);

            ViewBag.Title = title;

            string displayName;

            if (model.Document.Market is EmptyMarket)
            {
                displayName = string.Format("{0} - ALL MARKETS", title);
            }
            else
            {
                displayName = string.Format("{0} - {1}",
                                            title,
                                            model.Document.Market.Name.ToUpper());
            }

            ViewData["DocumentName"] = displayName;

            return(View("TakeRateDataPage", model));
        }
        public async Task <ActionResult> Powertrain(TakeRateParameters parameters)
        {
            TakeRateParametersValidator.ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.TakeRateIdentifier);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.Powertrain;
            var takeRateView = await TakeRateViewModel.GetModel(DataContext, filter);

            return(PartialView("_Powertrain", takeRateView));
        }
        public async Task <ActionResult> TakeRatePage(TakeRateParameters parameters)
        {
            TakeRateParametersValidator
            .ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.NoValidation);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.TakeRates;
            var takeRateView = await TakeRateViewModel.GetModel(DataContext, filter);

            return(View("TakeRatePage", takeRateView));
        }
        private void CheckModelAllowsEdit(TakeRateParameters parameters)
        {
            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.Changeset;
            var takeRateView = TakeRateViewModel.GetModel(DataContext, filter).Result;

            if (!takeRateView.AllowEdit)
            {
                throw new InvalidOperationException(NO_EDITS);
            }
        }
        public async Task <ActionResult> PersistChangesetConfirm(TakeRateParameters parameters)
        {
            TakeRateParametersValidator.ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.TakeRateIdentifierWithChangeset);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.TakeRateDataItemDetails;
            var takeRateView = await TakeRateViewModel.GetModel(DataContext, filter);

            takeRateView.Changes = await DataContext.TakeRate.GetUnsavedChangesForUser(filter);

            return(PartialView("_PersistChangesetConfirm", takeRateView));
        }
        public async Task <ActionResult> ChangesetHistory(TakeRateParameters parameters)
        {
            TakeRateParametersValidator.ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.TakeRateIdentifier);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.Changeset;
            var takeRateView = await TakeRateViewModel.GetModel(DataContext, filter);

            takeRateView.History = await DataContext.TakeRate.GetChangesetHistory(filter);

            return(PartialView("_ChangesetHistory", takeRateView));
        }
        private async Task CheckModelAllowsEdit(TakeRateParameters parameters)
        {
            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.Publish;
            var takeRateView = await TakeRateViewModel.GetModel(
                DataContext,
                filter);

            if (!takeRateView.AllowEdit)
            {
                throw new InvalidOperationException(NoEdits);
            }
        }
        public async Task <ActionResult> GetValidationSummary(TakeRateParameters parameters)
        {
            TakeRateParametersValidator.ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.TakeRateIdentifier);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.ValidationSummary;
            var takeRateView = await TakeRateViewModel.GetModel(DataContext, filter);

            var validation = await DataContext.TakeRate.GetValidation(TakeRateFilter.FromTakeRateParameters(parameters));

            takeRateView.Validation = validation;

            return(PartialView("_ValidationSummary", takeRateView));
        }
        public async Task <ActionResult> AddNote(TakeRateParameters parameters)
        {
            TakeRateParametersValidator.ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.ModelPlusFeatureAndComment);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.AddNote;
            var takeRateView = TakeRateViewModel.GetModel(DataContext, filter).Result;

            if (!takeRateView.AllowEdit)
            {
                throw new InvalidOperationException(NO_EDITS);
            }
            var note = await DataContext.TakeRate.AddDataItemNote(TakeRateFilter.FromTakeRateParameters(parameters));

            return(Json(note, JsonRequestBehavior.AllowGet));
        }
        public async Task <JsonResult> TakeRateModelData(TakeRateParameters parameters)
        {
            Log.Debug(MethodBase.GetCurrentMethod().Name);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.TakeRateDataPage;
            var model = await TakeRateViewModel.GetModel(DataContext, filter);

            Response.AddHeader("Content-Encoding", "gzip");
            Response.Filter = new GZipStream(Response.Filter,
                                             CompressionMode.Compress);

            return(Json(new
            {
                ModelData = model.Document.TakeRateData.TakeRateSummaryByModel,
                model.Document.Market
            }));
        }
        public async Task <ActionResult> ContextMenu(TakeRateParameters parameters)
        {
            try
            {
                TakeRateParametersValidator
                .ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.TakeRateIdentifier);

                var filter = TakeRateFilter.FromTakeRateParameters(parameters);
                filter.Action = TakeRateDataItemAction.TakeRates;

                var takeRateView = await TakeRateViewModel.GetModel(
                    DataContext,
                    filter);

                return(PartialView("_ContextMenu", takeRateView));
            }
            catch (Exception ex)
            {
                return(PartialView("_ModalError"));
            }
        }
Exemplo n.º 14
0
        //[OutputCacheComplex(typeof(TakeRateParameters))]
        public async Task <ActionResult> MarketReviewConfirm(TakeRateParameters parameters)
        {
            TakeRateParametersValidator
            .ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.TakeRateIdentifier);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.MarketReview;
            var takeRateView = await TakeRateViewModel.GetModel(
                DataContext,
                filter);

            if (parameters.MarketReviewStatus == MarketReviewStatus.Recalled)
            {
                takeRateView.MarketReviewStatus = MarketReviewStatus.Recalled;
            }

            takeRateView.Changes = await DataContext.TakeRate.GetUnsavedChangesForUser(filter);

            return(PartialView("_MarketReviewConfirm", takeRateView));
        }
        public async Task <ActionResult> UndoAllChangeset(TakeRateParameters parameters)
        {
            TakeRateParametersValidator.ValidateTakeRateParameters(DataContext, parameters, TakeRateParametersValidator.TakeRateIdentifierWithChangeset);

            var filter = TakeRateFilter.FromTakeRateParameters(parameters);

            filter.Action = TakeRateDataItemAction.Changeset;
            var takeRateView = await TakeRateViewModel.GetModel(DataContext, filter);

            if (!takeRateView.AllowEdit)
            {
                throw new InvalidOperationException(NO_EDITS);
            }
            var undoneChangeset = await DataContext.TakeRate.UndoAllChangeset(TakeRateFilter.FromTakeRateParameters(parameters));

            //// TODO break this out into a separate call, as we want it to return as fast as possible
            //var rawData = await DataContext.TakeRate.GetRawData(filter);
            //var validationResults = Validator.Validate(rawData);
            //var savedValidationResults = await Validator.Persist(DataContext, filter, validationResults);

            return(JsonGetSuccess(undoneChangeset));
        }
        public static TakeRateFilter FromTakeRateViewModel(TakeRateViewModel takeRateViewModel)
        {
            var filter = new TakeRateFilter()
            {
                ProgrammeId = takeRateViewModel.Document.UnderlyingOxoDocument.ProgrammeId,
                Gateway     = takeRateViewModel.Document.UnderlyingOxoDocument.Gateway
            };

            if (!(takeRateViewModel.Document.UnderlyingOxoDocument is EmptyOxoDocument))
            {
                filter.TakeRateId = takeRateViewModel.Document.TakeRateId;
                filter.DocumentId = takeRateViewModel.Document.UnderlyingOxoDocument.Id;
            }

            if (!(takeRateViewModel.Document.Market is EmptyMarket))
            {
                filter.MarketId = takeRateViewModel.Document.Market.Id;
            }

            if (!(takeRateViewModel.Document.MarketGroup is EmptyMarketGroup))
            {
                filter.MarketGroupId = takeRateViewModel.Document.MarketGroup.Id;
            }

            if (!(takeRateViewModel.Document.Vehicle is EmptyVehicle))
            {
                filter.Models = takeRateViewModel.Document.Vehicle.AvailableModels;
            }

            filter.Mode                     = takeRateViewModel.Document.Mode;
            filter.FeatureCode              = takeRateViewModel.Document.FeatureCode;
            filter.ShowCombinedPackOptions  = takeRateViewModel.Document.ShowCombinedPackOptions;
            filter.ExcludeOptionalPackItems = takeRateViewModel.Document.ExcludeOptionalPackItems;

            return(filter);
        }
 private async Task <TakeRateViewModel> GetModelFromParameters(TakeRateParameters parameters)
 {
     return(await TakeRateViewModel.GetModel(DataContext, TakeRateFilter.FromTakeRateParameters(parameters)));
 }