public static void LoadOperations() { OperationMapper.Update(User, OperationsGroups, Importances, Frequencies, TransactionTypes, TransferTypes); Operations = OperationMapper.ConvertToBusinessLogicEntitiesCollection(OperationAdapter.GetAll($"user_id={User.Id}")).ToList(); if (Operations.Count > 0) { var filter = ""; foreach (var operation in Operations) { filter += $"operation_id={operation.Id} OR "; } filter = filter.Substring(0, filter.Length - 4); RelationMapper.Update(Operations, Tags); var relations = RelationMapper.ConvertToBusinessLogicEntitiesCollection(OperationTagRelationAdapter.GetAll(filter)); var relTags = relations.Item1; var relOperations = relations.Item2; foreach (var operation in Operations) { operation.SetDetailsList(OperationDetailsMapper.ConvertToBusinessLogicEntitiesCollection(OperationDetailsAdapter.GetAll($"operation_id={operation.Id}"))); operation.SetTags(relTags.Where(r => r.RelatedId == operation.Id)); } foreach (var tag in Tags) { tag.SetOperations(relOperations.Where(r => r.TagId == tag.Id)); } } }
public async Task <ActionResult <OperationDto> > GetById(int id) { Operation operation = await operationService.GetById(id); if (operation == null) { logger.Debug($"Could not find operation id {id}."); return(NotFound()); } return(Ok(OperationMapper.Map(operation))); }
public async Task <ActionResult <OperationDto> > Sub(SubtractionDto subDto) { try { Operation operation = await operationService.Sub(subDto.OperationId, subDto.Minuend, subDto.Subtrahend); return(Ok(OperationMapper.Map(operation))); } catch (Exception ex) { logger.Error(ex, ex.Message); return(Problem("There was a problem processing your request", statusCode: (int?)HttpStatusCode.InternalServerError)); } }
public ApiAdapter(IDataBaseManagerFactory dbEngine, string address, string port, string table, string login, string password) { DbManager = new DatabaseManager(dbEngine, address, port, table, login, password); DbConnector = new DbConnector(DbManager); LanguageAdapter = new LanguageAdapter(DbConnector); UserAdapter = new UserAdapter(DbConnector); UserDetailsAdapter = new UserDetailsAdapter(DbConnector); TransactionTypeAdapter = new TransactionTypeAdapter(DbConnector); TransferTypeAdapter = new TransferTypeAdapter(DbConnector); FrequencyAdapter = new FrequencyAdapter(DbConnector); ImportanceAdapter = new ImportanceAdapter(DbConnector); TagAdapter = new TagAdapter(DbConnector); OperationAdapter = new OperationAdapter(DbConnector); OperationDetailsAdapter = new OperationDetailsAdapter(DbConnector); OperationTagRelationAdapter = new OperationTagAdapter(DbConnector); OperationsGroupAdapter = new OperationsGroupAdapter(DbConnector); OperationsGroupRelationAdapter = new OperationsGroupTagAdapter(DbConnector); FilterAdapter = new FilterAdapter(DbConnector); DashboardAdapter = new DashboardAdapter(DbConnector); DashboardFilterRelationAdapter = new DashboardFilterRelationAdapter(DbConnector); BankAdapter = new BankAdapter(DbConnector); SettingsAdapter = new SettingsAdapter(DbConnector); SchematicTypeAdapter = new SchematicTypeAdapter(DbConnector); SchematicAdapter = new SchematicAdapter(DbConnector); LanguageMapper = new LanguageMapper(); UserMapper = new UserMapper(); UserDetailsMapper = new UserDetailsMapper(); TransactionTypeMapper = new TransactionTypeMapper(); TransferTypeMapper = new TransferTypeMapper(); FrequencyMapper = new FrequencyMapper(); ImportanceMapper = new ImportanceMapper(); TagMapper = new TagMapper(); TagRelationMapper = new RelationTagMapper(); OperationMapper = new OperationMapper(); OperationsGroupMapper = new OperationsGroupMapper(); FilterMapper = new FilterMapper(); DashboardMapper = new DashboardMapper(); DashboardFilterMapper = new DashboardFilterMapper(); BankMapper = new BankMapper(); SettingsMapper = new SettingsMapper(); SchematicTypeMapper = new SchematicTypeMapper(); SchematicMapper = new SchematicMapper(); }
public async Task <ActionResult <OperationDto> > Mult(MultiplyDto multiplyDto) { if (multiplyDto.Factors.Count < 2) { return(BadRequest(new { Message = "At least 2 parameters must be specified for this operation." })); } try { Operation operation = await operationService.Mult(multiplyDto.OperationId, multiplyDto.Factors); return(Ok(OperationMapper.Map(operation))); } catch (Exception ex) { logger.Error(ex, ex.Message); return(Problem("There was a problem processing your request", statusCode: (int?)HttpStatusCode.InternalServerError)); } }
public async Task <ActionResult <OperationDto> > Div(DivisionDto divisionDto) { if (divisionDto.Divisor == 0) { return(BadRequest(new { Message = "Can not divide by 0." })); } try { Operation operation = await operationService.Div(divisionDto.OperationId, divisionDto.Dividend, divisionDto.Divisor); return(Ok(OperationMapper.Map(operation))); } catch (Exception ex) { logger.Error(ex, ex.Message); return(Problem("There was a problem processing your request", statusCode: (int?)HttpStatusCode.InternalServerError)); } }
public void MapOperationTest() { var dbOperation = new Operation { CalculatorId = 123, FirstNumber = 77, SecondNumber = 11, OperationType = 0, OperationId = 423 }; var mapper = new OperationMapper(); var result = mapper.Map(dbOperation); Assert.AreEqual(result.CalculatorId, 123); Assert.AreEqual(result.FirstNumber, 77); Assert.AreEqual(result.SecondNumber, 11); Assert.AreEqual(result.OperationType, OperationType.Addition); Assert.AreEqual(result.OperationId, 423); }
public List <ApiOperation> GetOperations(ApiUser user, List <ApiTransactionType> transactionTypes, List <ApiTransferType> transferTypes, List <ApiFrequency> frequencies, List <ApiImportance> importances, List <ApiTag> tags) { var operations = OperationAdapter.GetAll($"user_id={user.Id}"); var filter = ""; foreach (var operation in operations) { filter += $"operation_id={operation.Id} OR "; } if (filter.Length > 4) { filter = filter.Substring(0, filter.Length - 4); } var relations = OperationTagRelationAdapter.GetAll(filter).ToList(); var details = OperationDetailsAdapter.GetAll(filter).ToList(); OperationMapper.Update(importances, frequencies, transactionTypes, transferTypes, tags, user, relations, details); return(OperationMapper.ConvertToApiEntitiesCollection(operations).ToList()); }
public static void SetService() { Settings = new Settings2(); var dataBaseData = ConfigurationManager.DataBaseData(); DbManager = new DatabaseManager(new MySqlConnectionFactory(), dataBaseData.Address, dataBaseData.Port, dataBaseData.Table, dataBaseData.Login, dataBaseData.Password); DbConnector = new DbConnector(DbManager); LanguageAdapter = new LanguageAdapter(DbConnector); UserAdapter = new UserAdapter(DbConnector); UserDetailsAdapter = new UserDetailsAdapter(DbConnector); TransactionTypeAdapter = new TransactionTypeAdapter(DbConnector); TransferTypeAdapter = new TransferTypeAdapter(DbConnector); FrequencyAdapter = new FrequencyAdapter(DbConnector); ImportanceAdapter = new ImportanceAdapter(DbConnector); TagAdapter = new TagAdapter(DbConnector); OperationAdapter = new OperationAdapter(DbConnector); OperationDetailsAdapter = new OperationDetailsAdapter(DbConnector); OperationTagRelationAdapter = new OperationTagAdapter(DbConnector); OperationsGroupAdapter = new OperationsGroupAdapter(DbConnector); OperationsGroupRelationAdapter = new OperationsGroupTagAdapter(DbConnector); LanguageMapper = new LanguageMapper(); UserMapper = new UserMapper(); UserDetailsMapper = new UserDetailsMapper(); TransactionTypeMapper = new TransactionTypeMapper(); TransferTypeMapper = new TransferTypeMapper(); FrequencyMapper = new FrequencyMapper(); ImportanceMapper = new ImportanceMapper(); TagMapper = new TagMapper(); OperationMapper = new OperationMapper(); OperationDetailsMapper = new OperationDetailsMapper(); RelationMapper = new RelationMapper(); OperationsGroupMapper = new OperationsGroupMapper(); OperationsGroupRelationMapper = new OperationsGroupRelationMapper(); SetMainConfigurations(); }
public void UpdateOperationComplex(ApiOperation newOperation) { var dalObjects = OperationMapper.ConvertToDALEntity(newOperation); UpdateOperationComplex(dalObjects); }
public object OnRequest(IRequest request) { IDBOperation dbOperation = null; IDBResponse response = null; RequestParser requestParser = null; try { requestParser = request as RequestParser; try { dbOperation = requestParser.ParseRequest(); } catch (Exception ex) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("Error: ClientMgr.OnRequest() On Parse Request", ex.ToString()); } throw; } if (dbOperation == null) { throw new NullReferenceException("Database Operation"); } if (_shardName != null && _statsCollector == null) { _statsCollector = StatsManager.Instance.GetStatsCollector(new StatsIdentity(_shardName, dbOperation.Database)); } //Dispose Reader check is a temporary fix for Single Get Operation. if (dbOperation.OperationType != DatabaseOperationType.DisposeReader && _statsCollector != null) { _statsCollector.IncrementStatsValue(StatisticsType.RequestsPerSec); } //TODO: when SessionId will be embedded into command from router, this code needs to be removed //if (dbOperation.SessionId == null) // dbOperation.SessionId = new RouterSessionId(); //dbOperation.SessionId = SessionId; //if (_dbEngine == null) // throw new NullReferenceException("DBEngine (Client Manager)"); //LoggerManager.Instance.SetThreadContext(new LoggerContext { ShardName = ((DataBaseEngine)DbEngine).NodeContext.LocalShardName, DatabaseName = dbOperation.Database }); switch (dbOperation.OperationType) { case DatabaseOperationType.Init: response = _dbEngine.InitializeDatabase((InitDatabaseOperation)dbOperation); if (response.IsSuccessfull) { _database = dbOperation.Database; } break; case DatabaseOperationType.Insert: response = _dbEngine.InsertDocuments((InsertDocumentsOperation)dbOperation); break; case DatabaseOperationType.Delete: response = _dbEngine.DeleteDocuments((DeleteDocumentsOperation)dbOperation); break; case DatabaseOperationType.Get: response = _dbEngine.GetDocuments((GetDocumentsOperation)dbOperation); if (response != null && response.IsSuccessfull) { var getResponse = (GetDocumentsResponse)response; if (!getResponse.DataChunk.IsLastChunk) { var readerInfo = new ReaderInfo { DatabaseName = dbOperation.Database, CollectionName = dbOperation.Collection, ReaderId = getResponse.DataChunk.ReaderUID }; lock (_readersList) { _readersList.Add(readerInfo); } } } break; case DatabaseOperationType.Update: response = _dbEngine.UpdateDocuments((UpdateOperation)dbOperation); break; case DatabaseOperationType.Replace: response = _dbEngine.ReplaceDocuments((IDocumentsWriteOperation)dbOperation); break; case DatabaseOperationType.ReadQuery: response = _dbEngine.ExecuteReader((ReadQueryOperation)dbOperation); if (response != null && response.IsSuccessfull) { var readQueryResponse = (ReadQueryResponse)response; if (!readQueryResponse.DataChunk.IsLastChunk) { var readerInfo = new ReaderInfo { DatabaseName = dbOperation.Database, CollectionName = dbOperation.Collection, ReaderId = readQueryResponse.DataChunk.ReaderUID }; lock (_readersList) { _readersList.Add(readerInfo); } } } break; case DatabaseOperationType.WriteQuery: response = _dbEngine.ExecuteNonQuery((WriteQueryOperation)dbOperation); break; case DatabaseOperationType.CreateSession: break; case DatabaseOperationType.GetChunk: response = _dbEngine.GetDataChunk((GetChunkOperation)dbOperation); break; case DatabaseOperationType.DisposeReader: var disposeReaderOperation = (DisposeReaderOperation)dbOperation; response = _dbEngine.DiposeReader(disposeReaderOperation); if (response != null && response.IsSuccessfull) { lock (_readersList) { _readersList.RemoveAll( x => x.CollectionName == disposeReaderOperation.Collection && x.DatabaseName == disposeReaderOperation.Database && x.ReaderId == disposeReaderOperation.ReaderUID); } } break; case DatabaseOperationType.Authenticate: var authenticationOperation = (AuthenticationOperation)dbOperation; _noSConnectionString = new ConnectionStringBuilder(authenticationOperation.ConnectionString); _dbEngine = _databaseEngineFactory.GetDatabaseEngine(_noSConnectionString); authenticationOperation.Address = ServerChannel.PeerAddress; response = _dbEngine.Authenticate(authenticationOperation); AuthenticationResponse authResponse = response as AuthenticationResponse; if ( !(authResponse.ServerToken.Status == Common.Security.SSPI.SecurityStatus.SecurityDisabled || authResponse.ServerToken.Status == Common.Security.SSPI.SecurityStatus.ContinueNeeded || authResponse.ServerToken.Status == Common.Security.SSPI.SecurityStatus.OK)) { this.ChannelDisconnected(_serverChannel, "unauthenticated"); } else { CsSessionId = dbOperation.SessionId; _clientProcessID = authenticationOperation.ClientProcessID; } break; default: throw new Exception("Invalid Operation"); } } catch (SerializationException se) { try { if (requestParser == null) { requestParser = request.Message as RequestParser; } response = OperationMapper.GetResponse(requestParser.OperationType); response.IsSuccessfull = false; response.RequestId = requestParser.RequestId; response.ErrorCode = se.ErrorCode != 0 ? se.ErrorCode : ErrorCodes.Cluster.UNKNOWN_ISSUE; response.ErrorParams = se.Parameters; } catch (Exception) { //Create response if exception occurs. if (dbOperation != null) { response = dbOperation.CreateResponse(); } response.ErrorCode = ErrorCodes.Cluster.UNKNOWN_ISSUE; } if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("Error: ClientMgr.OnRequest()", se.ToString()); } } catch (DatabaseException de) { if (dbOperation != null) { response = dbOperation.CreateResponse(); } if (response != null) { response.IsSuccessfull = false; response.ErrorCode = de.ErrorCode != 0 ? de.ErrorCode : ErrorCodes.Cluster.UNKNOWN_ISSUE; response.ErrorParams = de.Parameters; } } catch (ManagementException me) { if (dbOperation != null) { response = dbOperation.CreateResponse(); } if (response != null) { response.IsSuccessfull = false; if (me.IsErrorCodeSpecified) { response.ErrorCode = me.ErrorCode; response.ErrorParams = me.Parameters; } } } catch (Exception e) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("Error: ClientMgr.OnRequest()", e.Message + " StackTrace:" + e.StackTrace); } if (dbOperation != null) { response = dbOperation.CreateResponse(); } if (response != null) { response.IsSuccessfull = false; response.ErrorCode = ErrorCodes.Cluster.UNKNOWN_ISSUE; } } finally { try { if (request.Channel.Connected) { request.Channel.SendMessage(response); } } catch (ChannelException e) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("Error: ClientMgr.OnRequest()", e.ToString()); } } catch (Exception ex) { if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsErrorEnabled) { LoggerManager.Instance.ShardLogger.Error("Error: Exception on ClientMgr.OnRequest()", ex.ToString()); } } } return(null); }
public OperationService() { operationRepository = OperationRepository.GetInstance(); operationMapper = new OperationMapper(); medicineService = new MedicineService(); }