示例#1
0
        public void UpdateFulfillment(FulfillmentInfo fulfillmentInfo, KeyStoreContext context = null)
        {
            UsingContext(ref context, () =>
            {
                FulfillmentInfo info = context.FulfillmentInfoes.Single(i => i.FulfillmentNumber == fulfillmentInfo.FulfillmentNumber);
                if (!ValidateStatusTransition(info.FulfillmentStatus, fulfillmentInfo.FulfillmentStatus))
                    throw new ApplicationException(string.Format("Cannot change fulfillment {0} status from {1} to {2}.",
                        info.FulfillmentNumber, info.FulfillmentStatus.ToString(), fulfillmentInfo.FulfillmentStatus.ToString()));

                context.Entry(info).CurrentValues.SetValues(fulfillmentInfo);
                info.ModifiedDateUtc = DateTime.UtcNow;
            });
        }
示例#2
0
        public void UpdateReturnKeyAck(ReturnReport returnKey, KeyStoreContext context)
        {
            UsingContext(ref context, () =>
            {
                context.Configuration.AutoDetectChangesEnabled = false;
                UpdateReturnKeyAck(context, returnKey);

                foreach (ReturnReportKey key in returnKey.ReturnReportKeys)
                {
                    context.ReturnReportKeys.Attach(key);
                    context.Entry(key).State = EntityState.Modified;
                }
            });
        }
示例#3
0
        public void UpdateCbrAck(Cbr cbr, bool IsDuplicateImport = false, KeyStoreContext context = null)
        {
            UsingContext(ref context, () =>
            {
                context.Configuration.AutoDetectChangesEnabled = false;
                UpdateCbr(context, cbr);

                foreach (CbrKey key in cbr.CbrKeys)
                {
                    context.CbrKeys.Attach(key);
                    context.Entry(key).State = EntityState.Modified;
                }
                if (cbr.CbrKeys.Any(k => k.ReasonCode == Constants.CBRAckReasonCode.DuplicateProductKeyId) && !IsDuplicateImport)
                {
                    context.CbrsDuplicated.Add(new CbrDuplicated()
                    {
                        CbrUniqueId = cbr.CbrUniqueId,
                        IsExported = false
                    });
                }
                if (IsDuplicateImport)
                {
                    var delCbr = context.CbrsDuplicated.FirstOrDefault(c => c.CbrUniqueId == cbr.CbrUniqueId);
                    context.CbrsDuplicated.Remove(delCbr);
                }
                context.Configuration.AutoDetectChangesEnabled = true;
            });
        }
示例#4
0
 private void UpdateCbr(KeyStoreContext context, Cbr cbr)
 {
     context.Cbrs.Attach(cbr);
     context.Entry(cbr).State = EntityState.Modified;
 }
示例#5
0
 private void DeleteUser(KeyStoreContext context, User userToDelete)
 {
     if (context.Entry(userToDelete).State == EntityState.Detached)
         context.Users.Attach(userToDelete);
     context.Users.Remove(userToDelete);
 }
示例#6
0
 private void UpdateReturnKeyAck(KeyStoreContext context, ReturnReport returnKey)
 {
     context.ReturnReports.Attach(returnKey);
     context.Entry(returnKey).State = EntityState.Modified;
 }
示例#7
0
 public void InsertOrUpdateKeySyncNotifiction(List<KeyInfo> keys, KeyStoreContext context)
 {
     UsingContext(ref context, () =>
     {
         List<KeySyncNotification> dbSyncs = GetKeySyncNotifications(context, keys.Select(k => k.KeyId).ToArray());
         context.Configuration.AutoDetectChangesEnabled = false;
         foreach (var keyInfo in keys)
         {
             KeySyncNotification dbSync = dbSyncs.SingleOrDefault(s => s.KeyId == keyInfo.KeyId);
             if (dbSync == null)
             {
                 context.KeySyncNotifications.Add(new KeySyncNotification()
                 {
                     KeyId = keyInfo.KeyId,
                     KeyState = keyInfo.KeyState,
                     CreateDate = DateTime.UtcNow,
                 });
             }
             else
             {
                 dbSync.KeyState = keyInfo.KeyState;
                 dbSync.CreateDate = DateTime.UtcNow;
                 context.Entry(dbSync).State = EntityState.Modified;
             }
         }
         context.Configuration.AutoDetectChangesEnabled = true;
     });
 }