Ejemplo n.º 1
0
        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"));
            }
        }
Ejemplo n.º 2
0
        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"));
            }
        }