public async Task <(bool, string)> Create(RentContractDataViewModel contractVM) { var success = true; var msg = string.Empty; var contract = ContractVMToApiModel(contractVM); using (TransactionScope tx = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { contract.ID = Guid.NewGuid().ToString(); // Create Domain in DB. var domainContract = new Domain.Contract { Id = contract.ID, ProviderId = contract.contractProvider.ID, ClientId = contract.contractClient.ID }; contractsRepo.Insert(domainContract); await contractsRepo.SaveAsync(); // Create Blockchain data. (success, msg) = await bcContracts.Create(contract); if (success) { tx.Complete(); } } return(success, msg); }
private bool KeepContract(Domain.Car car, Domain.Client client) { Domain.Contract contract = Domain.Contract.CreateContract(car, client); contract.CarId = car.Id; contract.ClientId = client.Id; Console.WriteLine("Please enter the contract type is Debit or Credit ?"); string type = Console.ReadLine(); try { if (type.ToLower() == ContractType.Debit.ToString().ToLower()) { contract.TotalCost = car.Price; contract.Type = ContractType.Debit; contract.FirstPayment = contract.TotalCost; } else { Console.WriteLine("How much months will contract keep?"); short months = short.Parse(Console.ReadLine()); contract.Months = months; contract.FirstPayment = car.Price / contract.Months.Value; contract.Type = ContractType.Credit; contract.MonthsPayment = contract.FirstPayment; contract.TotalCost = car.Price; } _contractRepository.AddContract(contract); return(true); } catch (Exception ex) { return(false); } }
public override CommandResult Execute() { Console.WriteLine("Please enter contract id"); long contractId = long.Parse(Console.ReadLine()); Domain.Contract contract = _contractRepository.FindContract(contractId); bool success = true; string message = ""; if (contract == null) { message = $"Contract with this id: {contractId} was not found"; success = false; } message = $"Here are contract's info with id: {contract.Id}\nclient name: {contract.Client.Name}\nPasportId: {contract.Client.PasportId}\nCar number: {contract.Car.Number}\nprice: {contract.Car.Price}\nPayment type : {contract.Type}"; return(new CommandResult(success, message)); }