private async Task <(bool, string)> Update_do(RentContractModel contractData) { var success = true; var errorMsg = string.Empty; try { var jsonContent = ReturnApiJsonForInsert(contractData); var response = await SendRequestAsync <RentContractModelResponse>(RequestType.Put, ApiUrl + $"/{contractData.ID}", jsonContent); LogHelper.Info(Logger, $"{nameof(Update_do)} - success: {response.Success} - message: {response.Message}"); if (!response.Success) { throw new Exception(response.Message); } } catch (Exception ex) { LogHelper.Exception(Logger, $"{nameof(Create_do)} Exception", ex); errorMsg = ex.Message; success = false; } return(success, errorMsg); }
private string ReturnApiJsonForSearch(RentContractModel contractData) { /* * {"where": {"contract": "resource:org.example.basic.RentContract#8eddbcb9-879f-427d-bca2-0e63ff2f22dd"}} */ var jsonObj = (new[] { contractData }).Select(x => { var xObj = new Newtonsoft.Json.Linq.JObject( new Newtonsoft.Json.Linq.JProperty("where", new Newtonsoft.Json.Linq.JObject( new Newtonsoft.Json.Linq.JProperty("contract", $"resource:{GetFullResource(x._Class, x.ID)}") )) ); return(xObj); }).First(); string json = JsonConvert.SerializeObject(jsonObj, Formatting.Indented); return(json); }
private RentContractDataViewModel ContractApiModelToVM(RentContractModel rentContract, bool canEdit) { return(new RentContractDataViewModel { ID = rentContract.ID, ContractProvider = new AdminParticipantListViewModel { ID = rentContract.contractProvider.ID, Name = rentContract.contractProvider.Name }, ContractClient = new ClientParticipantListViewModel { ID = rentContract.contractClient.ID, Name = rentContract.contractClient.Name }, ExpiryDate = rentContract.expiryDate, DurationDays = rentContract.durationDays, Status = rentContract.status, Content = rentContract.content, CanEdit = canEdit }); }
private async Task <RentContractModel> GetByIdAsync(string ID) { RentContractModel contract = null; var domainContract = contractsRepo.SearchFor(x => x.Id == ID).FirstOrDefault(); if (domainContract != null) { (var success, var message, var contractResponse) = await bcContracts.GetById(ID); contract = new RentContractModel { ID = contractResponse.contractId, contractProvider = participantsProcessor.AdminDomainToApiModel(participantsProcessor.GetAdminById(contractResponse.GetIDFromAttributedID(contractResponse.contractProvider))), contractClient = participantsProcessor.ClientDomainToApiModel(participantsProcessor.GetClientById(contractResponse.GetIDFromAttributedID(contractResponse.contractClient))), expiryDate = contractResponse.expiryDate, durationDays = contractResponse.durationDays, status = contractResponse.status, content = contractResponse.content }; } return(contract); }
private string ReturnApiJsonForInsert(RentContractModel contractData) { /* * { * "$class": "org.example.basic.RentContract", * "contractId": "contractId:1", * "contractProvider": "resource:org.example.basic.HubAdmin#AnAdmin", * "contractClient": "resource:org.example.basic.HubClient#AlbertoOliva", * "expiryDate": "2019-09-10 12:00", * "durationDays": 300, * "status": "CREATED", * "content": "This is the original content of the contract held between my company and Alberto Oliva.", * } */ var jsonObj = (new[] { contractData }).Select(x => { var xObj = new Newtonsoft.Json.Linq.JObject( new Newtonsoft.Json.Linq.JProperty("$class", GetFullClass(x._Class)), //new Newtonsoft.Json.Linq.JProperty("contractId", $"contractId:{x.ID}"), new Newtonsoft.Json.Linq.JProperty("contractId", x.ID), new Newtonsoft.Json.Linq.JProperty("contractProvider", $"resource:{GetFullResource(x.contractProvider._Class, x.contractProvider.ID)}"), new Newtonsoft.Json.Linq.JProperty("contractClient", $"resource:{GetFullResource(x.contractClient._Class, x.contractClient.ID)}"), new Newtonsoft.Json.Linq.JProperty("expiryDate", x.expiryDate.ToString("o")), new Newtonsoft.Json.Linq.JProperty("durationDays", x.durationDays), new Newtonsoft.Json.Linq.JProperty("status", x.status.ToString()), new Newtonsoft.Json.Linq.JProperty("content", x.content) ); return(xObj); }).First(); string json = JsonConvert.SerializeObject(jsonObj, Formatting.Indented); return(json); }
public async Task <ContractDetailsViewModel> GetDetailsById(string ID, bool getAmendments, bool canEdit) { RentContractModel contract = await GetByIdAsync(ID); IEnumerable <AmendContractViewModel> amendments = new List <AmendContractViewModel>(); if (contract != null && getAmendments) { (var success, var message, var txAmendments) = await bcContractTx.GetAllByContract(contract); if (success && txAmendments?.Count() > 0) { amendments = txAmendments.OrderByDescending(x => x.timestamp).Select(x => new AmendContractViewModel { TransactionID = x.transactionId, Timestamp = x.timestamp, ContractData = new RentContractDataViewModel { ContractProvider = participantsProcessor.AdminApiModelToVM(contract.contractProvider), ContractClient = participantsProcessor.ClientApiModelToVM(contract.contractClient), ID = x.newData.ID, ExpiryDate = x.newData.expiryDate, DurationDays = x.newData.durationDays, Status = x.newData.status, Content = x.newData.content } }); } } return(new ContractDetailsViewModel { Contract = ContractApiModelToVM(contract, canEdit: canEdit), Amendments = amendments }); }
public async Task <(bool, string)> Create(RentContractModel contractData) { return(!(await Exists(contractData)) ? await Create_do(contractData) : (false, "Admin already exists")); }
public async Task <(bool, string)> Update(RentContractModel contractData) { return(!(await Exists(contractData)) ? await Create_do(contractData) : await Update_do(contractData)); }
public async Task <(bool, string, IEnumerable <TxAmendContractModelResponse>)> GetAllByContract(RentContractModel contractData) { var success = true; var errorMsg = string.Empty; var txList = new List <TxAmendContractModelResponse>().AsEnumerable(); try { var jsonContent = ReturnApiJsonForSearch(contractData); var urlEncoded = $"{ApiUrl}?filter={HttpUtility.UrlEncode(jsonContent)}"; var response = await SendRequestAsync <IEnumerable <TxAmendContractModelResponse> >(RequestType.Get, urlEncoded); LogHelper.Info(Logger, $"{nameof(Create)} - success: {response.Success} - message: {response.Message}"); if (!response.Success) { throw new Exception(response.Message); } else if (response.ResponseObj?.Count() > 0) { txList = response.ResponseObj; } } catch (Exception ex) { LogHelper.Exception(Logger, $"{nameof(Create)} Exception", ex); errorMsg = ex.Message; success = false; } return(success, errorMsg, txList); }