Example #1
0
        public async Task <IHttpActionResult> GetReturnsForCalculationPeriodAsync(int assetId, int portfolioId, ICollection <DatePeriodDto> calculationPeriods)
        {
            var assetInDb = await _assetRepository.GetAsync(assetId);

            if (assetInDb == null)
            {
                return(NotFound());
            }

            var portfolioInDb = await _portfolioRepository.GetAsync(portfolioId);

            if (portfolioInDb == null)
            {
                return(NotFound());
            }

            var submittedPeriods = calculationPeriods.Map <List <Tuple <DateTime, DateTime> > >();

            try
            {
                var calculatedReturnRate = _assetService.GetPortfolioAssetReturnsForPeriod(submittedPeriods, portfolioInDb, assetInDb);

                _assetRepository.Add(assetInDb);

                return(Ok(calculatedReturnRate));
            }
            catch (NoCalculationResultException exception)
            {
                return(BadRequest(exception.Message));
            }
        }
Example #2
0
        public Tuple <Asset, bool, int, string> Add(Asset asset)
        {
            //Save first the asset
            repository.Add(asset);

            //the define de info for the QR code and generates the QR Code image
            asset.QrCode = TxtQrCodeGenerator(asset.AssetID);

            //save the asset again with the QR code.
            asset = repository.Update(asset);



            //Check in more Assets need to be added:

            bool   stillNeedToAddAsset = false;
            string message             = "";

            int qtyAssetsStillNeedToAdd = QtyAssetsStillNeedToAdd(asset.PurchaseItemID);

            if (qtyAssetsStillNeedToAdd == 0)
            {
                message = "All assets are generated!";
                asset   = FindById(asset.AssetID);
                return(new Tuple <Asset, bool, int, string>(asset, stillNeedToAddAsset, 0, message));
            }

            stillNeedToAddAsset = true;
            message             = "Still need to be added " + qtyAssetsStillNeedToAdd + "x assets";

            return(new Tuple <Asset, bool, int, string>(asset, stillNeedToAddAsset, qtyAssetsStillNeedToAdd, message));
        }
Example #3
0
        private async ValueTask CreateAssetsIfNotExists(string code, string name, string symbol, string groupCode, IEnumerable <Group> groups, int index, CancellationToken cancellationToken = default)
        {
            var curAsset = await _assetRepository.GetByCode(code, cancellationToken)
                           .ConfigureAwait(false);

            if (curAsset == null)
            {
                var group = groups.FirstOrDefault(g => g.Code == groupCode);

                if (group == null)
                {
                    return;
                }

                curAsset = new Asset
                {
                    Code      = code,
                    Name      = name,
                    Symbol    = symbol,
                    Order     = index,
                    CreatedAt = DateTime.UtcNow,
                    GroupId   = group.Id
                };

                await _assetRepository.Add(curAsset, cancellationToken)
                .ConfigureAwait(false);
            }
        }
Example #4
0
        public async Task <IResult <AssetModel> > Handle(CreateAssetCommand request, CancellationToken cancellationToken)
        {
            var asset = new Asset
            {
                Code      = request.Input.Code,
                Name      = request.Input.Name,
                GroupId   = request.Input.GroupId,
                Order     = request.Input.Order,
                Icon      = request.Input.Icon,
                Symbol    = request.Input.Symbol,
                CreatedAt = DateTime.UtcNow,
                OwnerId   = _userIdAccesor.Id
            };

            if (await _assetRepository.Exists(asset, cancellationToken).ConfigureAwait(false))
            {
                return(Result.Failure <AssetModel>(ErrorCodes.Forbid));
            }

            asset = await _assetRepository.Add(asset, cancellationToken)
                    .ConfigureAwait(false);

            _userCacheService.Remove(CacheRegion.Assets);

            return(_mapper.Map <Asset, AssetModel>(asset).AsResult());
        }
Example #5
0
        public void AssetRepositoryAdd()
        {
            Asset assetTest = new Asset
            {
                AssetTypeID       = 1,
                AreaID            = 1,
                Name              = "Unit test Name",
                AssetCode         = "UTN1",
                StartDate         = DateTime.Now,
                Quantity          = 1,
                Description       = "Test",
                ApplicationUserID = 1,
                Active            = true,
                CreatedAt         = DateTime.Now,
                UpdatedAt         = DateTime.Now,
            };
            var actual = _assetRepository.Add(assetTest);

            _unitOfWork.Commit();

            var expected = "UTN1";

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual.AssetCode);
        }
        public ActionResult <Asset> PostAsset(Asset asset)
        {
            _assetRepository.Add(asset);
            _assetRepository.Save();

            return(CreatedAtAction("GetAsset", new { id = asset.Id }, asset));
        }
Example #7
0
        public async Task <int> CreateAsync(CreateAssetDto request)
        {
            Asset asset = AssetMapper.ToEntity(request);

            _assetRepository.Add(asset);

            return(await _unitOfWork.SaveChangesAsync());
        }
Example #8
0
        public async Task <int> CreateAsync(AssetDto asset)
        {
            var toInsert = _mapper.Map <Asset>(asset);

            _assetRepository.Add(toInsert);
            await _unitOfWork.CommitAsync();

            return(toInsert.ID);
        }
Example #9
0
        public async Task <bool> Create(Asset item)
        {
            //Execute domain validation for the create page operation
            Validate(item, Operation.Create);

            _repository.Add(item);

            //Save the changes to data layer
            return(await CompleteAsync());
        }
Example #10
0
        /// <summary>
        /// https://github.com/Studio-42/elFinder/wiki/Client-Server-API-2.0#mkdir
        /// </summary>
        /// <param name="elFinderParameter"></param>
        /// <returns></returns>
        private async Task <JObject> ExecuteMkdir(ElFinderParameter elFinderParameter)
        {
            var target = elFinderParameter.Target;

            if (string.IsNullOrWhiteSpace(target))
            {
                return(new ErrorResponse(string.Format(Constants.Errors.ErrParamNotSpecified, Constants.ElFinderDtoNames.Target)).GetJson());
            }

            var asset = await _assetRepository.Get(target);

            if (asset == null)
            {
                return(new ErrorResponse(Constants.ElFinderErrors.ErrTrgFolderNotFound).GetJson());
            }

            var recordPath = asset.Path + Constants.PathSeparator + elFinderParameter.Name;
            var record     = new AssetAggregate
            {
                CanRead            = true,
                CanWrite           = true,
                IsLocked           = false,
                Name               = elFinderParameter.Name,
                CreatedAt          = DateTime.UtcNow,
                ResourceParentHash = asset.Hash,
                Path               = recordPath,
                Hash               = HashHelper.GetHash(recordPath),
                MimeType           = Constants.MimeNames.Directory
            };

            if (!(await _assetRepository.Add(new[] { record })))
            {
                return(new ErrorResponse(Constants.Errors.ErrInsertAsset).GetJson());
            }

            var files  = new JArray(GetFile(record));
            var result = new JObject();

            result.Add(Constants.ElFinderResponseNames.Added, files);
            return(result);
        }
 public void CreateAsset(AssetViewModel assetViewModel)
 {
     if (assetViewModel.Id > 0)
     {
         assetsRepository.Update(Mapper.Map <AssetViewModel, Asset>(assetViewModel));
     }
     else
     {
         assetsRepository.Add(Mapper.Map <AssetViewModel, Asset>(assetViewModel));
     }
     SaveAsset();
 }
Example #12
0
        public async Task <Asset> Create(Asset assetIn)
        {
            var ressourceTypeIn = await _ressourceTypeRepository.GetById(assetIn.AssetTypeId);

            if (ressourceTypeIn == null)
            {
                throw new RessourceTypeRepositoryException(string.Format(_errorHandler.GetMessage(ErrorMessagesEnum.NotFound),
                                                                         nameof(RessourceType), assetIn.AssetTypeId), nameof(assetIn.AssetTypeId));
            }
            try
            {
                if (assetIn.SpaceId != null)
                {
                    var spaceIn = await _spaceRepository.GetById(assetIn.SpaceId);

                    if (spaceIn != null)
                    {
                        assetIn.Status = Status.Chained;
                    }
                    else
                    {
                        throw new SpaceRepositoryException(string.Format(_errorHandler.GetMessage(ErrorMessagesEnum.NotFound),
                                                                         nameof(Space), assetIn.SpaceId), nameof(assetIn.SpaceId));
                    }
                }
                else
                {
                    assetIn.Status = Status.Unchained;
                }

                ressourceTypeIn.Count++; // Increamenting count when adding an asset
                await _ressourceTypeRepository.Update(ressourceTypeIn);

                assetIn.AssetTypeName = ressourceTypeIn.Name;
                await _assetRepository.Add(assetIn);
            }
            catch (MongoWriteException mwx)
            {
                if (mwx.WriteError.Category == ServerErrorCategory.DuplicateKey)
                {
                    var     pattern         = @"\{(?:[^{*}])*\}";
                    Match   result          = Regex.Match(mwx.Message, pattern);                     // get the dublicated feild from the string error msg
                    JObject duplicatedField = JsonConvert.DeserializeObject <JObject>(result.Value); // parse it  to get the field
                    throw new AssetRepositoryException(string.Format(_errorHandler.GetMessage(ErrorMessagesEnum.DuplicateKey),
                                                                     nameof(Asset), duplicatedField.First.Path), duplicatedField.First.Path);
                }
            }

            return(assetIn);
        }
        public IActionResult UpdatePaperAssets([FromBody] IEnumerable <JsonAssetModel> assetModels)
        {
            var userId = HttpContext.User.GetUserId();

            if (string.IsNullOrEmpty(userId))
            {
                return(BadRequest("User not found"));
            }

            var assets     = assetModels.Select(_mapper.Map <Asset>);
            var userAssets = _assetRepository.GetByUserId(userId).Where(o =>
                                                                        o.TradingMode == TradingMode.PaperTesting &&
                                                                        string.IsNullOrEmpty(o.StrategyId));

            var toDelete = userAssets.Where(o => !assets.Any(p => p.Id == o.Id));

            foreach (var item in toDelete)
            {
                _assetRepository.DeleteNotSave(item);
            }
            foreach (var item in assets)
            {
                if (string.IsNullOrEmpty(item.Id))
                {
                    _assetRepository.Add(new Asset
                    {
                        Amount      = item.Amount,
                        Currency    = item.Currency,
                        Exchange    = item.Exchange,
                        TradingMode = TradingMode.PaperTesting,
                        UserId      = userId,
                        IsActive    = true,
                    });
                }
                else
                {
                    var originalAsset = userAssets.FirstOrDefault(o => o.Id == item.Id);
                    if (originalAsset == null)
                    {
                        return(BadRequest("Asset not found"));
                    }
                    originalAsset.Amount = item.Amount;
                    _assetRepository.EditNotSave(originalAsset);
                }
            }
            _assetRepository.Save();
            return(Ok());
        }
        public MethodResult <Asset> AddAsset(string serialNumber, string name, string description, int customerId)
        {
            var existingAsset = _assetRepository.GetBySerialNumberForCustomer(serialNumber, customerId);

            if (existingAsset != null)
            {
                return(MethodResult <Asset> .CreateFaultedResult("The asset is already created."));
            }

            var newAsset = new Asset
            {
                SerialNumber = serialNumber,
                Name         = name,
                Description  = description,
                CustomerId   = customerId
            };

            _assetRepository.Add(newAsset);

            return(new MethodResult <Asset>(newAsset));
        }
Example #15
0
 public bool Add(Asset entity)
 {
     return(_repository.Add(entity));
 }
Example #16
0
        public async Task <IActionResult> UploadAsync([FromForm]  Int16 assettype)
        {
            AssetTypes assetType = (AssetTypes)assettype;

            if (assetType == AssetTypes.Folder)
            {
                return(StatusCode(500, "Could not uplaod file."));
            }

            var request = await HttpContext.Request.ReadFormAsync();

            if (request.Files == null)
            {
                return(StatusCode(500, "Could not uplaod file."));
            }


            var files = request.Files;

            if (files.Count != 1)
            {
                return(StatusCode(500, "Could uplaod just only one file."));
            }



            // Analyze Image
            ImageAnalysis metadatalist = new ImageAnalysis();

            if (assetType == AssetTypes.Image)
            {
                using (var streamimage = files[0].OpenReadStream())
                {
                    metadatalist = await _azureImageAnalyzer.AnalyzImageAsync(streamimage);
                }
            }


            // create folder and upload original file in storage
            creatFolders(new List <string> {
                "Original"
            });
            string filename = Helper.GetRandomBlobName(files[0].FileName, Path.GetExtension(files[0].FileName));
            string filepath = await _azureBlobService.UploadAcync(files, filename, "Original");


            // add Original asset in database
            var  parent     = _assetRepository.GetEntityByPath("/Original");
            Guid newAssetID = Guid.NewGuid();

            _assetRepository.Add(new AssetModel
            {
                AssetId       = newAssetID,
                AssetFileName = filename,
                AssetFilePath = filepath,
                Datetime      = DateTime.Now,
                AssetType     = assetType,
                MetaData      = JsonConvert.SerializeObject(metadatalist).ToString(),
                Parent        = parent != null ? parent.AssetId : Guid.Empty
            });
            _assetRepository.Complete();

            // Create and upload SocialRequirement
            await uploadSocialRequirementsAsync(newAssetID, assetType, files[0], filepath, metadatalist);

            return(Ok("Asset uploded successfully."));
        }
Example #17
0
 public void Add(Asset asset)
 {
     _assetRepository.Add(asset);
 }