예제 #1
0
        public async Task UpdateVehicleToWheelBaseChangeRequestIdAsync(string vehicleToWheelBaseId, long vehicleToWheelBaseChangeRequestId)
        {
            VehicleToWheelBaseDocument document = new VehicleToWheelBaseDocument
            {
                VehicleToWheelBaseId = vehicleToWheelBaseId.ToString(),
                VehicleToWheelBaseChangeRequestId = vehicleToWheelBaseChangeRequestId,
            };

            await _vehicleToWheelBaseIndexingRepositoryService.UpdateDocumentAsync(document);
        }
예제 #2
0
        public async Task AddChangeRequestIndexerAsync(long changeRequestId)
        {
            var wheelBaseRepositoryService =
                _vcdbUnitOfWork.GetRepositoryService <WheelBase>() as
                IVcdbSqlServerEfRepositoryService <WheelBase>;

            if (wheelBaseRepositoryService == null)
            {
                return;
            }

            var addedWheelBases =
                await
                wheelBaseRepositoryService.GetAsync(
                    item => item.ChangeRequestId == changeRequestId, 100000
                    );

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

            var addedWheelBase = addedWheelBases.First();
            var vehicleToWheelBaseSearchResult =
                await
                _vehicletoWheelBaseSearchService.SearchAsync(null,
                                                             $"wheelBaseId eq {addedWheelBase.Id}");

            var existingVehicleToWheelBaseDocuments = vehicleToWheelBaseSearchResult.Documents;

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

            //WheelBase is new and therefore not yet available in "vehicletoWheelBase" azure search index
            VehicleToWheelBaseDocument newVehicleToWheelBaseDocument = new VehicleToWheelBaseDocument
            {
                VehicleToWheelBaseId = Guid.NewGuid().ToString(),
                WheelBaseId          = addedWheelBase.Id,
                WheelBaseName        = addedWheelBase.Base,
                WheelBaseMetric      = addedWheelBase.WheelBaseMetric,
            };

            await this._vehicleToWheelBaseIndexingService.UploadDocumentAsync(newVehicleToWheelBaseDocument);
        }
예제 #3
0
        private async Task InsertOrUpdateVehicleToWheelBaseDocuments(List <VehicleToWheelBase> updatedVehicleToWheelBases, bool isReplace = false)
        {
            if (updatedVehicleToWheelBases == null)
            {
                return;
            }

            foreach (var updatedVehicleToWheelBase in updatedVehicleToWheelBases)
            //NOTE: updatedVehicles will contain more than 1 item when processing base vehicle replace
            {
                var vehicletoWheelBaseDocument = new VehicleToWheelBaseDocument
                {
                    VehicleToWheelBaseId              = updatedVehicleToWheelBase.Id.ToString(),
                    WheelBaseChangeRequestId          = isReplace ? -1 : (long?)null,
                    VehicleToWheelBaseChangeRequestId = -1,
                    BaseVehicleId      = updatedVehicleToWheelBase.Vehicle.BaseVehicleId,
                    WheelBaseName      = updatedVehicleToWheelBase.WheelBase.Base,
                    WheelBaseMetric    = updatedVehicleToWheelBase.WheelBase.WheelBaseMetric,
                    WheelBaseId        = updatedVehicleToWheelBase.WheelBaseId,
                    MakeId             = updatedVehicleToWheelBase.Vehicle.BaseVehicle.MakeId,
                    MakeName           = updatedVehicleToWheelBase.Vehicle.BaseVehicle.Make.Name,
                    ModelId            = updatedVehicleToWheelBase.Vehicle.BaseVehicle.ModelId,
                    ModelName          = updatedVehicleToWheelBase.Vehicle.BaseVehicle.Model.Name,
                    RegionId           = updatedVehicleToWheelBase.Vehicle.RegionId,
                    RegionName         = updatedVehicleToWheelBase.Vehicle.Region.Name,
                    Source             = updatedVehicleToWheelBase.Vehicle.SourceName,
                    SubModelId         = updatedVehicleToWheelBase.Vehicle.SubModelId,
                    SubModelName       = updatedVehicleToWheelBase.Vehicle.SubModel.Name,
                    VehicleId          = updatedVehicleToWheelBase.VehicleId,
                    VehicleTypeGroupId =
                        updatedVehicleToWheelBase.Vehicle.BaseVehicle.Model.VehicleType.VehicleTypeGroupId,
                    VehicleTypeGroupName =
                        updatedVehicleToWheelBase.Vehicle.BaseVehicle.Model.VehicleType.VehicleTypeGroup.Name,
                    VehicleTypeId   = updatedVehicleToWheelBase.Vehicle.BaseVehicle.Model.VehicleTypeId,
                    VehicleTypeName = updatedVehicleToWheelBase.Vehicle.BaseVehicle.Model.VehicleType.Name,
                    YearId          = updatedVehicleToWheelBase.Vehicle.BaseVehicle.YearId,
                };

                await
                this._vehicleToWheelBaseIndexingService.UploadDocumentAsync(vehicletoWheelBaseDocument);
            }
        }
예제 #4
0
        public async Task RejectChangeRequestIndexerAsync(long changeRequestId)
        {
            var vehicletoWheelBaseRepositoryService =
                _vcdbUnitOfWork.GetRepositoryService <VehicleToWheelBase>() as
                IVcdbSqlServerEfRepositoryService <VehicleToWheelBase>;

            if (vehicletoWheelBaseRepositoryService == null)
            {
                return;
            }

            var updatedVehicleToWheelBases =
                await
                vehicletoWheelBaseRepositoryService.GetAsync(item => item.ChangeRequestId == changeRequestId);


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

            foreach (var updatedVehicleToWheelBase in updatedVehicleToWheelBases)
            {
                var vehicletoWheelBaseDocument = new VehicleToWheelBaseDocument
                {
                    VehicleToWheelBaseId = updatedVehicleToWheelBase.Id.ToString(),
                    VehicleToWheelBaseChangeRequestId = -1,
                };

                await
                this._vehicleToWheelBaseIndexingService.UploadDocumentAsync(vehicletoWheelBaseDocument);
            }

            //Required when processing WheelBase REPLACE CR
            await ClearWheelBaseChangeRequestId(changeRequestId);
        }
 public async Task <DocumentIndexResult> UpdateDocumentAsync(VehicleToWheelBaseDocument vehicleToWheelBaseDocument)
 {
     return(await UpdateDocumentsAsync(new List <VehicleToWheelBaseDocument> {
         vehicleToWheelBaseDocument
     }));
 }
 public Task UploadDocumentAsync(VehicleToWheelBaseDocument vehicleToWheelBaseDocument)
 {
     throw new NotImplementedException();
 }
예제 #7
0
 public async Task UploadDocumentAsync(VehicleToWheelBaseDocument vehicleToWheelBaseDocument)
 {
     await _vehicleToWheelBaseIndexingRepositoryService.UpdateDocumentAsync(vehicleToWheelBaseDocument);
 }