Ejemplo n.º 1
0
        public DatabaseQueries GenerateDatabase(DataProviders provider, EnumLists importedLists = null)
        {
            DatabaseQueries queries = new DatabaseQueries();

            if (importedLists == null)
            {
                foreach (var list in _enumLists)
                {
                    queries.Append(list.GenerateDatabase(provider));
                }
            }
            else
            {
                EnumList importedList = null;
                //Get lists to create and update
                foreach (var list in _enumLists)
                {
                    importedList = importedLists.ByKey(list.Key);
                    if (importedList == null)
                    {
                        //Create the list
                        queries.Append(list.GenerateDatabase(provider));
                    }
                    else
                    {
                        //update the selected list table
                        //if the lists have changed then update
                        if (list.CompareTo(importedList) == 0)
                        {
                            queries.Append(list.GenerateDatabase(provider, importedList));
                        }
                    }
                }

                //Get lists to delete
                EnumList toDelete = null;
                foreach (var list in importedLists)
                {
                    toDelete = ByKey(list.Key);
                    if (toDelete == null)
                    {
                        //Call delete query generator
                        queries.Add(list.GenerateDatabaseDrop(provider));
                    }
                }
            }

            return(queries);
        }
Ejemplo n.º 2
0
 public int Compare(EnumLists other)
 {
     foreach (var enumList in _enumLists)
     {
         var enumIn = ByKey(enumList.Key);
         if (enumIn != null)
         {
             //compare
             var different = enumList.Compare(enumIn) == 0;
             if (different)
             {
                 return(0);
             }
         }
         else
         {
             return(0);
         }
     }
     return(1);
 }