PageRenderTime 21ms CodeModel.GetById 17ms app.highlight 3ms RepoModel.GetById 0ms app.codeStats 0ms

/Aurora/DataManager/Migration/Migrators/GridRegion/GridRegionMigrator_2.cs

https://bitbucket.org/VirtualReality/software-testing
C# | 92 lines | 53 code | 8 blank | 31 comment | 0 complexity | 414adb3f48ff72690a174724585d0ab9 MD5 | raw file
 1/*
 2 * Copyright (c) Contributors, http://aurora-sim.org/
 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
 4 *
 5 * Redistribution and use in source and binary forms, with or without
 6 * modification, are permitted provided that the following conditions are met:
 7 *     * Redistributions of source code must retain the above copyright
 8 *       notice, this list of conditions and the following disclaimer.
 9 *     * Redistributions in binary form must reproduce the above copyright
10 *       notice, this list of conditions and the following disclaimer in the
11 *       documentation and/or other materials provided with the distribution.
12 *     * Neither the name of the Aurora-Sim Project nor the
13 *       names of its contributors may be used to endorse or promote products
14 *       derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using Aurora.Framework;
31using Aurora.Framework.Utilities;
32
33namespace Aurora.DataManager.Migration.Migrators
34{
35    public class GridRegionMigrator_2 : Migrator
36    {
37        public GridRegionMigrator_2()
38        {
39            Version = new Version(0, 0, 2);
40            MigrationName = "GridRegions";
41
42            schema = new List<SchemaDefinition>();
43
44            //
45            // Change summery:
46            //
47            //   Add the new 'gridregions' table to replace the old 'regions' table
48            //
49            AddSchema("gridregions", ColDefs(
50                ColDef("ScopeID", ColumnTypes.String45),
51                ColDef("RegionUUID", ColumnTypes.String45),
52                ColDef("RegionName", ColumnTypes.String50),
53                ColDef("LocX", ColumnTypes.Integer11),
54                ColDef("LocY", ColumnTypes.Integer11),
55                ColDef("LocZ", ColumnTypes.Integer11),
56                ColDef("OwnerUUID", ColumnTypes.String45),
57                ColDef("Access", ColumnTypes.Integer11),
58                ColDef("SizeX", ColumnTypes.Integer11),
59                ColDef("SizeY", ColumnTypes.Integer11),
60                ColDef("SizeZ", ColumnTypes.Integer11),
61                ColDef("Flags", ColumnTypes.Integer11),
62                ColDef("SessionID", ColumnTypes.String45),
63                ColDef("Info", ColumnTypes.Text)
64                                         ), IndexDefs(
65                                             IndexDef(new string[2] {"ScopeID", "RegionUUID"}, IndexType.Primary),
66                                             IndexDef(new string[1] {"RegionName"}, IndexType.Unique),
67                                             IndexDef(new string[2] {"Flags", "ScopeID"}, IndexType.Index),
68                                             IndexDef(new string[3] {"LocX", "LocY", "ScopeID"}, IndexType.Unique)
69                                                ));
70        }
71
72        protected override void DoCreateDefaults(IDataConnector genericData)
73        {
74            EnsureAllTablesInSchemaExist(genericData);
75        }
76
77        protected override bool DoValidate(IDataConnector genericData)
78        {
79            return TestThatAllTablesValidate(genericData);
80        }
81
82        protected override void DoMigrate(IDataConnector genericData)
83        {
84            DoCreateDefaults(genericData);
85        }
86
87        protected override void DoPrepareRestorePoint(IDataConnector genericData)
88        {
89            CopyAllTablesToTempVersions(genericData);
90        }
91    }
92}