public MasterDataAllocationDTO Map(MasterDataAllocation allocation, MasterDataAllocationType allocationType)
 {
     MasterDataAllocationDTO allocationDto = new MasterDataAllocationDTO(); 
     if (allocation == null) return null;
     switch (allocationType)
     {
             case MasterDataAllocationType.CommodityProducerCentreAllocation:
                 allocationDto = Mapper.Map<MasterDataAllocation, CommodityProducerCentreAllocationDTO>(allocation);
             break;
             case MasterDataAllocationType.RouteCostCentreAllocation:
                 allocationDto = Mapper.Map<MasterDataAllocation, RouteCostCentreAllocationDTO>(allocation);
             break;
             case MasterDataAllocationType.RouteCentreAllocation:
                 allocationDto = Mapper.Map<MasterDataAllocation, RouteCentreAllocationDTO>(allocation);
             break;
             case MasterDataAllocationType.RouteRegionAllocation:
                 allocationDto = Mapper.Map<MasterDataAllocation, RouteRegionAllocationDTO>(allocation);
             break;
         default:
                 throw new Exception("Failed to map to DTO " + allocationType);
     }
     return allocationDto;
 }
        protected Guid AddMasterDataAllocation(Guid entityAId, Guid entityBId, MasterDataAllocationType allocationType)
        {
            MasterDataAllocation allocation = new MasterDataAllocation(Guid.NewGuid())
            {
                AllocationType = allocationType,
                EntityAId = entityAId,
                EntityBId = entityBId,
            };

            allocation._SetStatus(EntityStatus.Active);
            return _masterDataAllocationRepository.Save(allocation);
        }