C# Mapping ToDataModel() ToDomain()

Date: 2019-03-21
using System.Linq;
using Domain.Models;
using EfDataAdapter.Models;

namespace EfDataAdapter.Extensions
{
    public static class DmSensorModuleExtensions
    {
        public static DmSensorModule ToDataModel(this SensorModule sensorModule, DmSensorModule dmSensorModule = null)
        {
            if (dmSensorModule == null)
                dmSensorModule = new DmSensorModule();

            dmSensorModule.Id = sensorModule.Id;
            dmSensorModule.ModuleSerial = sensorModule.ModuleSerial;
            dmSensorModule.PhoneNumber = sensorModule.PhoneNumber;
            dmSensorModule.IpAddress = sensorModule.IpAddress;
            dmSensorModule.SensorModuleTypeId = sensorModule.SensorModuleTypeId;
            dmSensorModule.SensorModuleType = sensorModule.SensorModuleType?.ToDataModel();
            dmSensorModule.InstallDate = sensorModule.InstallDate;
            dmSensorModule.Status = sensorModule.Status;
            dmSensorModule.Remark = sensorModule.Remark;
            dmSensorModule.FirmwareVersion = sensorModule.FirmwareVersion;
            dmSensorModule.Sensors = sensorModule.Sensors?.Select(x => x.ToDataModel()).ToList();
            dmSensorModule.RawMeasurements = sensorModule.RawMeasurements?.Select(DmRawMeasurement.FromDomain).ToList();
            return dmSensorModule;
        }

        public static SensorModule ToDomain(this DmSensorModule dmSensorModule)
        {
            if (dmSensorModule == null)
                return null;

            return new SensorModule()
            {
                Id = dmSensorModule.Id,
                ModuleSerial = dmSensorModule.ModuleSerial,
                PhoneNumber = dmSensorModule.PhoneNumber,
                IpAddress = dmSensorModule.IpAddress,                
                SensorModuleTypeId = dmSensorModule.SensorModuleTypeId,
                SensorModuleType = dmSensorModule.SensorModuleType?.ToDomain(),
                InstallDate = dmSensorModule.InstallDate,
                Status = dmSensorModule.Status,
                Remark = dmSensorModule.Remark,
                FirmwareVersion = dmSensorModule.FirmwareVersion,
                Sensors = dmSensorModule.Sensors?.Select(x => x.ToDomain()).ToList(),
                RawMeasurements = dmSensorModule.RawMeasurements?.Select(DmRawMeasurement.ToDomain).ToList()
            };
        }
    }
}
20180cookie-checkC# Mapping ToDataModel() ToDomain()