public async Task <IHttpActionResult> GetChangeRequestStaging(int changeRequestId) { BodyStyleConfigChangeRequestStagingModel changeRequestStagingBodyStyleConfigModel = await this._bodyStyleConfigApplicationService.GetChangeRequestStaging(changeRequestId); ChangeRequestStagingBodyStyleConfigViewModel changeRequestStagingBodyStyleConfigViewModel = Mapper.Map <ChangeRequestStagingBodyStyleConfigViewModel>(changeRequestStagingBodyStyleConfigModel); SetUpChangeRequestReview(changeRequestStagingBodyStyleConfigViewModel.StagingItem.Status, changeRequestStagingBodyStyleConfigViewModel.StagingItem.SubmittedBy, changeRequestStagingBodyStyleConfigViewModel); return(Ok(changeRequestStagingBodyStyleConfigViewModel)); }
public new async Task <BodyStyleConfigChangeRequestStagingModel> GetChangeRequestStaging <TId>(TId changeRequestId) { var result = await ChangeRequestBusinessService.GetChangeRequestStagingByChangeRequestIdAsync <BodyStyleConfig, TId>(changeRequestId); List <VehicleToBodyStyleConfig> vehicleToBodyStyleConfigs = null; if (result.StagingItem.ChangeType == ChangeType.Replace.ToString()) { result.EntityStaging = result.EntityCurrent; var changeRequestIdLong = Convert.ToInt64(changeRequestId); var vehicleToBodyStyleConfigChangeRequestItems = await this.ChangeRequestBusinessService.GetChangeRequestItemStagingsAsync(item => item.ChangeRequestId == changeRequestIdLong); if (vehicleToBodyStyleConfigChangeRequestItems != null && vehicleToBodyStyleConfigChangeRequestItems.Any()) { var vehicleToBodyStyleConfigIds = vehicleToBodyStyleConfigChangeRequestItems.Select(item => Convert.ToInt32(item.EntityId)).ToList(); vehicleToBodyStyleConfigs = await base.Repositories.GetRepositoryService <VehicleToBodyStyleConfig>() .GetAsync(item => vehicleToBodyStyleConfigIds.Any(id => id == item.Id) && item.DeleteDate == null); //1. Extract the replacement body style config to body style config id from the first deserialized vehicleToBodyStyleConfigChangeRequestItems var vehicleToBodyStyleConfig = Serializer.Deserialize <VehicleToBodyStyleConfig>(vehicleToBodyStyleConfigChangeRequestItems[0].Payload); //2. fill result.EntityStaging with the replacement Body Style config details result.EntityStaging = await FindAsync(vehicleToBodyStyleConfig.BodyStyleConfigId); // 3. fill currentEntity result.EntityCurrent = await FindAsync(result.StagingItem.EntityId); } else { var vehicleToBodyStyleConfigChangeRequestStoreItems = await this.ChangeRequestBusinessService.GetChangeRequestItemAsync(item => item.ChangeRequestId == changeRequestIdLong); if (vehicleToBodyStyleConfigChangeRequestStoreItems != null && vehicleToBodyStyleConfigChangeRequestStoreItems.Any()) { var vehicleToBodyStyleConfigIds = vehicleToBodyStyleConfigChangeRequestStoreItems.Select(item => Convert.ToInt32(item.EntityId)).ToList(); vehicleToBodyStyleConfigs = await base.Repositories.GetRepositoryService <VehicleToBodyStyleConfig>() .GetAsync(item => vehicleToBodyStyleConfigIds.Any(id => id == item.Id) && item.DeleteDate == null); //1. Extract the replacement base vehicle id from the first deserialized vehicleChangeRequestItems var vehicleToBodyStyleConfig = Serializer.Deserialize <VehicleToBodyStyleConfig>(vehicleToBodyStyleConfigChangeRequestStoreItems[0].Payload); //2. fill result.EntityStaging with the replacement base vehicle details result.EntityStaging = await FindAsync(vehicleToBodyStyleConfig.BodyStyleConfigId); // 3. fill currentEntity result.EntityCurrent = await FindAsync(result.StagingItem.EntityId); } } } BodyStyleConfigChangeRequestStagingModel staging = new BodyStyleConfigChangeRequestStagingModel { EntityCurrent = result.EntityCurrent, EntityStaging = result.EntityStaging, // RequestorComments = result.RequestorComments, //ReviewerComments = result.ReviewerComments, Comments = result.Comments, StagingItem = result.StagingItem, ReplacementVehicleToBodyStyleConfigs = vehicleToBodyStyleConfigs, Attachments = result.Attachments }; return(staging); }