public override async Task <long> SubmitAddChangeRequestAsync(BodyStyleConfig entity, string requestedBy, List <ChangeRequestItemStaging> changeRequestItemStagings = null, CommentsStagingModel comment = null, List <AttachmentsModel> attachmentsStagingModels = null, string changeContent = null) { if (entity.BodyNumDoorsId.Equals(default(int)) || entity.BodyTypeId.Equals(default(int))) { throw new ArgumentException(nameof(entity)); } changeRequestItemStagings = new List <ChangeRequestItemStaging>(); // Validation check for insert of new body style config await ValidateConfigurationDoesNotMatchWithExistingBodyStyleConfig(entity); await ValidateNoChangeRequestExistsWithSameConfiguration(entity); await ValidateBodyStyleConfigLookUpHasNoChangeRequest(entity); changeRequestItemStagings.Add(new ChangeRequestItemStaging() { ChangeType = ChangeType.Add, EntityId = entity.Id.ToString(), CreatedDateTime = DateTime.UtcNow, Entity = typeof(BodyStyleConfig).Name, Payload = base.Serializer.Serialize(entity) }); var bodyTypeRepositoryService = Repositories.GetRepositoryService <BodyType>() as IVcdbSqlServerEfRepositoryService <BodyType>; var bodyNumDoorsRepositoryService = Repositories.GetRepositoryService <BodyNumDoors>() as IVcdbSqlServerEfRepositoryService <BodyNumDoors>; BodyType bodyType = null; BodyNumDoors bodyNumDoors = null; if (bodyTypeRepositoryService != null && bodyNumDoorsRepositoryService != null) { var bodyTypes = await bodyTypeRepositoryService.GetAsync(m => m.Id == entity.BodyTypeId && m.DeleteDate == null, 1); if (bodyTypes != null && bodyTypes.Any()) { bodyType = bodyTypes.First(); } var bodyNumDoorses = await bodyNumDoorsRepositoryService.GetAsync(m => m.Id == entity.BodyNumDoorsId && m.DeleteDate == null, 1); if (bodyNumDoorses != null && bodyNumDoorses.Any()) { bodyNumDoors = bodyNumDoorses.First(); } changeContent = string.Format("{0} / {1}", bodyType.Name, bodyNumDoors.NumDoors); } // NOTE: change-request-comments-staging perfomed on base return(await base.SubmitAddChangeRequestAsync(entity, requestedBy, changeRequestItemStagings, comment, attachmentsStagingModels, changeContent)); }
public async Task <IHttpActionResult> Post(int id, BodyNumDoorsInputModel model) { BodyNumDoors bodyNumDoors = new BodyNumDoors() { Id = model.Id, NumDoors = model.NumDoors }; CommentsStagingModel comment = new CommentsStagingModel() { Comment = model.Comment }; var attachments = SetUpAttachmentsModels(model.Attachments); var changeRequestId = await _bodyNumDoorsApplicationService.DeleteAsync(bodyNumDoors, id, CurrentUser.Email, comment, attachments); return(Ok(changeRequestId)); }
private async Task UpdateVehicleToBodyStyleConfigDocuments(BodyNumDoors updatedBodyNumDoor) { bool isEndReached = false; int pageNumber = 1; do { var vehicleToBodyStyleConfigSearchResult = await _vehicleToBodyStyleConfigSearchService.SearchAsync(null, $"bodyNumDoorsId eq {updatedBodyNumDoor.Id}", new SearchOptions() { RecordCount = 1000, PageNumber = pageNumber }); var existingVehicleToBodyStyleConfigDocuments = vehicleToBodyStyleConfigSearchResult.Documents; if (existingVehicleToBodyStyleConfigDocuments != null && existingVehicleToBodyStyleConfigDocuments.Any()) { foreach ( var existingVehicleToBodyStyleConfigDocument in existingVehicleToBodyStyleConfigDocuments) { existingVehicleToBodyStyleConfigDocument.BodyNumDoors = updatedBodyNumDoor.NumDoors; } await this._vehicleToBodyStyleConfigIndexingService.UploadDocumentsAsync( existingVehicleToBodyStyleConfigDocuments.ToList()); pageNumber++; } else { isEndReached = true; } } while (!isEndReached); }
private Expression <Func <VehicleToBodyStyleConfigDocument, bool> > AddFilter() { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > filterEx = null; if (Makes != null && Makes.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > makeFilterEx = Makes.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, make) => current.OrElse(x => x.MakeName == make)); filterEx = filterEx.AndAlso(makeFilterEx); } if (Models != null && Models.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > modelFilterEx = Models.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, model) => current.OrElse(x => x.ModelName == model)); filterEx = filterEx.AndAlso(modelFilterEx); } if (SubModels != null && SubModels.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > subModelsFilterEx = SubModels.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, subModel) => current.OrElse(x => x.SubModelName == subModel)); filterEx = filterEx.AndAlso(subModelsFilterEx); } if (StartYear != 0) { filterEx = filterEx.AndAlso(x => x.YearId >= StartYear); } if (EndYear != 0) { filterEx = filterEx.AndAlso(x => x.YearId <= EndYear); } if (Regions != null && Regions.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > regionsFilterEx = Regions.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, region) => current.OrElse(x => x.RegionName == region)); filterEx = filterEx.AndAlso(regionsFilterEx); } if (VehicleTypes != null && VehicleTypes.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > vehicleTypeFilterEx = VehicleTypes.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, vehicleType) => current.OrElse(x => x.VehicleTypeName == vehicleType)); filterEx = filterEx.AndAlso(vehicleTypeFilterEx); } if (VehicleTypeGroups != null && VehicleTypeGroups.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > vehicleTypeGroupFilterEx = VehicleTypeGroups.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, vehicleTypeGroup) => current.OrElse(x => x.VehicleTypeGroupName == vehicleTypeGroup)); filterEx = filterEx.AndAlso(vehicleTypeGroupFilterEx); } // body if (BodyNumDoors != null && BodyNumDoors.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > bodyNumDoorsFilterEx = BodyNumDoors.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, bodyNumDoor) => current.OrElse(x => x.BodyNumDoors == bodyNumDoor)); filterEx = filterEx.AndAlso(bodyNumDoorsFilterEx); } if (BodyTypes != null && BodyTypes.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > bodyTypesFilterEx = BodyTypes.Aggregate <string, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, bodyType) => current.OrElse(x => x.BodyTypeName == bodyType)); filterEx = filterEx.AndAlso(bodyTypesFilterEx); } // others if (VehicleIds != null && VehicleIds.Any()) { Expression <Func <VehicleToBodyStyleConfigDocument, bool> > vehicleIdFilterEx = VehicleIds.Aggregate <int, Expression <Func <VehicleToBodyStyleConfigDocument, bool> > >(null, (current, vehicleId) => current.OrElse(x => x.VehicleId == vehicleId)); filterEx = filterEx.AndAlso(vehicleIdFilterEx); } if (BodyStyleConfigId != 0) { filterEx = filterEx.AndAlso(x => x.BodyStyleConfigId == BodyStyleConfigId); } return(filterEx); }