示例#1
0
 private void ValidateId(string id, AssetContract contract)
 {
     if (contract?.Id != id)
     {
         throw new ArgumentException("Id must match with contract id");
     }
 }
        public async Task <ActionResult <Asset> > Create(
            [FromBody] AssetContract contract)
        {
            if (_asset._contract != null)
            {
                return(UnprocessableEntity());
            }

            _asset._contract = contract;
            return(Ok(contract));
        }
示例#3
0
        private void Validate(AssetContract newValue)
        {
            if (newValue == null)
            {
                throw new ArgumentNullException("asset", "Model is incorrect");
            }

            if (string.IsNullOrWhiteSpace(newValue.Id))
            {
                throw new ArgumentNullException(nameof(newValue.Id), "asset Id must be set");
            }
        }
示例#4
0
        public async Task <AssetContract> Update(string assetId, [FromBody] AssetContract asset)
        {
            Validate(asset);
            ValidateId(assetId, asset);

            await _assetsRepository.UpdateAsync(_convertService.Convert <AssetContract, Asset>(asset));

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.Asset,
                                                        assetId);

            return(asset);
        }
示例#5
0
        public async Task <AssetContract> Insert([FromBody] AssetContract asset)
        {
            Validate(asset);

            if (!await _assetsRepository.TryInsertAsync(_convertService.Convert <AssetContract, Asset>(asset)))
            {
                throw new ArgumentException($"Asset with id {asset.Id} already exists", nameof(asset.Id));
            }

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.Asset,
                                                        asset.Id);

            return(asset);
        }
示例#6
0
        private static IEnumerable <AssetDataContract> AssembleResult(IEnumerable <IBidAsk> bidAsks, IEnumerable <IBidAskHistory> bidAskHistory)
        {
            var assets = AssetContract.GetMockResult();

            var rates             = bidAsks.ToDictionary(itm => itm.Id);
            var historyDictionary = bidAskHistory.ToDictionary(itm => itm.Id);

            foreach (var asset in assets)
            {
                if (rates.ContainsKey(asset.Id))
                {
                    var hist = historyDictionary.ContainsKey(asset.Id)
                        ? historyDictionary[asset.Id].History
                        : Array.Empty <double>();

                    yield return(AssetDataContract.Create(asset.Id, rates[asset.Id].GetMid(), hist));
                }
            }
        }
示例#7
0
        private static async Task CheckAssetsApiWorking(IHttpClientGenerator clientGenerator)
        {
            var asset = new AssetContract
            {
                Id       = "t1",
                Name     = "1",
                Accuracy = 3,
            };

            var assetsApiClient = clientGenerator.Generate <IAssetsApi>();
            await assetsApiClient.List().Dump();

            await assetsApiClient.Insert(asset).Dump();

            await assetsApiClient.Get("t1").Dump();

            asset.Name = "2";
            await assetsApiClient.Update("t1", asset).Dump();

            await assetsApiClient.Delete("t1");
        }
        private void Button_OnClicked(object sender, EventArgs e)
        {
            var asset = new AssetContract()
            {
                AssetId         = "A123",
                LogHeaderId     = LogHeaderId,
                AssetAttributes = new List <AssetAttributeContract>()
                {
                    new AssetAttributeContract()
                    {
                        AttributeType = AssetAttributeType.Text,
                        Key           = "Diameter",
                        Value         = "100mm", // not sure if 100mm or Diameter1 here
                        ValidValues   = new List <AssetAttributeValueContract>()
                        {
                            new AssetAttributeValueContract()
                            {
                                Value = "Diameter1",
                                Label = "100mm"
                            },
                            new AssetAttributeValueContract()
                            {
                                Value = "Diameter2",
                                Label = "150mm"
                            },
                            new AssetAttributeValueContract()
                            {
                                Value = "Diameter3",
                                Label = "200mm"
                            },
                        }
                    }
                }
            };

            App.PlatformSpecific.StartActivity("com.companyname.AppOne.Android", asset);
        }
示例#9
0
        public BlockchainAsset(AssetContract contract)
        {
            if (contract == null)
            {
                throw new ResultValidationException("Asset not found");
            }
            if (string.IsNullOrWhiteSpace(contract.AssetId))
            {
                throw new ResultValidationException("Asset ID is required", contract.AssetId);
            }
            if (string.IsNullOrWhiteSpace(contract.Name))
            {
                throw new ResultValidationException("Name is required", contract.Name);
            }
            if (contract.Accuracy < 0 || contract.Accuracy > 28)
            {
                throw new ResultValidationException("Accuracy should be number in the range [0..28]", contract.Accuracy);
            }

            AssetId  = contract.AssetId;
            Address  = contract.Address;
            Name     = contract.Name;
            Accuracy = contract.Accuracy;
        }
示例#10
0
 public AssetManager(CareTaker careTaker, Asset asset, IRepository <Movement> movementsRepository)
 {
     _movementsRepository = movementsRepository;
     _contract            = asset._contract;
     _careTaker           = careTaker;
 }
示例#11
0
 public AssetContract[] Assets()
 {
     return(AssetContract.GetMockResult());
 }