public async Task UpdateVehicleToBodyStyleConfigChangeRequestIdAsync(int vehicleToBodyStyleConfigId, long vehicleToBodyStyleConfigChangeRequestId)
        {
            VehicleToBodyStyleConfigDocument document = new VehicleToBodyStyleConfigDocument
            {
                VehicleToBodyStyleConfigId = vehicleToBodyStyleConfigId.ToString(),
                VehicleToBodyStyleConfigChangeRequestId = vehicleToBodyStyleConfigChangeRequestId,
            };

            await _vehicleToBodyStyleConfigIndexingRepositoryService.UpdateDocumentAsync(document);
        }
Beispiel #2
0
        public async Task AddChangeRequestIndexerAsync(long changeRequestId)
        {
            var bodyStyleConfigRepositoryService =
                _vcdbUnitOfWork.GetRepositoryService <BodyStyleConfig>() as
                IVcdbSqlServerEfRepositoryService <BodyStyleConfig>;

            if (bodyStyleConfigRepositoryService == null)
            {
                return;
            }

            var addedBodyStyleConfigs =
                await
                bodyStyleConfigRepositoryService.GetAsync(
                    item => item.ChangeRequestId == changeRequestId, 100000,
                    "BodyNumDoors",
                    "BodyType");

            if (addedBodyStyleConfigs == null || !addedBodyStyleConfigs.Any())
            {
                throw new InvalidOperationException(
                          "Body Style Config Index cannot be updated before the transactional table is updated");
            }

            var addedBodyStyleConfig = addedBodyStyleConfigs.First();
            var vehicleToBodyStyleConfigSearchResult =
                await
                _vehicleToBodyStyleConfigSearchService.SearchAsync(null,
                                                                   $"bodyStyleConfigId eq {addedBodyStyleConfig.Id}");

            var existingVehicleToBodyStyleConfigDocuments = vehicleToBodyStyleConfigSearchResult.Documents;

            if (existingVehicleToBodyStyleConfigDocuments != null && existingVehicleToBodyStyleConfigDocuments.Any())
            {
                throw new InvalidOperationException(
                          "BodyStyleConfig already exisit in VehicleToBodyStyleConfigIndex. So, this change request cannot be an add request");
            }

            //body style config is new and therefore not yet available in "vehicletobodystyleconfigs" azure search index
            VehicleToBodyStyleConfigDocument newVehicleToBodyStyleConfigDocument = new VehicleToBodyStyleConfigDocument
            {
                VehicleToBodyStyleConfigId = Guid.NewGuid().ToString(),
                BodyStyleConfigId          = addedBodyStyleConfig.Id,
                BodyNumDoorsId             = addedBodyStyleConfig.BodyNumDoorsId,
                BodyNumDoors = addedBodyStyleConfig.BodyNumDoors.NumDoors,
                BodyTypeId   = addedBodyStyleConfig.BodyTypeId,
                BodyTypeName = addedBodyStyleConfig.BodyType.Name
            };

            await this._vehicleToBodyStyleConfigIndexingService.UploadDocumentAsync(newVehicleToBodyStyleConfigDocument);
        }
        private async Task InsertOrUpdateVehicleToBodyConfigDocuments(List <VehicleToBodyStyleConfig> updatedVehicleToBodyConfigs, bool isReplace = false)
        {
            if (updatedVehicleToBodyConfigs == null)
            {
                return;
            }

            foreach (var updatedVehicleToBodyConfig in updatedVehicleToBodyConfigs)
            //NOTE: updatedVehicles will contain more than 1 item when processing base vehicle replace
            {
                var vehicletoBodyConfigDocument = new VehicleToBodyStyleConfigDocument
                {
                    VehicleToBodyStyleConfigId              = updatedVehicleToBodyConfig.Id.ToString(),
                    BodyStyleConfigChangeRequestId          = isReplace ? -1 : (long?)null,
                    VehicleToBodyStyleConfigChangeRequestId = -1,
                    BaseVehicleId     = updatedVehicleToBodyConfig.Vehicle.BaseVehicleId,
                    BodyNumDoorsId    = updatedVehicleToBodyConfig.BodyStyleConfig.BodyNumDoorsId,
                    BodyTypeName      = updatedVehicleToBodyConfig.BodyStyleConfig.BodyType.Name,
                    BodyTypeId        = updatedVehicleToBodyConfig.BodyStyleConfig.BodyTypeId,
                    BodyNumDoors      = updatedVehicleToBodyConfig.BodyStyleConfig.BodyNumDoors.NumDoors,
                    BodyStyleConfigId = updatedVehicleToBodyConfig.BodyStyleConfig.Id,
                    MakeId            = updatedVehicleToBodyConfig.Vehicle.BaseVehicle.MakeId,
                    MakeName          = updatedVehicleToBodyConfig.Vehicle.BaseVehicle.Make.Name,
                    ModelId           = updatedVehicleToBodyConfig.Vehicle.BaseVehicle.ModelId,
                    ModelName         = updatedVehicleToBodyConfig.Vehicle.BaseVehicle.Model.Name,
                    RegionId          = updatedVehicleToBodyConfig.Vehicle.RegionId,
                    RegionName        = updatedVehicleToBodyConfig.Vehicle.Region.Name,
                    //Source = updatedVehicleToBodyConfig.Source,
                    SubModelId         = updatedVehicleToBodyConfig.Vehicle.SubModelId,
                    SubModelName       = updatedVehicleToBodyConfig.Vehicle.SubModel.Name,
                    VehicleId          = updatedVehicleToBodyConfig.VehicleId,
                    VehicleTypeGroupId =
                        updatedVehicleToBodyConfig.Vehicle.BaseVehicle.Model.VehicleType.VehicleTypeGroupId,
                    VehicleTypeGroupName =
                        updatedVehicleToBodyConfig.Vehicle.BaseVehicle.Model.VehicleType.VehicleTypeGroup.Name,
                    VehicleTypeId   = updatedVehicleToBodyConfig.Vehicle.BaseVehicle.Model.VehicleTypeId,
                    VehicleTypeName = updatedVehicleToBodyConfig.Vehicle.BaseVehicle.Model.VehicleType.Name,
                    YearId          = updatedVehicleToBodyConfig.Vehicle.BaseVehicle.YearId,
                };

                await
                this._vehicleToBodyConfigIndexingService.UploadDocumentAsync(vehicletoBodyConfigDocument);
            }
        }
        public async Task RejectChangeRequestIndexerAsync(long changeRequestId)
        {
            var vehicletoBodyConfigRepositoryService =
                _vcdbUnitOfWork.GetRepositoryService <VehicleToBodyStyleConfig>() as
                IVcdbSqlServerEfRepositoryService <VehicleToBodyStyleConfig>;

            if (vehicletoBodyConfigRepositoryService == null)
            {
                return;
            }

            var updatedVehicleToBodyConfigs =
                await
                vehicletoBodyConfigRepositoryService.GetAsync(item => item.ChangeRequestId == changeRequestId);


            if (updatedVehicleToBodyConfigs == null || !updatedVehicleToBodyConfigs.Any())
            {
                //Pushkar: need to test this condition
                throw new InvalidOperationException(
                          "Vehicle To Body Config Index cannot be updated before the transactional table is updated");
            }

            foreach (var updatedVehicleToBodyConfig in updatedVehicleToBodyConfigs)
            {
                var vehicletoBodyConfigDocument = new VehicleToBodyStyleConfigDocument
                {
                    VehicleToBodyStyleConfigId = updatedVehicleToBodyConfig.Id.ToString(),
                    VehicleToBodyStyleConfigChangeRequestId = -1,
                };

                await
                this._vehicleToBodyConfigIndexingService.UploadDocumentAsync(vehicletoBodyConfigDocument);
            }

            //Required when processing bedconfig REPLACE CR
            await ClearBodyConfigChangeRequestId(changeRequestId);
        }
 public async Task UploadDocumentAsync(VehicleToBodyStyleConfigDocument vehicleToBodyStyleConfigDocument)
 {
     await _vehicleToBodyStyleConfigIndexingRepositoryService.UpdateDocumentAsync(vehicleToBodyStyleConfigDocument);
 }
 public async Task <DocumentIndexResult> UpdateDocumentAsync(VehicleToBodyStyleConfigDocument vehicleToBodyStyleConfigDocument)
 {
     return(await UpdateDocumentsAsync(new List <VehicleToBodyStyleConfigDocument> {
         vehicleToBodyStyleConfigDocument
     }));
 }
 public Task UploadDocumentAsync(VehicleToBodyStyleConfigDocument vehicleToBodyStyleConfigDocument)
 {
     throw new NotImplementedException();
 }