public async Task <IHttpActionResult> GetChangeRequestStaging(int changeRequestId) { BrakeConfigChangeRequestStagingModel changeRequestStagingBrakeConfigModel = await this._brakeConfigApplicationService.GetChangeRequestStaging(changeRequestId); ChangeRequestStagingBrakeConfigViewModel changeRequestStagingBrakeConfigViewModel = Mapper.Map <ChangeRequestStagingBrakeConfigViewModel>(changeRequestStagingBrakeConfigModel); SetUpChangeRequestReview(changeRequestStagingBrakeConfigViewModel.StagingItem.Status, changeRequestStagingBrakeConfigViewModel.StagingItem.SubmittedBy, changeRequestStagingBrakeConfigViewModel); return(Ok(changeRequestStagingBrakeConfigViewModel)); }
public new async Task <BrakeConfigChangeRequestStagingModel> GetChangeRequestStaging <TId>(TId changeRequestId) { var result = await ChangeRequestBusinessService.GetChangeRequestStagingByChangeRequestIdAsync <BrakeConfig, TId>(changeRequestId); // business specific task. // fill value of "EntityCurrent" //if (!result.StagingItem.ChangeType.Equals(ChangeType.Add.ToString(), StringComparison.CurrentCultureIgnoreCase)) //{ // result.EntityCurrent = await FindAsync(result.StagingItem.EntityId); //} List <VehicleToBrakeConfig> vehicleToBrakeConfigs = null; if (result.StagingItem.ChangeType == ChangeType.Replace.ToString()) { result.EntityStaging = result.EntityCurrent; var changeRequestIdLong = Convert.ToInt64(changeRequestId); var vehicleToBrakeConfigChangeRequestItems = await this.ChangeRequestBusinessService.GetChangeRequestItemStagingsAsync(item => item.ChangeRequestId == changeRequestIdLong); if (vehicleToBrakeConfigChangeRequestItems != null && vehicleToBrakeConfigChangeRequestItems.Any()) { var vehicleToBrakeConfigIds = vehicleToBrakeConfigChangeRequestItems.Select(item => Convert.ToInt32(item.EntityId)).ToList(); vehicleToBrakeConfigs = await base.Repositories.GetRepositoryService <VehicleToBrakeConfig>() .GetAsync(item => vehicleToBrakeConfigIds.Any(id => id == item.Id) && item.DeleteDate == null); //1. Extract the replacement brake config to brake config id from the first deserialized vehicleToBrakeConfigChangeRequestItems var vehicleToBrakeConfig = Serializer.Deserialize <VehicleToBrakeConfig>(vehicleToBrakeConfigChangeRequestItems[0].Payload); //2. fill result.EntityStaging with the replacement brake config details result.EntityStaging = await FindAsync(vehicleToBrakeConfig.BrakeConfigId); // 3. fill currentEntity result.EntityCurrent = await FindAsync(result.StagingItem.EntityId); } else { var vehicleToBrakeConfigChangeRequestStoreItems = await this.ChangeRequestBusinessService.GetChangeRequestItemAsync(item => item.ChangeRequestId == changeRequestIdLong); if (vehicleToBrakeConfigChangeRequestStoreItems != null && vehicleToBrakeConfigChangeRequestStoreItems.Any()) { var vehicleToBrakeConfigIds = vehicleToBrakeConfigChangeRequestStoreItems.Select(item => Convert.ToInt32(item.EntityId)).ToList(); vehicleToBrakeConfigs = await base.Repositories.GetRepositoryService <VehicleToBrakeConfig>() .GetAsync(item => vehicleToBrakeConfigIds.Any(id => id == item.Id) && item.DeleteDate == null); //1. Extract the replacement base vehicle id from the first deserialized vehicleChangeRequestItems var vehicleToBrakeConfig = Serializer.Deserialize <VehicleToBrakeConfig>(vehicleToBrakeConfigChangeRequestStoreItems[0].Payload); //2. fill result.EntityStaging with the replacement base vehicle details result.EntityStaging = await FindAsync(vehicleToBrakeConfig.BrakeConfigId); // 3. fill currentEntity result.EntityCurrent = await FindAsync(result.StagingItem.EntityId); } } } BrakeConfigChangeRequestStagingModel staging = new BrakeConfigChangeRequestStagingModel { EntityCurrent = result.EntityCurrent, EntityStaging = result.EntityStaging, //RequestorComments = result.RequestorComments, //ReviewerComments = result.ReviewerComments, Comments = result.Comments, StagingItem = result.StagingItem, ReplacementVehicleToBrakeConfigs = vehicleToBrakeConfigs, Attachments = result.Attachments }; return(staging); }