public async Task <TEntity> AddAsync <TEntity>(TEntity item, bool AutoSave = SAVE) where TEntity : class
        {
            await repository.AddAsync(item).ConfigureAwait(false);

            if (AutoSave)
            {
                await SaveChangesAsync().ConfigureAwait(false);
            }
            return(item);
        }
        public async Task <EntityActionOutcome> CreateEntityAsync(GatewayInputData viewData)
        {
            var newEntity = _factory.Create(viewData);
            var validator = new GatewayDataInputValidator();
            var result    = validator.Validate(viewData);

            if (result.IsValid == false)
            {
                return(EntityActionOutcome.MissingFullEntityData);
            }

            var upsertSuccessful = await _repository.AddAsync(newEntity);

            if (upsertSuccessful == null)
            {
                return(EntityActionOutcome.CreateFailed);
            }

            return(EntityActionOutcome.Success);
        }
Example #3
0
        public async Task <GatewayResponse> SaveAsync(Gateway gateway)
        {
            var serialExist = await _gatewayRepository.FindBySerialAsync(gateway.SerialNumber);

            if (serialExist != null)
            {
                return(new GatewayResponse($"A gateway with Serial: {gateway.SerialNumber} Number already exists"));
            }

            try
            {
                await _gatewayRepository.AddAsync(gateway);

                await _unitOfWork.CompleteAsync();

                return(new GatewayResponse(gateway));
            }
            catch (Exception e)
            {
                return(new GatewayResponse($"Error saving Gateway: {e.Message}"));
            }
        }
Example #4
0
        public async Task <Gateway> Build(IGatewayConfiguration gatewayConfiguration)
        {
            var gateway = new Gateway(gatewayConfiguration, _messageHub);

            var gatewayHandler = CreateGatewayHandler(gatewayConfiguration, gateway);

            if (gatewayHandler == null)
            {
                Log.Error($"Driver '{gatewayConfiguration.DriverName}' does not create gateway handler for gateway '{gatewayConfiguration.Name}'");

                return(null);
            }

            Log.Info($"Gateway handler for gateway '{gatewayConfiguration.Name}' created");

            gateway.SetHandler(gatewayHandler);

            await gatewayHandler.SetupAsync(_messageHub);

            await _gatewayRepository.AddAsync(gateway).ConfigureAwait(false);

            return(gateway);
        }