public static DebriefingHeaderViewModel AsHeader(this Debriefing debrief)
 {
     DebriefingHeaderViewModel dhvm = new DebriefingHeaderViewModel();
     dhvm.PositiveActionResponse = "No";
     if (null != debrief)
     {
         dhvm.Id = debrief.Id;
         dhvm.TripNumber = debrief.TripNumber;
         dhvm.ObserverCode = debrief.Observer.StaffCode;
         dhvm.VesselId = debrief.Vessel.Id;
         dhvm.VesselName = debrief.Vessel.Name.Trim();
         dhvm.VesselCountryCode = debrief.Vessel.CountryCode;
         dhvm.ProgramCode = debrief.Program.ToString();
         dhvm.GearCode = GearCodeFromVesselType(debrief.Vessel.VesselType);
         dhvm.PreviousGearCode = dhvm.GearCode;
         dhvm.GearOrVersionImpact = debrief.HasFilledEvaluation();
         dhvm.DepartureDate = debrief.DepartureDate;
         dhvm.DeparturePort = debrief.DeparturePort.ToString();
         dhvm.DeparturePortId = debrief.DeparturePort.Id;
         dhvm.ReturnDate = debrief.ReturnDate;
         dhvm.ReturnPort = debrief.ReturnPort.ToString();
         dhvm.ReturnPortId = debrief.ReturnPort.Id;
         dhvm.DebrieferCode = debrief.Debriefer.StaffCode;
         dhvm.StartTime = debrief.DebriefStart;
         dhvm.EndTime = debrief.DebriefEnd;
         dhvm.CountryCode = debrief.CountryCode;
         dhvm.Version = debrief.Version.GetValueOrDefault(WorkbookVersion.v2007).ToString();
         dhvm.PreviousVersion = dhvm.Version;
         dhvm.Status = debrief.Status.GetValueOrDefault(DebriefingStatus.Unknown).ToString();
         dhvm.Comments = debrief.Comments;
         dhvm.EnteredBy = debrief.EnteredBy;
         dhvm.EnteredDate = debrief.EnteredDate;
         // IsReadOnly is used by display logic
         dhvm.IsReadOnly = DebriefingStatus.Complete == debrief.Status.GetValueOrDefault(DebriefingStatus.Unknown);
     }
     return dhvm;
 }
 public static void FillFromHeader(this Debriefing debrief, DebriefingHeaderViewModel dhvm)
 {
     if (null != debrief && null != dhvm)
     {
         debrief.TripNumber = dhvm.TripNumber;
         debrief.Comments = dhvm.Comments;
         debrief.CountryCode = dhvm.CountryCode;
         debrief.DebriefEnd = dhvm.EndTime.HasValue ? dhvm.EndTime.Value : dhvm.StartTime;
         debrief.DebriefStart = dhvm.StartTime;
         debrief.DepartureDate = dhvm.DepartureDate;
         debrief.ReturnDate = dhvm.ReturnDate;
         if (Enum.IsDefined(typeof(WorkbookVersion), dhvm.Version))
         {
             debrief.Version = (WorkbookVersion)Enum.Parse(typeof(WorkbookVersion), dhvm.Version);
         }
         debrief.GearCode = dhvm.GearCode;
     }
 }
        public static void FillDependentObjects(this Debriefing debrief, DebriefingHeaderViewModel dhvm, ISession session)
        {
            if (null != debrief && null != dhvm && null != session)
            {
                if (dhvm.VesselId != default(int))
                {
                    var vesselRepo = new DebriefRepository<Vessel>(session);
                    debrief.Vessel = vesselRepo.FindBy(dhvm.VesselId);
                }

                var staffRepo = new DebriefRepository<FieldStaff>(session);
                debrief.Observer = staffRepo.FindBy(dhvm.ObserverCode);
                debrief.Debriefer = staffRepo.FindBy(dhvm.DebrieferCode);

                var portRepo = new DebriefRepository<Port>(session);
                debrief.DeparturePort = portRepo.FindBy(dhvm.DeparturePortId);
                debrief.ReturnPort = portRepo.FindBy(dhvm.ReturnPortId);
            }
        }