示例#1
0
 public void InsertCbrAndCbrKeys(Cbr cbr, KeyStoreContext context = null)
 {
     UsingContext(ref context, () =>
     {
         context.Configuration.AutoDetectChangesEnabled = false;
         cbr.CreatedDateUtc = cbr.ModifiedDateUtc = DateTime.UtcNow;
         context.Cbrs.Add(cbr);
         foreach (var key in cbr.CbrKeys)
         {
             context.CbrKeys.Add(key);
         }
         context.SaveChanges();
     });
 }
        private void MappingKeyTypeConfiguration(KeyStoreContext context, int? hqId)
        {
            string hqIdString = GetSearchCriteria(hqId);
            string sql = string.Format(@"SELECT INFO.LicensablePartNumber, EX.KeyType
                                FROM ProductKeyInfo INFO JOIN KeyInfoEx EX ON INFO.ProductKeyID = EX.ProductKeyID
                                WHERE EX.HQID {0}
                                AND NOT EXISTS ( SELECT 1 FROM KeyTypeConfiguration WHERE HeadQuarterId {0} AND LicensablePartNumber = info.LicensablePartNumber)
                                GROUP BY INFO.LicensablePartNumber, EX.KeyType", hqIdString);

            var maps = Select<LicensablePartNumberAndKeyTypeMap>(context, sql).ToList();

            if (maps.Any())
            {
                foreach (var map in maps)
                {
                    KeyTypeConfiguration config = new KeyTypeConfiguration
                    {
                        HeadQuarterId = hqId,
                        LicensablePartNumber = map.LicensablePartNumber,
                        Maximum = MaxKeyCounts,
                        Minimum = MinKeyCounts,
                        KeyType = (KeyType?)map.KeyType
                    };
                    context.KeyTypeConfigurations.Add(config);
                }

                context.SaveChanges();
            }
        }