public static AssetInventoryModel ToModel(this AssetInventory entity)
        {
            var model = new AssetInventoryModel()
            {
                Id          = entity.Id,
                Title       = entity.Title,
                Description = entity.Description,
                CreatedTime = entity.CreatedTime
            };

            if (entity.Status.HasValue)
            {
                model.Status = (AssetInventoryStatus)entity.Status.Value;
            }
            if (entity.AssetInventoryRecords != null && entity.AssetInventoryRecords.Count > 0)
            {
                model.AssetInventoryRecords = new List <AssetInventoryRecordModel>();
                foreach (var item in entity.AssetInventoryRecords)
                {
                    model.AssetInventoryRecords.Add(new AssetInventoryRecordModel()
                    {
                        Id          = item.Id,
                        AssetId     = item.AssetId,
                        InventoryId = item.InventoryId,
                        ScanCode    = item.ScanCode,
                        UserId      = item.UserId
                    });
                }
            }
            return(model);
        }
        public static AssetInventory ToEntity(this AssetInventoryModel model)
        {
            var entity = new AssetInventory()
            {
                Id          = model.Id,
                Title       = model.Title,
                Description = model.Description,
                Status      = (int)model.Status
            };

            return(entity);
        }
Пример #3
0
        public async Task <DirectoryTreeNode> GetInventoryFileTreeAsync(AssetInventory inventory, CancellationToken cancellationToken = default)
        {
            if (inventory == null)
            {
                throw new ArgumentException("AssetInventory cannot be null", nameof(inventory));
            }

            try
            {
                var vpkInventory = await Http.GetFromJsonAsync <VpkInventory>(inventory.Url, cancellationToken);

                return(await GetVpkInventoryFileTreeAsync(vpkInventory, cancellationToken));
            }
            catch (OperationCanceledException canceledException) when(canceledException.CancellationToken == cancellationToken)
            {
                return(new DirectoryTreeNode()
                {
                    Name = "Root"
                });
            }
        }
Пример #4
0
        private static AssetInventory ComputeInventoryDynamics(AssetInventory startInventory,
                                                               AssetInventory endInventory)
        {
            if (startInventory == null && endInventory == null)
            {
                throw new InvalidOperationException("At least one inventory is required");
            }

            decimal usdRate     = (endInventory?.Volume ?? 0) != 0 ? endInventory.VolumeInUsd / endInventory.Volume : 0;
            decimal volume      = (endInventory?.Volume ?? 0) - (startInventory?.Volume ?? 0);
            decimal volumeInUsd = endInventory != null ? volume * usdRate : -startInventory.VolumeInUsd;

            return(new AssetInventory
            {
                Exchange = startInventory?.Exchange ?? endInventory.Exchange,
                Volume = volume,
                VolumeInUsd = volumeInUsd,
                SellVolume = (endInventory?.SellVolume ?? 0) - (startInventory?.SellVolume ?? 0),
                BuyVolume = (endInventory?.BuyVolume ?? 0) - (startInventory?.BuyVolume ?? 0)
            });
        }
        /// <summary>
        /// Add an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public AssetInventoryViewModel Add(AssetInventoryViewModel model)
        {
            this.ThrowExceptionIfExist(model);

            var entity = model.ToEntity();

            entity = this._AssetInventorysRepository.Add(entity);

            var entityEn = new AssetInventory
            {
                Language    = Language.English,
                Description = model.DescriptionEn,
            };

            entity.ChildTranslatedAssetInventorys.Add(entityEn);
            this._AssetInventorysRepository.Add(entityEn);

            var entityAr = new AssetInventory
            {
                Language    = Language.Arabic,
                Description = model.DescriptionAr
            };

            entity.ChildTranslatedAssetInventorys.Add(entityAr);
            this._AssetInventorysRepository.Add(entityAr);

            var details = entity.AssetInventoryDetails;

            this._AssetInventoryDetailsRepository.Add(details);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion

            model = entity.ToModel();
            return(model);
        }