Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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
            });
        }
Ejemplo n.º 7
0
 public async Task <(bool, string)> Create(RentContractModel contractData)
 {
     return(!(await Exists(contractData)) ? await Create_do(contractData) : (false, "Admin already exists"));
 }
Ejemplo n.º 8
0
 public async Task <(bool, string)> Update(RentContractModel contractData)
 {
     return(!(await Exists(contractData)) ? await Create_do(contractData) : await Update_do(contractData));
 }
Ejemplo n.º 9
0
        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);
        }