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); }
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}")); } }
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); }