public async Task TM_UpdateConcepts_SATGroup()
        {
            var connectionString = ConfigManager.GetValue("ConfigConnectionStringTest");

            using var context = new CotorraContext(connectionString);
            Expression <Func <ConceptPayment, bool> > expression = exp => exp.Active;
            var conceptPayments = await context.ConceptPayment.Where(expression).ToListAsync();

            var memoryStorageContext = new MemoryStorageContext();
            var accumulateds         = memoryStorageContext.GetDefaultAccumulatedType(Guid.Empty, Guid.Empty, Guid.Empty);

            (var conceptPaymentsMemory, var pr) = memoryStorageContext.GetDefaultConcept <ConceptPayment>(Guid.Empty, Guid.Empty, Guid.Empty, accumulateds);

            conceptPayments.ForEach(conceptInDB =>
            {
                var conceptFoundInMemory = conceptPaymentsMemory
                                           .FirstOrDefault(p => p.Code == conceptInDB.Code && p.ConceptType == conceptInDB.ConceptType);
                if (null != conceptFoundInMemory)
                {
                    conceptInDB.SATGroupCode = conceptFoundInMemory.SATGroupCode;
                }
            });

            var concept22 = conceptPayments.AsParallel().Where(p => p.Code == 22 && p.ConceptType == ConceptType.SalaryPayment);

            context.UpdateRange(conceptPayments);
            await context.SaveChangesAsync();
        }
Example #2
0
        public async Task UpdateAsync(IEnumerable <Guid> idsToUpdate, CotorriaStatus status, Guid identityWorkID, params object[] parameters)
        {
            using var context = new CotorraContext(ConnectionManager.ConfigConnectionString);
            DateTime now      = DateTime.UtcNow;
            string   nowStrng = now.ToString("yyyy-mm-dd HH:mm:ss.fffffff");

            context.ChangeTracker.AutoDetectChangesEnabled = false;
            var keys        = idsToUpdate.Select(p => "'" + p + "'").ToArray();
            var keySplitted = String.Join(",", keys);
            var sql         = Validator.GetPersonalizedQuery(status, keySplitted, parameters);

            if (string.IsNullOrEmpty(sql))
            {
                sql = $"update   {typeof(T).Name} set LocalStatus = {(int)status}, LastStatusChange = getdate()  where ID in ({keySplitted}) ";
            }
            var row = await context.Database.ExecuteSqlRawAsync(sql);

            await context.SaveChangesAsync();
        }