Ejemplo n.º 1
0
        public BmcMapping GetMappedBmc(DerivativeFilter filter)
        {
            BmcMapping mapping = null;

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();

                    para.Add("@ProgrammeId", filter.ProgrammeId, DbType.Int32);
                    para.Add("@Gateway", filter.Gateway, DbType.String);
                    para.Add("@ImportBMC", filter.Bmc, DbType.String);

                    var results     = conn.Query <BmcMapping>("Fdp_Derivative_GetMappedBMC", para, commandType: CommandType.StoredProcedure);
                    var bmcMappings = results as IList <BmcMapping> ?? results.ToList();
                    if (results != null && bmcMappings.Any())
                    {
                        mapping = bmcMappings.First();
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return(mapping);
        }
        public IEnumerable <Derivative> ListDerivatives(DerivativeFilter filter)
        {
            var derivatives = _derivativeDataStore.DerivativeGetMany(filter);

            var listDerivatives = derivatives as IList <Derivative> ?? derivatives.ToList();

            // Eliminate the derivatives with no BMC as this will cause real issues
            if (derivatives != null && listDerivatives.Any())
            {
                listDerivatives = listDerivatives.Where(d => !string.IsNullOrEmpty(d.DerivativeCode)).ToList();
            }
            foreach (var derivative in listDerivatives)
            {
                if (derivative.BodyId.HasValue)
                {
                    derivative.Body = _bodyDataStore.ModelBodyGet(derivative.BodyId.Value, filter.DocumentId);
                }

                if (derivative.EngineId.HasValue)
                {
                    derivative.Engine = _engineDataStore.ModelEngineGet(derivative.EngineId.Value, filter.DocumentId);
                }

                if (derivative.TransmissionId.HasValue)
                {
                    derivative.Transmission =
                        _transmissionDataStore.ModelTransmissionGet(derivative.TransmissionId.Value, filter.DocumentId);
                }
            }
            return(listDerivatives);
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> ListDerivatives(DerivativeParameters parameters)
        {
            ValidateDerivativeParameters(parameters, DerivativeParametersValidator.NoValidation);

            var filter = new DerivativeFilter()
            {
                FilterMessage = parameters.FilterMessage,
                CarLine       = parameters.CarLine,
                ModelYear     = parameters.ModelYear,
                Gateway       = parameters.Gateway,
                Action        = DerivativeAction.Derivatives
            };

            filter.InitialiseFromJson(parameters);

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

            var jQueryResult = new JQueryDataTableResultModel(results);

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

            return(Json(jQueryResult));
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> DerivativePage(DerivativeParameters parameters)
        {
            var filter = new DerivativeFilter()
            {
                PageIndex = PageIndex,
                PageSize  = PageSize
            };

            return(View(await DerivativeViewModel.GetModel(DataContext, filter)));
        }
        private static DerivativeViewModel GetFullAndPartialViewModel(IDataContext context,
                                                                      DerivativeFilter filter)
        {
            var model = new DerivativeViewModel(GetBaseModel(context))
            {
                Configuration = context.ConfigurationSettings,
            };

            HydrateModelWithCommonProperties(model, context);

            return(model);
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> ContextMenu(DerivativeParameters parameters)
        {
            ValidateDerivativeParameters(parameters, DerivativeParametersValidator.DerivativeIdentifier);

            var filter = DerivativeFilter.FromParameters(parameters);

            filter.Action = DerivativeAction.Derivative;

            var derivativeView = await DerivativeViewModel.GetModel(DataContext, filter);

            return(PartialView("_ContextMenu", derivativeView));
        }
Ejemplo n.º 7
0
        public IEnumerable <Derivative> DerivativeGetMany(DerivativeFilter filter)
        {
            filter.PageSize = 1000;
            filter.IncludeAllDerivatives = true;

            var derivatives = FdpDerivativeMappingGetMany(filter);

            if (derivatives == null || derivatives.CurrentPage == null || !derivatives.CurrentPage.Any())
            {
                return(Enumerable.Empty <Derivative>());
            }

            return(derivatives.CurrentPage);
        }
Ejemplo n.º 8
0
        public FdpDerivative FdpDerivativeGet(DerivativeFilter filter)
        {
            FdpDerivative retVal = new EmptyFdpDerivative();

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    para.Add("@FdpDerivativeId", filter.DerivativeId.GetValueOrDefault(), DbType.Int32);
                    retVal = conn.Query <FdpDerivative>("dbo.Fdp_Derivative_Get", para, commandType: CommandType.StoredProcedure).FirstOrDefault();
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return(retVal);
        }
        public static async Task <DerivativeViewModel> GetModel(IDataContext context, DerivativeFilter derivativeFilter)
        {
            DerivativeViewModel model = null;

            if (derivativeFilter.Action == DerivativeAction.Delete || derivativeFilter.Action == DerivativeAction.Derivative)
            {
                model = await GetFullAndPartialViewModelForDerivative(context, derivativeFilter);
            }
            else if (derivativeFilter.Action == DerivativeAction.Derivatives)
            {
                model = await GetFullAndPartialViewModelForDerivatives(context, derivativeFilter);
            }
            else if (derivativeFilter.Action == DerivativeAction.OxoDerivatives)
            {
                model = GetFullAndPartialViewModelForOxoDerivatives(context, derivativeFilter);
            }
            else
            {
                model = GetFullAndPartialViewModel(context, derivativeFilter);
            }
            if (derivativeFilter.Action != DerivativeAction.NotSet)
            {
                model.IdentifierPrefix = Enum.GetName(derivativeFilter.Action.GetType(), derivativeFilter.Action);
            }

            return(model);
        }
        private static DerivativeViewModel GetFullAndPartialViewModelForOxoDerivatives(IDataContext context,
                                                                                       DerivativeFilter filter)
        {
            var baseModel = GetBaseModel(context);
            var model     = new DerivativeViewModel()
            {
                PageIndex      = filter.PageIndex ?? 1,
                PageSize       = filter.PageSize ?? int.MaxValue,
                Configuration  = context.ConfigurationSettings,
                CurrentUser    = baseModel.CurrentUser,
                CurrentVersion = baseModel.CurrentVersion
            };

            var programmeFilter = new ProgrammeFilter()
            {
                ProgrammeId = filter.ProgrammeId,
                Gateway     = filter.Gateway
            };

            HydrateModelWithCommonProperties(model, context, programmeFilter);

            model.OxoDerivatives = context.Vehicle.ListDerivatives(filter);

            return(model);
        }
        private static async Task <DerivativeViewModel> GetFullAndPartialViewModelForDerivatives(IDataContext context,
                                                                                                 DerivativeFilter filter)
        {
            var baseModel = SharedModelBase.GetBaseModel(context);
            var model     = new DerivativeViewModel()
            {
                PageIndex      = filter.PageIndex.HasValue ? filter.PageIndex.Value : 1,
                PageSize       = filter.PageSize.HasValue ? filter.PageSize.Value : Int32.MaxValue,
                Configuration  = context.ConfigurationSettings,
                CurrentUser    = baseModel.CurrentUser,
                CurrentVersion = baseModel.CurrentVersion
            };

            var programmeFilter = new ProgrammeFilter()
            {
                ProgrammeId = filter.ProgrammeId,
                Gateway     = filter.Gateway
            };

            HydrateModelWithCommonProperties(model, context, programmeFilter);

            model.Derivatives = await context.Vehicle.ListFdpDerivatives(filter);

            model.TotalPages          = model.Derivatives.TotalPages;
            model.TotalRecords        = model.Derivatives.TotalRecords;
            model.TotalDisplayRecords = model.Derivatives.TotalDisplayRecords;

            foreach (var derivative in model.Derivatives.CurrentPage)
            {
                derivative.Programme    = model.Programmes.FirstOrDefault(p => p.Id == derivative.ProgrammeId.GetValueOrDefault());
                derivative.Body         = model.Bodies.FirstOrDefault(b => b.Id == derivative.BodyId);
                derivative.Engine       = model.Engines.FirstOrDefault(e => e.Id == derivative.EngineId);
                derivative.Transmission = model.Transmissions.FirstOrDefault(t => t.Id == derivative.TransmissionId);
            }

            return(model);
        }
 public async Task <BmcMapping> GetMappedBmc(DerivativeFilter filter)
 {
     return(await Task.FromResult(_derivativeDataStore.GetMappedBmc(filter)));
 }
 public async Task <PagedResults <FdpDerivative> > ListFdpDerivatives(DerivativeFilter filter)
 {
     return(await Task.FromResult(_derivativeDataStore.FdpDerivativeGetMany(filter)));
 }
 public async Task <FdpDerivative> GetFdpDerivative(DerivativeFilter filter)
 {
     return(await Task.FromResult(_derivativeDataStore.FdpDerivativeGet(filter)));
 }
        private static async Task <DerivativeViewModel> GetFullAndPartialViewModelForDerivative(IDataContext context,
                                                                                                DerivativeFilter filter)
        {
            var model = new DerivativeViewModel()
            {
                PageIndex     = filter.PageIndex.HasValue ? filter.PageIndex.Value : 1,
                PageSize      = filter.PageSize.HasValue ? filter.PageSize.Value : Int32.MaxValue,
                Configuration = context.ConfigurationSettings
            };
            var derivative = await context.Vehicle.GetFdpDerivative(filter);

            var programmeFilter = new ProgrammeFilter()
            {
                ProgrammeId = derivative.ProgrammeId,
                Gateway     = derivative.Gateway
            };

            HydrateModelWithCommonProperties(model, context, programmeFilter);

            if (!(derivative is EmptyFdpDerivative))
            {
                derivative.Programme    = model.Programmes.FirstOrDefault(p => p.Id == derivative.ProgrammeId.GetValueOrDefault());
                derivative.Body         = model.Bodies.FirstOrDefault(b => b.Id == derivative.BodyId);
                derivative.Engine       = model.Engines.FirstOrDefault(e => e.Id == derivative.EngineId);
                derivative.Transmission = model.Transmissions.FirstOrDefault(t => t.Id == derivative.TransmissionId);
            }
            model.Derivative = derivative;

            return(model);
        }
Ejemplo n.º 16
0
        public PagedResults <FdpDerivativeMapping> FdpDerivativeMappingGetMany(DerivativeFilter filter)
        {
            PagedResults <FdpDerivativeMapping> retVal = null;

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para                = DynamicParameters.FromCDSId(CurrentCDSID);
                    var totalRecords        = 0;
                    var totalDisplayRecords = 0;

                    if (!string.IsNullOrEmpty(filter.CarLine))
                    {
                        para.Add("@CarLine", filter.CarLine, DbType.String);
                    }
                    if (!string.IsNullOrEmpty(filter.ModelYear))
                    {
                        para.Add("@ModelYear", filter.ModelYear, DbType.String);
                    }
                    if (!string.IsNullOrEmpty(filter.Gateway))
                    {
                        para.Add("@Gateway", filter.Gateway, DbType.String);
                    }
                    if (filter.PageIndex.HasValue)
                    {
                        para.Add("@PageIndex", filter.PageIndex.Value, DbType.Int32);
                    }
                    if (filter.PageSize.HasValue)
                    {
                        para.Add("@PageSize", filter.PageSize.Value, DbType.Int32);
                    }
                    if (filter.SortIndex.HasValue)
                    {
                        para.Add("@SortIndex", filter.SortIndex.Value, DbType.Int32);
                    }
                    if (filter.SortDirection != SortDirection.NotSet)
                    {
                        var direction = filter.SortDirection == SortDirection.Descending ? "DESC" : "ASC";
                        para.Add("@SortDirection", direction, DbType.String);
                    }
                    if (filter.IncludeAllDerivatives)
                    {
                        para.Add("@IncludeAllDerivatives", true, DbType.Boolean);
                    }
                    if (filter.OxoDerivativesOnly)
                    {
                        para.Add("@OxoDerivativesOnly", filter.OxoDerivativesOnly, DbType.Boolean);
                    }
                    para.Add("@DocumentId", filter.DocumentId, DbType.Int32);
                    para.Add("@TotalPages", DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", DbType.Int32, direction: ParameterDirection.Output);

                    var results = conn.Query <FdpDerivativeMapping>("dbo.Fdp_DerivativeMapping_GetMany", para, commandType: CommandType.StoredProcedure);

                    if (results.Any())
                    {
                        totalRecords        = para.Get <int>("@TotalRecords");
                        totalDisplayRecords = para.Get <int>("@TotalDisplayRecords");
                    }
                    retVal = new PagedResults <FdpDerivativeMapping>
                    {
                        PageIndex           = filter.PageIndex.HasValue ? filter.PageIndex.Value : 1,
                        TotalRecords        = totalRecords,
                        TotalDisplayRecords = totalDisplayRecords,
                        PageSize            = filter.PageSize.HasValue ? filter.PageSize.Value : totalRecords
                    };

                    var currentPage = new List <FdpDerivativeMapping>();

                    foreach (var result in results)
                    {
                        currentPage.Add(result);
                    }
                    retVal.CurrentPage = currentPage;
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return(retVal);
        }
        private static async Task <ImportViewModel> GetFullAndPartialViewModelForException(IDataContext context,
                                                                                           ImportQueueFilter filter)
        {
            var model = new ImportViewModel(GetBaseModel(context))
            {
                PageIndex        = filter.PageIndex ?? 1,
                PageSize         = filter.PageSize ?? int.MaxValue,
                Configuration    = context.ConfigurationSettings,
                CurrentException = await context.Import.GetException(filter)
            };

            var programmeFilter = new ProgrammeFilter(model.CurrentException.ProgrammeId)
            {
                DocumentId = model.CurrentException.DocumentId
            };
            var featureFilter = new FeatureFilter {
                ProgrammeId = model.CurrentException.ProgrammeId, DocumentId = model.CurrentException.DocumentId
            };

            model.Programme           = context.Vehicle.GetProgramme(programmeFilter);
            programmeFilter.VehicleId = model.Programme.VehicleId;

            model.Gateway                  = model.CurrentException.Gateway;
            model.AvailableDocuments       = context.Vehicle.ListPublishedDocuments(programmeFilter);
            model.AvailableEngines         = context.Vehicle.ListEngines(programmeFilter);
            model.AvailableTransmissions   = context.Vehicle.ListTransmissions(programmeFilter);
            model.AvailableBodies          = context.Vehicle.ListBodies(programmeFilter);
            model.AvailableSpecialFeatures = await context.TakeRate.ListSpecialFeatures(programmeFilter);

            model.AvailableMarkets = await context.Market.ListAvailableMarkets();

            model.AvailableFeatures = await context.Vehicle.ListFeatures(featureFilter);

            model.AvailableFeatureGroups = context.Vehicle.ListFeatureGroups(programmeFilter);
            model.AvailableTrimLevels    = context.Vehicle.ListTrimLevels(programmeFilter);

            var derivativeFilter = new DerivativeFilter
            {
                CarLine     = model.Programme.VehicleName,
                ModelYear   = model.Programme.ModelYear,
                Gateway     = model.Gateway,
                ProgrammeId = model.CurrentException.ProgrammeId,
            };

            model.AvailableDerivatives       = context.Vehicle.ListDerivatives(derivativeFilter);
            model.AvailableImportDerivatives = await ListImportDerivatives(model.CurrentException.ImportQueueId, context);

            model.AvailableImportTrimLevels = await ListImportTrimLevels(model.CurrentException.ImportQueueId, context);

            model.AvailableImportFeatures = await ListImportFeatures(model.CurrentException.ImportQueueId, context);

            derivativeFilter.Bmc = model.CurrentException.ImportDerivativeCode;

            var trimFilter = new TrimMappingFilter
            {
                CarLine        = model.Programme.VehicleName,
                ModelYear      = model.Programme.ModelYear,
                Gateway        = model.Gateway,
                DocumentId     = model.CurrentException is EmptyOxoDocument ? (int?)null : model.CurrentException.DocumentId,
                IncludeAllTrim = false
            };

            model.AvailableTrim = (await context.Vehicle.ListOxoTrim(trimFilter)).CurrentPage;
            model.Document      = model.AvailableDocuments.FirstOrDefault(d => d.Id == model.CurrentException.DocumentId);

            return(model);
        }