IList <int> IOperationServiceInternal.GetOperationIds(int maxAge, bool onlyNonAcknowledged, int limitAmount)
        {
            List <int> operations = new List <int>();

            using (OperationManagementEntities entities = EntityFrameworkHelper.CreateContext <OperationManagementEntities>(EdmxPath))
            {
                foreach (OperationData data in entities.Operations.OrderByDescending(o => o.TimestampIncome))
                {
                    // If we only want non-acknowledged ones
                    if (onlyNonAcknowledged && data.IsAcknowledged)
                    {
                        continue;
                    }
                    // If we shall ignore the age, or obey the maximum age...
                    if (maxAge > 0 && (DateTime.Now - data.TimestampIncome).TotalMinutes > maxAge)
                    {
                        continue;
                    }

                    operations.Add(data.Id);

                    // If we need to limit operations
                    if (limitAmount > 0 && operations.Count >= limitAmount)
                    {
                        break;
                    }
                }
            }

            return(operations);
        }
Beispiel #2
0
        private void InitAsync(object sender, ElapsedEventArgs args)
        {
            ISQLDatabase database;

            lock (_timer)
            {
                database = ServiceRegistration.Get <ISQLDatabase>(false);
                if (database == null)
                {
                    return;
                }
                _timer.Close();
                _timer.Dispose();
            }

            using (var transaction = database.BeginTransaction())
                if (transaction.Connection.GetCloneFactory(TVDB_NAME, out _dbProviderFactory, out _cloneConnection))
                {
                    EntityFrameworkHelper.AssureKnownFactory(_dbProviderFactory);
                    // Register our factory to create new cloned connections
                    ObjectContextManager.SetDbConnectionCreator(ClonedConnectionFactory);
                }

            IntegrationProviderHelper.Register(@"Plugins\SlimTv.Service", @"Plugins\SlimTv.Service\castle.config");
            _tvServiceThread = new TvServiceThread(Environment.GetCommandLineArgs()[0]);
            _tvServiceThread.Start();
        }
        /// <summary>
        /// Example for traversing a model
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TraverseButton_Click(object sender, EventArgs e)
        {
            const int indent = 20;

            ReadOnlyMetadataCollection <NavigationProperty> metadata = EntityFrameworkHelper.GetNavigationProperties <Order, NorthContext>();

            var nameParts = metadata.FirstOrDefault().DeclaringType.FullName.Split('.');

            Debug.WriteLine($"namespace: {nameParts[0]}");
            Debug.WriteLine($"    class: {nameParts[1]}");

            Debug.WriteLine("");

            Debug.WriteLine("navigation model names");

            var navigationPropertyNames = metadata.Select(np => np.Name).ToList();


            foreach (var name in navigationPropertyNames)
            {
                Debug.WriteLine($"{name,indent}");
            }

            Debug.WriteLine("");
            Debug.WriteLine("RelationshipType names");
            var relationNames = metadata.Select(np => np.RelationshipType.Name).ToList();

            foreach (var relationName in relationNames)
            {
                Debug.WriteLine($"{relationName,indent}");
            }


            MessageBox.Show("See output window");
        }
        public void ModelKeys1()
        {
            var keys = EntityFrameworkHelper.PrimaryKeyNames <SingleKey>();

            Assert.That(keys, Has.Count.EqualTo(1));
            Assert.AreEqual(keys.First(), "StudentKey");
        }
Beispiel #5
0
            public MessageSendResult Handle(Command message)
            {
                using (var transaction = _niisWebContext.Database.BeginTransaction())
                {
                    try
                    {
                        var document = _messageSendService.CorrespondenceAdd(message.Argument);
                        if (document != null)
                        {
                            message.Result.DocumentNumber = document.DocumentNum;
                            message.Result.DocumentUID    = document.Barcode;
                            message.Result.DocumentDate   = document.DateCreate.DateTime;
                        }

                        var paymentDocument = _messageSendService.PaymentDocumentAdd(message.Argument, document.Id);
                        if (paymentDocument != null)
                        {
                            message.Result.PaymentDocumentNumber = paymentDocument.DocumentNum;
                            message.Result.PaymentDocumentUID    = paymentDocument.Barcode;
                            message.Result.PaymentDocumentDate   = paymentDocument.DateCreate.DateTime;
                        }
                        _niisWebContext.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        EntityFrameworkHelper.DetachAll(_niisWebContext);
                        transaction.Rollback();
                        throw new Exception("Смотри внутренний Exception", ex);
                    }
                }
                return(message.Result);
            }
        public UpdateSetPropertyImpl(DbContext dbContext, object idValue)
        {
            TEntity entity = new TEntity();

            EntityFrameworkHelper.SetPrimaryKeyPropertyValue <TEntity>(entity, idValue);
            this.Init(dbContext, entity);
        }
Beispiel #7
0
        public static void RegisterDbContext(Type dbContextType, IIocManager iocManager)
        {
            foreach (var entityType in EntityFrameworkHelper.GetEntityTypesInDbContext(dbContextType))
            {
                foreach (var interfaceType in entityType.GetInterfaces())
                {
                    if (interfaceType.IsGenericType && interfaceType.GetGenericTypeDefinition() == typeof(IEntity <>))
                    {
                        var primaryKeyType = interfaceType.GenericTypeArguments[0];
                        if (primaryKeyType == typeof(int))
                        {
                            var genericRepositoryType = typeof(IRepository <>).MakeGenericType(entityType);
                            if (!iocManager.IsRegistered(genericRepositoryType))
                            {
                                iocManager.Register(
                                    genericRepositoryType,
                                    typeof(EfRepositoryBase <,>).MakeGenericType(dbContextType, entityType),
                                    DependencyLifeStyle.Transient
                                    );
                            }
                        }

                        var genericRepositoryTypeWithPrimaryKey = typeof(IRepository <,>).MakeGenericType(entityType, primaryKeyType);
                        if (!iocManager.IsRegistered(genericRepositoryTypeWithPrimaryKey))
                        {
                            iocManager.Register(
                                genericRepositoryTypeWithPrimaryKey,
                                typeof(EfRepositoryBase <, ,>).MakeGenericType(dbContextType, entityType, primaryKeyType),
                                DependencyLifeStyle.Transient
                                );
                        }
                    }
                }
            }
        }
Beispiel #8
0
        public void Get_ReturnsAllOrderedByName()
        {
            // Arrange
            var dbContextMock = new Mock <IPayrollEstimatorContext>();
            var employees     = new List <Employee> {
                new Employee {
                    EmployeeId = 1, FirstName = "Able", LastName = "Gable"
                },
                new Employee {
                    EmployeeId = 2, FirstName = "Zelda", LastName = "Link"
                },
                new Employee {
                    EmployeeId = 3, FirstName = "Leroy", LastName = "Jenkins"
                },
                new Employee {
                    EmployeeId = 4, FirstName = "Zoo", LastName = "Zebra"
                },
                new Employee {
                    EmployeeId = 5, FirstName = "Alice", LastName = "Wonderland"
                },
            }.AsQueryable();
            var dbSetMock = EntityFrameworkHelper.GetMockDbSet(employees);

            dbContextMock.Setup(x => x.Employees).Returns(dbSetMock.Object);

            // Act
            var results = new EmployeeCrud(dbContextMock.Object).Get()
                          .Result;

            // Assert
            CollectionAssert.AreEqual(employees.Select(e => e.FirstName).OrderBy(x => x),
                                      results.Select(x => x.FirstName));
        }
Beispiel #9
0
        void IDispositioningServiceInternal.Dispatch(int operationId, string emkResourceId)
        {
            lock (SyncRoot)
            {
                using (var entities = EntityFrameworkHelper.CreateContext <DispositioningEntities>(EdmxPath))
                {
                    bool exists = entities.DispResources.Any(_ => _.Operation_Id == operationId && _.EmkResourceId == emkResourceId);
                    if (exists)
                    {
                        throw new InvalidOperationException(Properties.Resources.DispatchNotPossibleEntryAlreadyExists);
                    }

                    DispResourceData data = new DispResourceData();
                    data.Operation_Id  = operationId;
                    data.EmkResourceId = emkResourceId;
                    data.Timestamp     = DateTime.Now;

                    entities.DispResources.AddObject(data);
                    entities.SaveChanges();
                }
            }

            DispositionEventArgs args = new DispositionEventArgs(operationId, emkResourceId, DispositionEventArgs.ActionType.Dispatch);

            OnDispositionEventArgs(args);
        }
Beispiel #10
0
        public override void OnStart()
        {
            base.OnStart();

            using (OperationManagementEntities entities = EntityFrameworkHelper.CreateContext <OperationManagementEntities>(EdmxPath))
            {
            }
        }
        public void ModelKeys2()
        {
            var keys = EntityFrameworkHelper.PrimaryKeyNames <DoubleKey>();

            Assert.That(keys, Has.Count.EqualTo(2));
            Assert.AreEqual(keys.First(), "StudentKey");
            Assert.AreEqual(keys.Last(), "AdmissionNum");
        }
Beispiel #12
0
 protected override void PrepareConnection(ITransaction transaction)
 {
     if (transaction.Connection.GetCloneFactory(TVDB_NAME, out _dbProviderFactory, out _cloneConnection))
     {
         EntityFrameworkHelper.AssureKnownFactory(_dbProviderFactory);
         // Register our factory to create new cloned connections
         ObjectContextManager.SetDbConnectionCreator(ClonedConnectionFactory);
     }
 }
        public void ModelKeys3()
        {
            var keys = EntityFrameworkHelper.PrimaryKeyNames <TripleKey>();

            Assert.That(keys, Has.Count.EqualTo(3));
            Assert.AreEqual(keys.First(), "StudentKey");
            Assert.AreEqual(keys.Skip(1).First(), "AdmissionNum");
            Assert.AreEqual(keys.Last(), "Guid");
        }
        private async void Form1_Shown(object sender, EventArgs e)
        {
            var modelName = await EntityFrameworkHelper.GeModelNames <NorthContext>();

            ModelNamesListBox.DataSource = modelName;

            _buttons.ForEach(button => button.Enabled = true);
            _buttons = null;
        }
Beispiel #15
0
 string[] IDispositioningServiceInternal.GetDispatchedResources(int operationId)
 {
     lock (SyncRoot)
     {
         using (var entities = EntityFrameworkHelper.CreateContext <DispositioningEntities>(EdmxPath))
         {
             return(entities.DispResources.Where(_ => _.Operation_Id == operationId).Select(_ => _.EmkResourceId).ToArray());
         }
     }
 }
        /// <inheritdoc/>
        public async Task <TModel> SingleOrDefaultAsync(object[] keyValues, CancellationToken ct)
        {
            var findExpression = EntityFrameworkHelper.FindExpression <TEntity>(keyValues);

            var item = await this.OnBaseEntityFindQuery(ct)
                       .SingleOrDefaultAsync(findExpression, ct)
                       .ConfigureAwait(false);

            return(this.OnConvert(item));
        }
        public void PrimaryKeyExpression_2()
        {
            var record = new DoubleKey {
                StudentKey = 1, AdmissionNum = "123"
            };

            var exp = EntityFrameworkHelper.PrimaryKeyExpression <DoubleKey>();

            Assert.IsTrue(exp(record, new object[] { 1, "123" }));
            Assert.IsFalse(exp(record, new object[] { 2, string.Empty }));
        }
        public void PrimaryKeyExpression_1()
        {
            var record = new SingleKey {
                StudentKey = 1
            };

            var exp = EntityFrameworkHelper.PrimaryKeyExpression <SingleKey>();

            Assert.IsTrue(exp(record, new object[] { 1 }));
            Assert.IsFalse(exp(record, new object[] { 2 }));
        }
        public void FindExpression_2()
        {
            var record = new DoubleKey {
                StudentKey = 1, AdmissionNum = "123"
            };

            var exp1 = EntityFrameworkHelper.FindExpression <DoubleKey>(new object[] { 1, "123" }).Compile();
            var exp2 = EntityFrameworkHelper.FindExpression <DoubleKey>(new object[] { 2, string.Empty }).Compile();

            Assert.IsTrue(exp1(record));
            Assert.IsFalse(exp2(record));
        }
        public void FindExpression_1()
        {
            var record = new SingleKey {
                StudentKey = 1
            };

            var exp1 = EntityFrameworkHelper.FindExpression <SingleKey>(1).Compile();
            var exp2 = EntityFrameworkHelper.FindExpression <SingleKey>(2).Compile();

            Assert.IsTrue(exp1(record));
            Assert.IsFalse(exp2(record));
        }
Beispiel #21
0
        private static void ImportUserSettings(XDocument doc)
        {
            using (MigrationSettingsEntities entities = EntityFrameworkHelper.CreateContext <MigrationSettingsEntities>("Data.SettingsEntities"))
            {
                foreach (XElement section in doc.Root.Elements("Section"))
                {
                    string identifier = section.Attribute("Identifier").Value;
                    foreach (XElement setting in section.Elements("UserSetting"))
                    {
                        try
                        {
                            string name = setting.Attribute("Name").Value;

                            bool            isNew = true;
                            UserSettingData data  = entities.UserSettings.FirstOrDefault(item => item.Identifier == identifier && item.Name == name);
                            if (data == null)
                            {
                                data = new UserSettingData();
                            }
                            else
                            {
                                isNew = false;
                                Logger.Instance.LogFormat(LogType.Warning, null, Resources.OverwritingExistingItem, identifier, name);
                            }

                            data.Identifier = identifier;
                            data.Name       = name;
                            data.Value      = setting.Value;

                            XAttribute isNull = setting.Attribute("IsNull");
                            if (isNull != null && isNull.Value.Equals(bool.TrueString, StringComparison.OrdinalIgnoreCase))
                            {
                                data.Value = null;
                            }

                            if (isNew)
                            {
                                entities.UserSettings.AddObject(data);
                            }

                            Logger.Instance.LogFormat(LogType.Info, null, Resources.SettingWritten, data.Identifier, data.Name);
                        }
                        catch (Exception ex)
                        {
                            Logger.Instance.LogFormat(LogType.Error, null, Resources.SettingWriteError);
                            Logger.Instance.LogException(null, ex);
                        }
                    }
                }

                entities.SaveChanges();
            }
        }
Beispiel #22
0
        private static void ApplySettingValue(string identifier, string name, SettingItem item)
        {
            using (SettingsEntities entities = EntityFrameworkHelper.CreateContext <SettingsEntities>(EdmxPath))
            {
                UserSettingData userData = entities.GetUserSettingData(identifier, name);

                if (userData != null)
                {
                    item.ApplyUserValue(userData.Value);
                }
            }
        }
        public void PrimaryKeyExpression_3()
        {
            var g      = Guid.NewGuid();
            var record = new TripleKey {
                StudentKey = 33, AdmissionNum = "1123223", Guid = g
            };

            var exp = EntityFrameworkHelper.PrimaryKeyExpression <TripleKey>();

            Assert.IsTrue(exp(record, new object[] { 33, "1123223", g }));
            Assert.IsFalse(exp(record, new object[] { 33, "1123223", Guid.NewGuid() }));
        }
        Operation IOperationServiceInternal.StoreOperation(Operation operation)
        {
            using (OperationManagementEntities entities = EntityFrameworkHelper.CreateContext <OperationManagementEntities>(EdmxPath))
            {
                OperationData data = new OperationData(operation);
                entities.Operations.AddObject(data);
                entities.SaveChanges();

                operation.Id = data.Id;
                return(operation);
            }
        }
        bool IOperationServiceInternal.ExistsOperation(string operationNumber)
        {
            if (string.IsNullOrWhiteSpace(operationNumber))
            {
                return(false);
            }

            using (OperationManagementEntities entities = EntityFrameworkHelper.CreateContext <OperationManagementEntities>(EdmxPath))
            {
                return(entities.Operations.Any(item => item.OperationNumber == operationNumber));
            }
        }
        public void FindExpression_3()
        {
            var g      = Guid.NewGuid();
            var record = new TripleKey {
                StudentKey = 33, AdmissionNum = "1123223", Guid = g
            };

            var exp1 = EntityFrameworkHelper.FindExpression <TripleKey>(new object[] { 33, "1123223", g }).Compile();
            var exp2 = EntityFrameworkHelper.FindExpression <TripleKey>(new object[] { 33, "1123223", Guid.NewGuid() }).Compile();

            Assert.IsTrue(exp1(record));
            Assert.IsFalse(exp2(record));
        }
Beispiel #27
0
        public static void Setup(TestContext context)
        {
            var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");

            _configuration = builder.Build();

            EntityFrameworkHelper.CreateSchema();

            DependencyInjector.Kernel.StartEntityFramework();

            var kernel = Kernel.GetKernel();

            kernel.Register <DbContext>(() =>
            {
                var opBuilder = new DbContextOptionsBuilder <SharedKernelTestContext>();
                opBuilder.UseSqlServer(_configuration.GetConnectionString("SharedKernel.Test"));
                return(new SharedKernelTestContext(opBuilder.Options));
            });

            _helperRepository = DependencyInjector.Kernel.Get <IHelperRepository>();

            using (var session = _helperRepository.OpenSession())
            {
                var repo = session.GetRepository <Foo>();
                try
                {
                    session.StartTransaction();

                    var foo1 = new Foo {
                        Bar = 10, DataInclusao = DateTime.Now, UsuarioInclusao = "test"
                    };
                    var foo2 = new Foo {
                        Bar = 20, DataInclusao = DateTime.Now, UsuarioInclusao = "test"
                    };
                    var foo3 = new Foo {
                        Bar = 30, DataInclusao = DateTime.Now, UsuarioInclusao = "test"
                    };

                    repo.Insert(foo1);
                    repo.Insert(foo2);
                    repo.Insert(foo3);

                    session.CommitTransaction();
                }
                catch (Exception ex)
                {
                    session.RollBackTransaction();
                    Console.WriteLine(ex.Message);
                }
            }
        }
        Operation IOperationServiceInternal.GetOperationById(int operationId)
        {
            List <Operation> operations = new List <Operation>();

            using (OperationManagementEntities entities = EntityFrameworkHelper.CreateContext <OperationManagementEntities>(EdmxPath))
            {
                OperationData data = entities.Operations.FirstOrDefault(d => d.Id == operationId);
                if (data == null)
                {
                    return(null);
                }

                return(data.ToOperation());
            }
        }
Beispiel #29
0
        private void Init(DbContext dbContext, TEntity entity)
        {
            this._DbContext = dbContext;
            this._Entity    = entity;
            var localEntity = this._DbContext.Set <TEntity>().Local.Where(p => EntityFrameworkHelper.EqualsPrimaryKeys(p, this._Entity)).FirstOrDefault();

            if (localEntity != null)
            {
                this._Entity = localEntity;
            }
            else
            {
                this._DbContext.Set <TEntity>().Attach(this._Entity);
            }
        }
        public void VerifyCompositeKey_EF_Metadata()
        {
            using IWindsorContainer c = new WindsorContainer();

            c.AddDbContext <SampleContext>()
            .UseInMemory();

            var ctx = c.Resolve <SampleContext>();

            var names = EntityFrameworkHelper.PrimaryKeyNames <CompositeStringKey>(ctx);

            Assert.That(names.Count() == 2);
            Assert.AreEqual(names.First(), "Id");
            Assert.AreEqual(names.Last(), "Name");
        }