public async Task <IActionResult> login([FromQuery] string token, [FromQuery] string login, [FromQuery] string password) { if (await _context.Api.FirstOrDefaultAsync(u => u.token == token && u.is_active == true) != null) { var user = await _context.User.FirstOrDefaultAsync(u => u.Login == login && u.Password == password); if (user != null) { if (user != null) { try { var data_response = new response_api(); data_response.request_Info = new request_info(); data_response.request_Info.answer = "OK"; data_response.request_Info.code = "200"; data_response.send_data = new send_data(); data_response.send_data.user = user; var blocks = _context.Block.Where(u => u.wallet_hash == user.Hash).ToList(); var medicals = new List <Medical>(); foreach (var block in blocks) { medicals.Add(JsonConvert.DeserializeObject <Medical>(block.data)); } data_response.send_data.medicals = medicals; return(Content(JsonConvert.SerializeObject(data_response), "application/json")); } catch { var answ = new response_api(); answ.request_Info = new request_info(); answ.request_Info.code = "403"; answ.request_Info.answer = "BadInfo"; return(Content(JsonConvert.SerializeObject(answ), "application/json")); } } else { var answ = new response_api(); answ.request_Info = new request_info(); answ.request_Info.code = "403"; answ.request_Info.answer = "BadInfo"; return(Content(JsonConvert.SerializeObject(answ), "application/json")); } } else { var answ = new response_api(); answ.request_Info = new request_info(); answ.request_Info.code = "400"; answ.request_Info.answer = "Error"; return(Content(JsonConvert.SerializeObject(answ), "application/json")); } } else { var answ = new response_api(); answ.request_Info = new request_info(); answ.request_Info.code = "400"; answ.request_Info.answer = "Error"; return(Content(JsonConvert.SerializeObject(answ), "application/json")); } }
public async Task <IActionResult> smartcontractadd([FromQuery] string hash_сustomer, [FromQuery] string hash_еxecutor, [FromQuery] string order_sum, [FromQuery] string prepaid_expense, [FromQuery] string condition) { try { var contract_hash = await ShaEncoder.GenerateSHA256String($"{order_sum}{prepaid_expense}{DateTime.Now}"); var contract = new Contract { hash_сustomer = hash_сustomer, hash_еxecutor = hash_еxecutor, order_sum = Convert.ToInt32(order_sum) - Convert.ToInt32(prepaid_expense), prepaid_expense = prepaid_expense, is_freze = true, is_Done = false, contractID = contract_hash }; var json = JsonConvert.SerializeObject(contract); await _blockchainService.AddBlockAsync(await _blockchainService.generateNextBlockAsync(json, hash_сustomer, hash_еxecutor)); var transactions = new Transactions { original_wallet = hash_сustomer, destination_wallet = hash_еxecutor, info = json, timestamp = DateTime.Now.ToString() }; var user = await _context.User.FirstOrDefaultAsync(u => u.Hash == hash_еxecutor); user.balance = Convert.ToInt16(prepaid_expense); _context.User.Update(user); await _context.Transactions.AddAsync(transactions); await _context.SaveChangesAsync(); var data_response = new response_api(); data_response.request_Info = new request_info(); data_response.request_Info.answer = "OK"; data_response.request_Info.code = "200"; data_response.send_data = new send_data(); List <Block> blocks = _context.Block.Where(u => u.wallet_hash == hash_сustomer && u.destination_wallet_hash == hash_еxecutor).ToList(); List <Contract> contracts = new List <Contract>(); foreach (var block in blocks) { contracts.Add(JsonConvert.DeserializeObject <Contract>(block.data)); } data_response.send_data.contracts = contracts; return(Content(JsonConvert.SerializeObject(data_response), "application/json")); } catch { var answ = new response_api(); answ.request_Info = new request_info(); answ.request_Info.code = "403"; answ.request_Info.answer = "BadInfo"; return(Content(JsonConvert.SerializeObject(answ), "application/json")); } }