Пример #1
0
        /// <inheritdoc />
        public override async Task DeleteAllWebHooksAsync(string user)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            user = NormalizeKey(user);

            try
            {
                using (var context = new WebHooksStoreContext())
                {
                    var matches = await context.Registrations.Where(r => r.User == user).ToArrayAsync();

                    foreach (var m in matches)
                    {
                        context.Entry(m).State = EntityState.Deleted;
                    }
                    await context.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                string msg = string.Format(SqlStorageResource.SqlStore_OperationFailed, "DeleteAll", ex.Message);
                _logger.LogError(msg, ex);
                throw new InvalidOperationException(msg, ex);
            }
        }
Пример #2
0
        /// <inheritdoc />
        public override async Task <StoreResult> UpdateWebHookAsync(string user, WebHook webHook)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (webHook == null)
            {
                throw new ArgumentNullException("webHook");
            }

            user = NormalizeKey(user);

            try
            {
                using (var context = new WebHooksStoreContext())
                {
                    var registration = await context.Registrations.Where(r => r.User == user && r.Id == webHook.Id).FirstOrDefaultAsync();

                    if (registration == null)
                    {
                        return(StoreResult.NotFound);
                    }
                    UpdateRegistrationFromWebHook(user, webHook, registration);
                    context.Entry(registration).State = EntityState.Modified;
                    await context.SaveChangesAsync();
                }
            }
            catch (DbUpdateConcurrencyException ocex)
            {
                string msg = string.Format(SqlStorageResource.SqlStore_ConcurrencyError, "Update", ocex.Message);
                _logger.LogError(msg, ocex);
                return(StoreResult.Conflict);
            }
            catch (DbUpdateException uex)
            {
                string error = uex.GetBaseException().Message;
                string msg   = string.Format(SqlStorageResource.SqlStore_SqlOperationFailed, "Update", error);
                _logger.LogError(msg, uex);
                return(StoreResult.Conflict);
            }
            catch (Exception ex)
            {
                string msg = string.Format(SqlStorageResource.SqlStore_OperationFailed, "Update", ex.Message);
                _logger.LogError(msg, ex);
                return(StoreResult.InternalError);
            }
            return(StoreResult.Success);
        }
Пример #3
0
        /// <inheritdoc />
        public override async Task <StoreResult> InsertWebHookAsync(string user, WebHook webHook)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (webHook == null)
            {
                throw new ArgumentNullException("webHook");
            }

            user = NormalizeKey(user);

            try
            {
                using (var context = new WebHooksStoreContext())
                {
                    var registration = ConvertFromWebHook(user, webHook);
                    context.Registrations.Attach(registration);
                    context.Entry(registration).State = EntityState.Added;
                    await context.SaveChangesAsync();
                }
            }
            catch (DbUpdateConcurrencyException ocex)
            {
                string msg = string.Format(SqlStorageResource.SqlStore_ConcurrencyError, "Insert", ocex.Message);
                _logger.LogError(msg);
                return(StoreResult.Conflict);
            }
            catch (DbUpdateException uex)
            {
                string error = uex.GetBaseException().Message;
                string msg   = string.Format(SqlStorageResource.SqlStore_SqlOperationFailed, "Insert", error);
                _logger.LogError(msg, uex);
                return(StoreResult.Conflict);
            }
            catch (Exception ex)
            {
                string msg = string.Format(SqlStorageResource.SqlStore_OperationFailed, "Insert", ex.Message);
                _logger.LogError(msg);
                return(StoreResult.InternalError);
            }
            return(StoreResult.Success);
        }