/// <summary>
        /// Updates a business event entity
        /// </summary>
        /// <param name="id"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        public IntegrationEvent UpdateBusinessEvent(string id, CreateBusinessEventViewModel request)
        {
            Guid entityId = new Guid(id);

            var businessEvent = _integrationEventRepository.GetOne(entityId);

            if (businessEvent == null)
            {
                throw new EntityDoesNotExistException("No business event exists for the specified id");
            }

            var namedIntegrationEvent = _integrationEventRepository.Find(null, d => d.Name.ToLower() == request.Name.ToLower() && d.Id != entityId)?.Items?.FirstOrDefault();

            if (namedIntegrationEvent != null && namedIntegrationEvent.Id != entityId)
            {
                throw new EntityAlreadyExistsException("Business event already exists");
            }

            businessEvent.Name          = request.Name;
            businessEvent.Description   = request.Description;
            businessEvent.EntityType    = request.EntityType;
            businessEvent.PayloadSchema = request.PayloadSchema;
            businessEvent.Name          = request.Name;

            return(businessEvent);
        }
 public async Task <IActionResult> PutBusinessEvent(string id, [FromBody] CreateBusinessEventViewModel request)
 {
     try
     {
         IntegrationEvent businessEvent = _integrationEventManager.UpdateBusinessEvent(id, request);
         return(await base.PutEntity(id, businessEvent));
     }
     catch (Exception ex)
     {
         return(ex.GetActionResult());
     }
 }
 public async Task <IActionResult> PostBusinessEvent([FromBody] CreateBusinessEventViewModel request)
 {
     try
     {
         IntegrationEvent businessEvent = _integrationEventManager.AddBusinessEvent(request);
         return(await base.PostEntity(businessEvent));
     }
     catch (Exception ex)
     {
         return(ex.GetActionResult());
     }
 }
        /// <summary>
        /// Takes a business event and returns it for addition
        /// </summary>
        /// <param name="createBusinessEventView"></param>
        /// <returns>The business event to be added</returns>
        public IntegrationEvent AddBusinessEvent(CreateBusinessEventViewModel createBusinessEventView)
        {
            var existingEvent = _integrationEventRepository.Find(null, d => d.Name.ToLower() == createBusinessEventView.Name.ToLower())?.Items?.FirstOrDefault();

            if (existingEvent != null)
            {
                throw new EntityAlreadyExistsException("Business event already exists");
            }
            IntegrationEvent newEvent = createBusinessEventView.Map(createBusinessEventView); //assign request to schedule entity

            return(newEvent);
        }