예제 #1
0
        public void SyncStratumTemplates_Add()
        {
            var fromPath = base.GetTempFilePath(".crz3", "SyncStratumTemplates_Add_fromFile");
            var toPath   = base.GetTempFilePath(".crz3", "SyncStratumTemplates_Add_toFile");

            var syncOptions = new CruiseSyncOptions()
            {
                Processing = SyncFlags.Insert,
            };

            var init     = new DatabaseInitializer();
            var cruiseID = init.CruiseID;
            var saleID   = init.SaleID;

            using var fromDb = init.CreateDatabaseFile(fromPath);

            fromDb.CopyTo(toPath, true);
            using var toDb = new CruiseDatastore_V3(toPath);

            var st = new StratumTemplate
            {
                CruiseID            = cruiseID,
                StratumTemplateName = "something",
            };

            fromDb.Insert(st);

            var syncer = new CruiseSyncer();

            syncer.Sync(cruiseID, fromDb, toDb, syncOptions);

            toDb.From <StratumTemplate>().Count().Should().Be(1);
        }
        public void UpsertStratumTemplate(StratumTemplate st)
        {
            Database.Execute2(
                @"INSERT INTO StratumTemplate (
    StratumTemplateName,
    CruiseID,
    StratumCode,
    Method,
    BasalAreaFactor,
    FixedPlotSize,
    KZ3PPNT,
    SamplingFrequency,
    Hotkey,
    FBSCode,
    YieldComponent,
    FixCNTField
) VALUES (
    @StratumTemplateName,
    @CruiseID,
    @StratumCode,
    @Method,
    @BasalAreaFactor,
    @FixedPlotSize,
    @KZ3PPNT,
    @SamplingFrequency,
    @Hotkey,
    @FBSCode,
    @YieldComponent,
    @FixCNTField
) ON CONFLICT (StratumTemplateName, CruiseID) DO
UPDATE SET 
    StratumCode = @StratumCode,
    Method = @Method,
    BasalAreaFactor = @BasalAreaFactor,
    FixedPlotSize = @FixedPlotSize,
    KZ3PPNT = @KZ3PPNT,
    SamplingFrequency = @SamplingFrequency,
    Hotkey = @Hotkey,
    FBSCode = @FBSCode,
    YieldComponent = @YieldComponent,
    FixCNTField = @FixCNTField
WHERE StratumTemplateName = @StratumTemplateName AND CruiseID = @CruiseID;",
                new
            {
                CruiseID,
                st.StratumTemplateName,
                st.StratumCode,
                st.Method,
                st.BasalAreaFactor,
                st.FixedPlotSize,
                st.KZ3PPNT,
                st.SamplingFrequency,
                st.Hotkey,
                st.FBSCode,
                st.YieldComponent,
                st.FixCNTField,
            });
        }
 public void DeleteStratumTemplate(StratumTemplate st)
 {
     Database.Execute("DELETE FROM StratumTemplate WHERE StratumTemplateName = @p1 AND CruiseID = @p2;", st.StratumTemplateName, CruiseID);
 }
예제 #4
0
	public void ExportStratumTemplate(){
		System.Windows.Forms.SaveFileDialog FolderDialog = new System.Windows.Forms.SaveFileDialog ();

		FolderDialog.Filter = "scmstratum files (*.scmst)|*.scmst|All files (*.*)|*.*"  ;
		FolderDialog.FilterIndex = 0 ;
		FolderDialog.RestoreDirectory = true ;
		FolderDialog.InitialDirectory = EnvPaths.GetMapsPath();

		if (FolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
		{
			Debug.Log( FolderDialog.FileName );

			StratumTemplate NewTemplate = new StratumTemplate ();
			NewTemplate.Stratum0 = Map.Textures [0];
			NewTemplate.Stratum1 = Map.Textures [1];
			NewTemplate.Stratum2 = Map.Textures [2];
			NewTemplate.Stratum3 = Map.Textures [3];
			NewTemplate.Stratum4 = Map.Textures [4];
			NewTemplate.Stratum5 = Map.Textures [5];
			NewTemplate.Stratum6 = Map.Textures [6];
			NewTemplate.Stratum7 = Map.Textures [7];
			NewTemplate.Stratum8 = Map.Textures [8];
			NewTemplate.Stratum9 = Map.Textures [9];

			string data = UnityEngine.JsonUtility.ToJson (NewTemplate);

			File.WriteAllText (FolderDialog.FileName, data);
		}
	}