示例#1
0
        public static ProjectDatabaseModel ConvertCwsToWorksOSProject(ProjectDetailResponseModel project, ILogger log)
        {
            log.LogInformation($"{nameof(ConvertCwsToWorksOSProject)} project {JsonConvert.SerializeObject(project)}");

            var      extractedCalibrationFileOk      = false;
            var      coordinateSystemFileName        = string.Empty;
            DateTime?coordinateSystemLastActionedUtc = null;

            if (project.ProjectSettings?.Config != null && project.ProjectSettings.Config.Any())
            {
                extractedCalibrationFileOk = ExtractCalibrationFileDetails(project.ProjectSettings.Config, out coordinateSystemFileName, out coordinateSystemLastActionedUtc);
            }
            if (project.ProjectSettings?.Boundary == null || project.ProjectSettings?.TimeZone == null)
            {
                log.LogInformation($"{nameof(ConvertCwsToWorksOSProject)} contains no boundary or timezone");
            }
            if (!extractedCalibrationFileOk)
            {
                log.LogInformation($"{nameof(ConvertCwsToWorksOSProject)} contains no calibrationFile.");
            }

            var projectDatabaseModel =
                new ProjectDatabaseModel()
            {
                ProjectUID      = project.ProjectId,
                CustomerUID     = project.AccountId,
                Name            = project.ProjectName,
                ProjectType     = project.ProjectType,
                UserProjectRole = project.UserProjectRole,
                ProjectTimeZone = project.ProjectSettings != null?PreferencesTimeZones.IanaToWindows(project.ProjectSettings.TimeZone) : string.Empty,
                                      ProjectTimeZoneIana = project.ProjectSettings?.TimeZone,
                                      Boundary            = project.ProjectSettings?.Boundary != null?GeometryConversion.ProjectBoundaryToWKT(project.ProjectSettings.Boundary) : string.Empty,
                                                                CoordinateSystemFileName        = coordinateSystemFileName,
                                                                CoordinateSystemLastActionedUTC = coordinateSystemLastActionedUtc,
                                                                IsArchived      = project.Status == ProjectStatus.Archived,
                                                                LastActionedUTC = project.LastUpdate ?? DateTime.UtcNow
            };

            return(projectDatabaseModel);
        }
示例#2
0
 public void IanaToWindows_ValidIanaTimeZone()
 {
     Assert.Equal("New Zealand Standard Time", PreferencesTimeZones.IanaToWindows("Pacific/Auckland"));
 }
示例#3
0
 public void IanaToWindows_InvalidIanaTimeZone()
 {
     Assert.Null(PreferencesTimeZones.IanaToWindows("Pacific/Wellington"));
 }
示例#4
0
 public void IanaToWindows_MissingIanaTimeZone()
 {
     Assert.Equal(string.Empty, PreferencesTimeZones.IanaToWindows(null));
 }
示例#5
0
 public void WindowsToIana_ValidWindowsTimeZone()
 {
     Assert.Equal("Pacific/Auckland", PreferencesTimeZones.WindowsToIana("New Zealand Standard Time"));
 }
示例#6
0
 public void WindowsToIana_InvalidWindowsTimeZone()
 {
     Assert.Null(PreferencesTimeZones.WindowsToIana("NZST"));
 }
示例#7
0
 public void WindowsToIana_MissingWindowsTimeZone()
 {
     Assert.Equal(string.Empty, PreferencesTimeZones.WindowsToIana(null));
 }