Ejemplo n.º 1
0
        public VarlikResult Save(UserTransactionLogDto userCoinTransactionLogDto)
        {
            if (userCoinTransactionLogDto == null)
            {
                var result = new VarlikResult();
                result.Status = ResultStatus.MissingRequiredParamater;
                return(result);
            }

            var saveResult = _userCoinTransactionLogOperation.Save(userCoinTransactionLogDto);

            if (saveResult.IsSuccess)
            {
                var listR = GetLastTwoTransactionsByIdCoinType(userCoinTransactionLogDto.IdCoinType);
                if (listR.IsSuccess && listR.Data.Count >= 2)
                {
                    PriceDto priceDto = new PriceDto();
                    priceDto.IdCoinType    = userCoinTransactionLogDto.IdCoinType;
                    priceDto.CoinUnitPrice = listR.Data[0].CoinUnitPrice;
                    if (listR.Data[0].CoinUnitPrice > listR.Data[1].CoinUnitPrice)
                    {
                        priceDto.IsIncreasing = true;
                    }
                    else
                    {
                        priceDto.IsIncreasing = false;
                    }

                    CoinPricePublisher coinPricePublisher = new CoinPricePublisher();
                    coinPricePublisher.PublishPrice(priceDto);
                }
            }
            return(saveResult);
        }
        public VarlikResult <List <UserTransactionLogDto> > GetAll(long idUser, int limit, int offset)
        {
            var result = new VarlikResult <List <UserTransactionLogDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new UserTransactionLogDto().FromEntity().Expand();
                result.Data = ctx.UserCoinTransactionLog
                              .AsExpandable()
                              .Where(l => l.IdUser == idUser)
                              .OrderBy(l => l.Id)
                              .Take(limit)
                              .Skip(offset)
                              .Select(fromEntity)
                              .ToList();

                result.Success();
            }
            return(result);
        }
        public VarlikResult Save(UserTransactionLogDto userCoinTransactionLogDto)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var entity     = userCoinTransactionLogDto.ToEntity(userCoinTransactionLogDto);
                var persistent = ctx.UserCoinTransactionLog.Add(entity);
                try
                {
                    ctx.SaveChanges();
                    result.Success();
                    result.ObjectId = persistent.Id;
                }
                catch (Exception e)
                {
                    Log.Error("Save", e);
                }
            }
            return(result);
        }
        public VarlikResult <List <UserTransactionLogDto> > GetLastTwoTransactionsByIdCoinType(string idCoinType)
        {
            var result = new VarlikResult <List <UserTransactionLogDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new UserTransactionLogDto().FromEntity().Expand();

                result.Data = ctx.UserCoinTransactionLog
                              .AsExpandable()
                              .Where(l => l.IdCoinType == idCoinType)
                              .OrderByDescending(l => l.RequestedDate)
                              .Take(2)
                              .Skip(0)
                              .Select(fromEntity)
                              .ToList();

                result.Success();
            }

            return(result);
        }
Ejemplo n.º 5
0
 public VarlikResult Save([FromBody] UserTransactionLogDto userCoinTransactionLogDto)
 {
     return(_userCoinTransactionLogManager.Save(userCoinTransactionLogDto));
 }