Exemplo n.º 1
0
        public void RepoShouldBeQueryable()
        {
            DaoRepository repo = GetTestDaoRepository();

            repo.EnsureDaoAssemblyAndSchema();

            House one = new House {
                Name = "Get This One"
            };
            House two = new House {
                Name = "Get This Too"
            };
            House three = new House {
                Name = "Not this one"
            };

            repo.Save(one);
            repo.Save(three);
            repo.Save(two);

            House[] houses = repo.Query <House>(Query.Where("Name").StartsWith("Get")).ToArray();
            Expect.AreEqual(2, houses.Length);
            houses.Each(house =>
            {
                repo.Delete(house);
            });
            repo.Delete(three);
        }
Exemplo n.º 2
0
        public virtual ExternalEventSubscriptionDescriptor SubscribeExternal(ExternalEventSubscriptionDescriptor subscriptionInfo)
        {
            if (string.IsNullOrWhiteSpace(subscriptionInfo.CreatedBy))
            {
                subscriptionInfo.CreatedBy = CurrentUser.UserName;
            }
            string clientNameProp = nameof(ExternalEventSubscriptionDescriptor.ClientName);
            string eventNameProp  = nameof(ExternalEventSubscriptionDescriptor.EventName);

            Args.ThrowIfNullOrEmpty(subscriptionInfo.ClientName, clientNameProp);
            Args.ThrowIfNullOrEmpty(subscriptionInfo.EventName, eventNameProp);
            ExternalEventSubscriptionDescriptor lookedUp = DaoRepository.Query <ExternalEventSubscriptionDescriptor>
                                                           (
                Query.Where(clientNameProp) == subscriptionInfo.ClientName &&
                Query.Where(eventNameProp) == subscriptionInfo.EventName &&
                Query.Where(nameof(ExternalEventSubscriptionDescriptor.CreatedBy)) == subscriptionInfo.CreatedBy
                                                           )
                                                           .FirstOrDefault();

            if (lookedUp != null)
            {
                return(lookedUp);
            }
            return(DaoRepository.Save(subscriptionInfo));
        }
Exemplo n.º 3
0
 public void Synchronize()
 {
     foreach (Type type in StorableTypes)
     {
         FileInfo[] files = YamlDataDirectory.GetYamlFiles(type);
         foreach (FileInfo file in files)
         {
             YamlData data = YamlData.Load(type, file, Logger);
             object   dao  = DaoRepository.Query("Name", data.Name).FirstOrDefault();
             if (dao == null)
             {
                 DaoRepository.Save(data.Data);
             }
             else
             {
                 data.FileWins += (o, a) =>
                 {
                     YamlData.YamlDataEventArgs d = (YamlData.YamlDataEventArgs)a;
                     DaoRepository.Save(d.Type, d.Data);
                     FireEvent(FileWins, d);
                 };
                 data.DataWins += (o, a) =>
                 {
                     YamlData.YamlDataEventArgs d = (YamlData.YamlDataEventArgs)a;
                     YamlDataDirectory.Save(file, d.Type, d.Data);
                     FireEvent(DataWins, d);
                 };
                 data.Data = dao;
                 data.Synchronize(type, file);
             }
         }
     }
 }
Exemplo n.º 4
0
        public void TestDaoRepoHbGen()
        {
            Database      db   = DataProvider.Current.GetAppDatabaseFor(ProcessApplicationNameProvider.Current, this);
            DaoRepository repo = new DaoRepository(db)
            {
                BaseNamespace = typeof(ShellDescriptor).Namespace, RequireCuid = true
            };

            repo.AddType <ShellDescriptor>();
            ShellDescriptor d = new ShellDescriptor()
            {
                AssemblyName = "Ass", NameSpace = "Ns"
            };

            d = repo.Save(d);

            ShellDescriptor queried = repo.Query <ShellDescriptor>(c => c.Id == d.Id).FirstOrDefault();

            Expect.IsNotNull(queried);

            Expect.AreEqual(d, queried);

            ShellDescriptor retrieved = repo.Retrieve <ShellDescriptor>(d.Id);

            Expect.IsNotNull(retrieved);

            Expect.AreEqual(d, retrieved);

            Pass("yay");
        }
Exemplo n.º 5
0
        public void CanSaveAndRetrieveAllCurrentAppDomainDescriptorsTest()
        {
            DaoRepository daoRepo = GetAssemblyManagementRepository(GetConsoleLogger());

            AssemblyDescriptor[] descriptors = AssemblyDescriptor.GetCurrentAppDomainDescriptors().ToArray();
            foreach (AssemblyDescriptor descriptor in descriptors)
            {
                OutLine("Before save");
                OutputInfo(descriptor);

                AssemblyDescriptor saved = daoRepo.Save(descriptor);
                OutLine("Original after save", ConsoleColor.Yellow);
                OutputInfo(descriptor);

                OutLine("Result after save", ConsoleColor.DarkYellow);
                OutputInfo(saved);

                Expect.AreEqual(descriptor.AssemblyFullName, saved.AssemblyFullName, "AssemlbyFullName didn't match");
                Expect.AreEqual(descriptor.AssemblyReferenceDescriptors?.Count, saved.AssemblyReferenceDescriptors?.Count, "AssemblyReferenceDescriptors count didn't match");

                AssemblyDescriptor retrieved = daoRepo.Retrieve <AssemblyDescriptor>(saved.Uuid);
                OutLine("Retrieved after save", ConsoleColor.DarkGreen);
                OutputInfo(saved);

                Expect.AreEqual(descriptor.AssemblyFullName, retrieved.AssemblyFullName, "AssemlbyFullName didn't match");
                Expect.AreEqual(descriptor.AssemblyReferenceDescriptors?.Count, retrieved.AssemblyReferenceDescriptors?.Count, "AssemblyReferenceDescriptors count didn't match");
            }
        }
Exemplo n.º 6
0
        public virtual ReplicationOperation Replicate(ReplicationOperation operation)
        {
            ReplicationOperation result = DaoRepository.Save(operation);

            Task.Run(() => (ReplicationOperation)operation.Execute(this));
            return(result);
        }
Exemplo n.º 7
0
        public void CanSaveToRepo()
        {
            DataPoint point = new DataPoint();

            point.Description = "Description_".RandomLetters(5);
            DaoRepository repo = new DaoRepository();

            repo.Database = new SQLiteDatabase(".\\", nameof(CanSaveToRepo));
            repo.AddType <DataPoint>();
            repo.AddType <DataRelationship>();

            string prop1  = "Hello_".RandomLetters(8);
            string prop2  = "banana".RandomLetters(4);
            bool   gender = false;

            point.Property("Name", prop1);
            point.Property("LastName", prop2);
            point.Property("Gender", gender);

            point = repo.Save(point);
            Expect.IsTrue(point.Cuid.Length > 0);
            OutLine(point.Cuid);

            DataPoint retrieved = repo.Query <DataPoint>(dp => dp.Cuid == point.Cuid).FirstOrDefault();

            Expect.AreEqual(point.Description, retrieved.Description);
            Expect.AreEqual(prop1, retrieved.Property("Name").Value);
            Expect.AreEqual(prop2, retrieved.Property("LastName").Value);
            Expect.AreEqual(false, retrieved.Property("Gender").Value);
            Expect.AreEqual(prop1, retrieved.Property <string>("Name"));
            Expect.AreEqual(prop2, retrieved.Property <string>("LastName"));
            Expect.AreEqual(gender, retrieved.Property <bool>("Gender"));
        }
Exemplo n.º 8
0
 public virtual Task Trigger(string eventName, object sender, EventSourceServiceArgs args)
 {
     if (args.EventMessage != null)
     {
         DaoRepository.Save(args.EventMessage);
     }
     return(FireListenersAsync(eventName, sender, args));
 }
Exemplo n.º 9
0
        private static TestClass GetTestClassInstance(string methodName, DaoRepository repo)
        {
            TestClass objectInstance = new TestClass();

            objectInstance.StringProperty = string.Format("{0}:: a value ".RandomLetters(8), methodName);
            repo.Save(objectInstance);
            Expect.IsGreaterThan(objectInstance.Id.Value, 0);
            return(objectInstance);
        }
Exemplo n.º 10
0
        private void GetTestObjects(string methodName, out DaoRepository repo, out TestRestResponder responder, out TestClass objectInstance)
        {
            Database database;

            GetTestRepoAndResponder(methodName, out repo, out responder, out database);

            objectInstance = new TestClass();
            objectInstance.StringProperty = "{0}:: a value ({1})"._Format(methodName, 8.RandomLetters());
            objectInstance = repo.Save(objectInstance);
            Expect.IsGreaterThan(objectInstance.Id.Value, 0);
        }
Exemplo n.º 11
0
        public HostEntry AddHostEntry()
        {
            Machine            current       = Machine.Current;
            List <HostAddress> hostAddresses = current.HostAddresses;
            HostEntry          entry         = new HostEntry
            {
                HostName    = current.DnsName,
                IpAddress   = hostAddresses.FirstOrDefault(ha => ha.AddressFamily.Equals(AddressFamily.InterNetwork.ToString()))?.ToString(),
                IpAddressV6 = hostAddresses.FirstOrDefault(ha => ha.AddressFamily.Equals(AddressFamily.InterNetworkV6.ToString()))?.ToString()
            };

            return(DaoRepository.Save(entry));
        }
Exemplo n.º 12
0
        public void CanSaveAndRetrieveAssemblyDescriptorTest()
        {
            DaoRepository      daoRepo    = GetAssemblyManagementRepository(GetConsoleLogger());
            AssemblyDescriptor descriptor = new AssemblyDescriptor(Assembly.GetExecutingAssembly());

            Expect.IsTrue(descriptor.AssemblyReferenceDescriptors.Count > 0, "No references found");
            AssemblyDescriptor saved = daoRepo.Save(descriptor);

            Expect.AreEqual(descriptor.AssemblyReferenceDescriptors?.Count, saved.AssemblyReferenceDescriptors?.Count, "Saved references didn't match");
            AssemblyDescriptor retrieved = daoRepo.Retrieve <AssemblyDescriptor>(descriptor.Uuid);

            Expect.AreEqual(descriptor.AssemblyReferenceDescriptors?.Count, saved.AssemblyReferenceDescriptors?.Count, "Retrieved references didn't match");
        }
Exemplo n.º 13
0
        public void SetsModified()
        {
            string        schemaName = "TheSchemaName_".RandomLetters(5);
            DaoRepository repo       = new DaoRepository(new SQLiteDatabase(".", MethodBase.GetCurrentMethod().Name), Log.Default, schemaName);

            repo.WarningsAsErrors = false;
            repo.AddType <TestRepoData>();
            TestRepoData data = new TestRepoData();

            Expect.IsNull(data.Modified);
            data = repo.Save(data);
            Expect.IsNotNull(data.Modified);
            Expect.IsFalse(data.Modified == default(DateTime));
        }
Exemplo n.º 14
0
        public void ParentSaveShouldSaveChildren()
        {
            DaoRepository repo = GetTestDaoRepository();

            repo.EnsureDaoAssemblyAndSchema();
            Parent parent = new Parent();

            parent.Name = "Parent Name";
            Son sonOne = new Son();
            Son sonTwo = new Son();

            parent.Sons = new List <Son>(new Son[] { sonOne, sonTwo });

            parent = repo.Save(parent);
            Parent retrieved = repo.Retrieve <Parent>(parent.Id);

            Expect.AreEqual(2, retrieved.Sons.Count);
        }
Exemplo n.º 15
0
        public void RetrieveShouldSetParentOnChildren()
        {
            DaoRepository repo = GetTestDaoRepository();

            repo.EnsureDaoAssemblyAndSchema();
            Parent parent = new Parent();

            parent.Name = "Test parent";
            Son one = new Son();

            one.Name    = "Son";
            parent.Sons = new List <Son>(new Son[] { one });
            parent      = repo.Save(parent);
            Son checkSon = repo.Retrieve <Son>(parent.Sons[0].Id);

            Expect.AreEqual(one.Name, checkSon.Name);
            Expect.AreEqual(parent.Id, checkSon.Parent.Id);
            Expect.AreEqual(parent.Name, checkSon.Parent.Name);
        }
Exemplo n.º 16
0
        public void SavingParentShouldSaveChildLists()
        {
            DaoRepository repo = GetTestDaoRepository();

            repo.EnsureDaoAssemblyAndSchema();
            House house = new House {
                Name = "TestHouse", Parents = new List <Parent> {
                    new Parent {
                        Name = "TestParent"
                    }
                }
            };

            repo.Save(house);

            House retrieved = repo.Retrieve <House>(house.Id);

            Expect.AreEqual(1, retrieved.Parents.Count);
        }
Exemplo n.º 17
0
        public void SavingParentXrefShouldSetChildXref()
        {
            DaoRepository repo = GetTestDaoRepository();

            repo.EnsureDaoAssemblyAndSchema();
            House house = new House {
                Name = "TestHouse", Parents = new List <Parent> {
                    new Parent {
                        Name = "TestParent"
                    }
                }
            };

            repo.Save(house);

            House  retrieved = repo.Retrieve <House>(house.Id);
            Parent parent    = repo.Retrieve <Parent>(retrieved.Parents[0].Id);

            Expect.AreEqual(1, parent.Houses.Length);
        }
Exemplo n.º 18
0
 public HostEntry AddHostEntry(string hostName, string ipaddress, string mac)
 {
     return(DaoRepository.Save <HostEntry>(new HostEntry {
         HostName = hostName, IpAddress = ipaddress, MacAddress = mac
     }));
 }