/// <summary> /// note, drive will need to have id = -1 before it is archived /// </summary> public static Data.ArchiveDrive MapArchive(Drive drive) { if (drive == null) { return(null); } var d = new Data.ArchiveDrive { DestinationId = drive.Dest.Id, DriverId = drive.Driver.DriverId, Dtime = drive.Time }; if (drive.IsPickup) { d.Dtype = "Pickup"; } else { d.Dtype = "Join"; } if (drive.Id > -1) { d.Id = drive.Id; } return(d); }
public static Drive Map(Data.ArchiveDrive drive) { if (drive == null) { return(null); } if (drive.Dtype == "Pickup")//Pickup { var d = new PickupDrive(Map(drive.Driver), Map(drive.Destination), drive.Dtime.Value, drive.Id); foreach (Data.ArchiveOrder pickup in drive.ArchiveOrder)//adds users and items { User u = Map(pickup.User); d.AddUser(u); foreach (Data.ArchiveItem item in pickup.ArchiveItem) { d.AddItem(u, Map(item)); } } return(d); } else//Join { var d = new JoinDrive(Map(drive.Driver), Map(drive.Destination), drive.Dtime.Value, drive.Id); foreach (Data.ArchiveUserJoin join in drive.ArchiveUserJoin)//adds users { d.AddUser(Map(join.User)); } return(d); } }