//Register or in Other Words Inserts a New WebHook for a User. Also need to serialize into JSON and encrypt data using ASP.NET Core Protect. public override async Task <StoreResult> InsertWebHookAsync(string user, WebHook webHook) { if (user == null) { throw new ArgumentNullException(nameof(user)); } if (webHook == null) { throw new ArgumentNullException(nameof(webHook)); } user = NormalizeKey(user); try { Registration registration = ConvertFromWebHook(user, webHook); return(await _webHookRepository.AddOne(registration)); } catch (OptimisticConcurrencyException ocex) { var message = string.Format(CultureInfo.CurrentCulture, Constants.Constants.ConcurrencyError, "Insert", ocex.Message); _logger.Error(message, ocex); return(StoreResult.Conflict); } catch (UpdateException uex) { var error = uex.GetBaseException().Message; var message = string.Format(CultureInfo.CurrentCulture, Constants.Constants.MongoOperationFailed, "Insert", error); _logger.Error(message, uex); return(StoreResult.Conflict); } catch (DbException dbex) { var message = string.Format(CultureInfo.CurrentCulture, Constants.Constants.MongoOperationFailed, "Insert", dbex.Message); _logger.Error(message, dbex); return(StoreResult.OperationError); } catch (Exception ex) { var message = string.Format(CultureInfo.CurrentCulture, Constants.Constants.OperationFailed, "Insert", ex.Message); _logger.Error(message, ex); return(StoreResult.InternalError); } }