public async Task <IHttpActionResult> GetChangeRequestStaging(int changeRequestId) { MfrBodyCodeChangeRequestStagingModel changeRequestStagingMfrBodyCodeModel = await this._mfrBodyCodeApplicationService.GetChangeRequestStaging(changeRequestId); ChangeRequestStagingMfrBodyCodeViewModel changeRequestStagingMfrBodyCodeViewModel = Mapper.Map <ChangeRequestStagingMfrBodyCodeViewModel>(changeRequestStagingMfrBodyCodeModel); SetUpChangeRequestReview(changeRequestStagingMfrBodyCodeViewModel.StagingItem.Status, changeRequestStagingMfrBodyCodeViewModel.StagingItem.SubmittedBy, changeRequestStagingMfrBodyCodeViewModel); return(Ok(changeRequestStagingMfrBodyCodeViewModel)); }
public new async Task <MfrBodyCodeChangeRequestStagingModel> GetChangeRequestStaging <TId>(TId changeRequestId) { var result = await ChangeRequestBusinessService.GetChangeRequestStagingByChangeRequestIdAsync <MfrBodyCode, TId>(changeRequestId); List <VehicleToMfrBodyCode> vehicleToMfrBodyCodes = null; if (result.StagingItem.ChangeType == ChangeType.Replace.ToString()) { result.EntityStaging = result.EntityCurrent; var changeRequestIdLong = Convert.ToInt64(changeRequestId); var vehicleToMfrBodyCodeChangeRequestItems = await this.ChangeRequestBusinessService.GetChangeRequestItemStagingsAsync(item => item.ChangeRequestId == changeRequestIdLong); if (vehicleToMfrBodyCodeChangeRequestItems != null && vehicleToMfrBodyCodeChangeRequestItems.Any()) { var vehicleToMfrBodyCodeIds = vehicleToMfrBodyCodeChangeRequestItems.Select(item => Convert.ToInt32(item.EntityId)).ToList(); vehicleToMfrBodyCodes = await base.Repositories.GetRepositoryService <VehicleToMfrBodyCode>() .GetAsync(item => vehicleToMfrBodyCodeIds.Any(id => id == item.Id) && item.DeleteDate == null); //1. Extract the replacement mfrBodyCode to mfrBodyCodeid from the first deserialized vehicleToMfrBodyCodeChangeRequestItems var vehicleToMfrBodyCode = Serializer.Deserialize <VehicleToMfrBodyCode>(vehicleToMfrBodyCodeChangeRequestItems[0].Payload); //2. fill result.EntityStaging with the replacement MfrBodyCode details result.EntityStaging = await FindAsync(vehicleToMfrBodyCode.MfrBodyCodeId); // 3. fill currentEntity result.EntityCurrent = await FindAsync(result.StagingItem.EntityId); } else { var vehicleToMfrBodyCodeChangeRequestStoreItems = await this.ChangeRequestBusinessService.GetChangeRequestItemAsync(item => item.ChangeRequestId == changeRequestIdLong); if (vehicleToMfrBodyCodeChangeRequestStoreItems != null && vehicleToMfrBodyCodeChangeRequestStoreItems.Any()) { var vehicleToMfrBodyCodeIds = vehicleToMfrBodyCodeChangeRequestStoreItems.Select(item => Convert.ToInt32(item.EntityId)).ToList(); vehicleToMfrBodyCodes = await base.Repositories.GetRepositoryService <VehicleToMfrBodyCode>() .GetAsync(item => vehicleToMfrBodyCodeIds.Any(id => id == item.Id) && item.DeleteDate == null); //1. Extract the replacement base vehicle id from the first deserialized vehicleChangeRequestItems var vehicleToMfrBodyCode = Serializer.Deserialize <VehicleToMfrBodyCode>(vehicleToMfrBodyCodeChangeRequestStoreItems[0].Payload); //2. fill result.EntityStaging with the replacement base vehicle details result.EntityStaging = await FindAsync(vehicleToMfrBodyCode.MfrBodyCodeId); // 3. fill currentEntity result.EntityCurrent = await FindAsync(result.StagingItem.EntityId); } } } MfrBodyCodeChangeRequestStagingModel staging = new MfrBodyCodeChangeRequestStagingModel { EntityCurrent = result.EntityCurrent, EntityStaging = result.EntityStaging, //RequestorComments = result.RequestorComments, //ReviewerComments = result.ReviewerComments, Comments = result.Comments, StagingItem = result.StagingItem, ReplacementVehicleToMfrBodyCodes = vehicleToMfrBodyCodes, Attachments = result.Attachments }; return(staging); }