示例#1
0
        public async Task UpdateVehicleToDriveTypeChangeRequestIdAsync(int vehicleToDriveTypeId, long vehicleToDriveTypeChangeRequestId)
        {
            VehicleToDriveTypeDocument document = new VehicleToDriveTypeDocument
            {
                VehicleToDriveTypeId = vehicleToDriveTypeId.ToString(),
                VehicleToDriveTypeChangeRequestId = vehicleToDriveTypeChangeRequestId,
            };

            await _vehicleToDriveTypeIndexingRepositoryService.UpdateDocumentAsync(document);
        }
        public async Task AddChangeRequestIndexerAsync(long changeRequestId)
        {
            var driveTypeRepositoryService =
                _repositories.GetRepositoryService <DriveType>() as
                IVcdbSqlServerEfRepositoryService <DriveType>;

            if (driveTypeRepositoryService == null)
            {
                return;
            }

            var addedDriveTypes =
                await
                driveTypeRepositoryService.GetAsync(
                    item => item.ChangeRequestId == changeRequestId, 100000
                    );

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

            var addedDriveType = addedDriveTypes.First();
            var vehicleToDriveTypeSearchResult =
                await
                _vehicletoDriveTypeSearchService.SearchAsync(null,
                                                             $"driveTypeId eq {addedDriveType.Id}");

            var existingVehicleToDriveTypeDocuments = vehicleToDriveTypeSearchResult.Documents;

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

            //MfrBodyCode is new and therefore not yet available in "vehicletoMfrBodyCode" azure search index
            VehicleToDriveTypeDocument newDriveTypeConfigDocument = new VehicleToDriveTypeDocument
            {
                VehicleToDriveTypeId = Guid.NewGuid().ToString(),
                DriveTypeId          = addedDriveType.Id,
                DriveTypeName        = addedDriveType.Name
            };

            await this._vehicleToDriveTypeIndexingService.UploadDocumentAsync(newDriveTypeConfigDocument);
        }
        private async Task InsertOrUpdateVehicleToDriveTypeDocuments(List <VehicleToDriveType> updatedVehicleToDriveTypes, bool isReplace = false)
        {
            if (updatedVehicleToDriveTypes == null)
            {
                return;
            }

            foreach (var updatedVehicleToDriveType in updatedVehicleToDriveTypes)
            //NOTE: updatedVehicles will contain more than 1 item when processing base vehicle replace
            {
                var vehicletoDriveTypeDocument = new VehicleToDriveTypeDocument
                {
                    VehicleToDriveTypeId              = updatedVehicleToDriveType.Id.ToString(),
                    DriveTypeChangeRequestId          = isReplace ? -1 : (long?)null,
                    VehicleToDriveTypeChangeRequestId = -1,
                    BaseVehicleId      = updatedVehicleToDriveType.Vehicle.BaseVehicleId,
                    DriveTypeId        = updatedVehicleToDriveType.DriveType.Id,
                    DriveTypeName      = updatedVehicleToDriveType.DriveType.Name,
                    MakeId             = updatedVehicleToDriveType.Vehicle.BaseVehicle.MakeId,
                    MakeName           = updatedVehicleToDriveType.Vehicle.BaseVehicle.Make.Name,
                    ModelId            = updatedVehicleToDriveType.Vehicle.BaseVehicle.ModelId,
                    ModelName          = updatedVehicleToDriveType.Vehicle.BaseVehicle.Model.Name,
                    RegionId           = updatedVehicleToDriveType.Vehicle.RegionId,
                    RegionName         = updatedVehicleToDriveType.Vehicle.Region.Name,
                    Source             = updatedVehicleToDriveType.Vehicle.SourceName,
                    SubModelId         = updatedVehicleToDriveType.Vehicle.SubModelId,
                    SubModelName       = updatedVehicleToDriveType.Vehicle.SubModel.Name,
                    VehicleId          = updatedVehicleToDriveType.VehicleId,
                    VehicleTypeGroupId =
                        updatedVehicleToDriveType.Vehicle.BaseVehicle.Model.VehicleType.VehicleTypeGroupId,
                    VehicleTypeGroupName =
                        updatedVehicleToDriveType.Vehicle.BaseVehicle.Model.VehicleType.VehicleTypeGroup.Name,
                    VehicleTypeId   = updatedVehicleToDriveType.Vehicle.BaseVehicle.Model.VehicleTypeId,
                    VehicleTypeName = updatedVehicleToDriveType.Vehicle.BaseVehicle.Model.VehicleType.Name,
                    YearId          = updatedVehicleToDriveType.Vehicle.BaseVehicle.YearId,
                };

                await
                this._vehicleToDriveTypeIndexingService.UploadDocumentAsync(vehicletoDriveTypeDocument);
            }
        }
        public async Task RejectChangeRequestIndexerAsync(long changeRequestId)
        {
            var vehicletoDriveTypeRepositoryService =
                _vcdbUnitOfWork.GetRepositoryService <VehicleToDriveType>() as
                IVcdbSqlServerEfRepositoryService <VehicleToDriveType>;

            if (vehicletoDriveTypeRepositoryService == null)
            {
                return;
            }

            var updatedVehicleToDriveTypes =
                await
                vehicletoDriveTypeRepositoryService.GetAsync(item => item.ChangeRequestId == changeRequestId);


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

            foreach (var updatedVehicleToDriveType in updatedVehicleToDriveTypes)
            {
                var vehicletoDriveTypeDocument = new VehicleToDriveTypeDocument
                {
                    VehicleToDriveTypeId = updatedVehicleToDriveType.Id.ToString(),
                    VehicleToDriveTypeChangeRequestId = -1,
                };

                await
                this._vehicleToDriveTypeIndexingService.UploadDocumentAsync(vehicletoDriveTypeDocument);
            }

            //Required when processing MfrBodyCode REPLACE CR
            await ClearDriveTypeChangeRequestId(changeRequestId);
        }
示例#5
0
 public async Task UploadDocumentAsync(VehicleToDriveTypeDocument vehicleToDriveTypeDocument)
 {
     await _vehicleToDriveTypeIndexingRepositoryService.UpdateDocumentAsync(vehicleToDriveTypeDocument);
 }
 public async Task<DocumentIndexResult> UpdateDocumentAsync(VehicleToDriveTypeDocument vehicleToDriveTypeDocument)
 {
     return await UpdateDocumentsAsync(new List<VehicleToDriveTypeDocument> { vehicleToDriveTypeDocument });
 }
 public Task UploadDocumentAsync(VehicleToDriveTypeDocument vehicleToDriveTypeDocument)
 {
     throw new NotImplementedException();
 }