public IActionResult EditAsset(int id, [FromBody] SaveAssetDto asset)
        {
            var validator = new AssetValidator();
            var result    = validator.Validate(asset);

            if (result.IsValid)
            {
                try
                {
                    var editedData  = _assetProvider.UpdateAsset(id, asset);
                    var absoluteUri = string.Concat(
                        Request.Scheme,
                        "://",
                        Request.Host.ToUriComponent(),
                        Request.PathBase.ToUriComponent(),
                        $"/api/Asset/GetAssetById/{id}");
                    return(Created(new Uri(absoluteUri), absoluteUri));
                }
                catch (Exception exc)
                {
                    return(BadRequest(exc.Message));
                }
            }
            else
            {
                List <string> errorMessages = new List <string>();
                foreach (var item in result.Errors)
                {
                    errorMessages.Add(item.ErrorMessage);
                }
                return(BadRequest(errorMessages));
            }
        }
        public IActionResult AddAsset(SaveAssetDto asset)
        {
            var validator = new AssetValidator();
            var result    = validator.Validate(asset);

            if (result.IsValid)
            {
                var data        = _assetProvider.SaveAsset(asset);
                var absoluteUri = string.Concat(
                    Request.Scheme,
                    "://",
                    Request.Host.ToUriComponent(),
                    Request.PathBase.ToUriComponent(),
                    $"/api/Asset/GetAssetById/{data.Id}");
                return(Created(new Uri(absoluteUri), absoluteUri));
            }
            else
            {
                List <string> errorMessages = new List <string>();
                foreach (var item in result.Errors)
                {
                    errorMessages.Add(item.ErrorMessage);
                }
                return(BadRequest(errorMessages));
            }
        }
        public Asset SaveAsset(SaveAssetDto saveAssetDto)
        {
            Asset asset = _mapper.Map <Asset>(saveAssetDto);
            var   added = UnitOfWork.Assets.Add(asset);

            UnitOfWork.Complete();
            return(added);
        }
        public int UpdateAsset(int id, SaveAssetDto asset)
        {
            Asset editableAsset = _mapper.Map <Asset>(asset);

            editableAsset.Id = id;
            UnitOfWork.Assets.Edit(editableAsset);
            UnitOfWork.Complete();
            return(editableAsset.Id);
        }