示例#1
0
        public VarlikResult <TokenUser> Login(string mail, string password)
        {
            var result = new VarlikResult <TokenUser>();

            using (var ctx = new VarlikContext())
            {
                password = VarlikHasher.Hash(password);

                var entity = ctx.User
                             .FirstOrDefault(l => l.Mail == mail.ToLower() &&
                                             l.Password == password &&
                                             !l.IsDeleted);

                if (entity == null)
                {
                    result.Status = ResultStatus.LoginFailed;
                    return(result);
                }

                result.Data = new TokenUser()
                {
                    Mail       = mail,
                    Id         = entity.Id,
                    CreatedAt  = DateTime.Now,
                    IsApproved = entity.IsUserApproved,
                    Name       = entity.Name,
                    Surname    = entity.Surname
                };
                result.Success();
            }
            return(result);
        }
示例#2
0
        public VarlikResult Save(UserDto userDto)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var isAdded = ctx.User.Any(l => !l.IsDeleted && l.Mail == userDto.Mail);
                if (isAdded)
                {
                    result.Status = ResultStatus.AlreadyAdded;
                    return(result);
                }

                var entity = userDto.ToEntity(userDto);

                var persistent = ctx.User.Add(entity);

                try
                {
                    ctx.SaveChanges();
                    result.Success();
                    result.ObjectId = persistent.Id;
                }
                catch (Exception e)
                {
                    Log.Error("Save", e);
                }
            }
            return(result);
        }
示例#3
0
        public VarlikResult UpdatePassword(long idUser, UserUpdatePasswordDto userUpdatePasswordDto)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var user = ctx.User.FirstOrDefault(l => !l.IsDeleted && l.Id == idUser && l.Password == userUpdatePasswordDto.OldPassword);
                if (user == null)
                {
                    result.Status = ResultStatus.NoSuchObject;
                    return(result);
                }
                user.Password = VarlikHasher.Hash(user.Password);
                user.Password = userUpdatePasswordDto.Password;
                try
                {
                    ctx.SaveChanges();
                    result.Success();
                }
                catch (Exception e)
                {
                    Log.Error("UpdatePassword", e);
                }
            }
            return(result);
        }
示例#4
0
        public VarlikResult AddWalletAddress(UserWalletDto userWalletDto)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var isAdded = ctx.UserWallet.Any(l =>
                                                 l.IdUser == userWalletDto.IdUser && l.IdCoinType == userWalletDto.IdCoinType);
                if (isAdded)
                {
                    result.Status = ResultStatus.AlreadyAdded;
                    return(result);
                }
                var entity     = userWalletDto.ToEntity(userWalletDto);
                var persistent = ctx.UserWallet.Add(entity);
                try
                {
                    ctx.SaveChanges();
                    result.Success();
                    result.ObjectId = persistent.Id;
                }
                catch (Exception e)
                {
                    Log.Error("AddWalletAddress", e);
                }
            }
            return(result);
        }
示例#5
0
        public VarlikResult <string> ForgotPassword(string mail)
        {
            var result = new VarlikResult <string>();

            using (var ctx = new VarlikContext())
            {
                var user = ctx.User.FirstOrDefault(l => l.Mail == mail && !l.IsDeleted);
                if (user != null)
                {
                    user.Password = Guid.NewGuid().ToString();
                    user.Password = VarlikHasher.Hash(user.Password);
                    try
                    {
                        ctx.SaveChanges();
                        result.Success();
                        result.Data = user.Password;
                    }
                    catch (Exception e)
                    {
                        Log.Error("ForgotPassword", e);
                    }
                }
            }
            return(result);
        }
示例#6
0
        private static void WriteTransactionOrder()
        {
            using (var ctx = new VarlikContext())
            {
                UserCoinTransactionOrder coinTransactionOrder = new UserCoinTransactionOrder();
                coinTransactionOrder.IdUser            = 2;
                coinTransactionOrder.CoinAmount        = 100;
                coinTransactionOrder.CoinUnitPrice     = 1;
                coinTransactionOrder.IdCoinType        = "dgc";
                coinTransactionOrder.IdTransactionType = "coin_sales";
                coinTransactionOrder.CreatedAt         = DateTime.Now;

                ctx.UserCoinTransactionOrder.Add(coinTransactionOrder);
                ctx.SaveChanges();

                coinTransactionOrder                   = new UserCoinTransactionOrder();
                coinTransactionOrder.IdUser            = 2;
                coinTransactionOrder.CoinAmount        = 100;
                coinTransactionOrder.CoinUnitPrice     = 100;
                coinTransactionOrder.IdCoinType        = "btc";
                coinTransactionOrder.IdTransactionType = "coin_sales";
                coinTransactionOrder.CreatedAt         = DateTime.Now;

                ctx.UserCoinTransactionOrder.Add(coinTransactionOrder);
                ctx.SaveChanges();

                coinTransactionOrder                   = new UserCoinTransactionOrder();
                coinTransactionOrder.IdUser            = 3;
                coinTransactionOrder.CoinAmount        = 100;
                coinTransactionOrder.CoinUnitPrice     = 0.9M;
                coinTransactionOrder.IdCoinType        = "dgc";
                coinTransactionOrder.IdTransactionType = "coin_sales";
                coinTransactionOrder.CreatedAt         = DateTime.Now;

                ctx.UserCoinTransactionOrder.Add(coinTransactionOrder);
                ctx.SaveChanges();

                coinTransactionOrder                   = new UserCoinTransactionOrder();
                coinTransactionOrder.IdUser            = 2;
                coinTransactionOrder.MoneyAmount       = 150;
                coinTransactionOrder.IdTransactionType = "to_bank";
                coinTransactionOrder.CreatedAt         = DateTime.Now;

                ctx.UserCoinTransactionOrder.Add(coinTransactionOrder);
                ctx.SaveChanges();

                coinTransactionOrder                   = new UserCoinTransactionOrder();
                coinTransactionOrder.IdUser            = 3;
                coinTransactionOrder.MoneyAmount       = 350;
                coinTransactionOrder.IdTransactionType = "from_bank";
                coinTransactionOrder.CreatedAt         = DateTime.Now;

                ctx.UserCoinTransactionOrder.Add(coinTransactionOrder);
                ctx.SaveChanges();
            }
        }
        public VarlikResult ApproveFromBankAdmin(long idMainOrder, string idTransactionState)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var data = ctx.MainOrderLog
                           .FirstOrDefault(l => l.Id == idMainOrder &&
                                           l.IdTransactionState != TransactionStateEnum.Completed &&
                                           l.IdTransactionType == TransactionTypeEnum.FromBank);

                if (idTransactionState == TransactionStateEnum.Completed)
                {
                    if (data != null)
                    {
                        data.IdTransactionState = TransactionStateEnum.Completed;
                        data.TransactionDate    = DateTime.Now;

                        var order = ctx.UserCoinTransactionOrder
                                    .FirstOrDefault(l => l.IdMainOrderLog == idMainOrder &&
                                                    l.IdTransactionState != TransactionStateEnum.Completed &&
                                                    l.IdTransactionType == TransactionTypeEnum.FromBank);

                        if (order != null)
                        {
                            ctx.UserCoinTransactionOrder.Remove(order);
                        }
                        //write tx log

                        var tx = new UserTransactionLog()
                        {
                            MoneyAmount        = data.MoneyAmount,
                            IdTransactionState = TransactionStateEnum.Completed,
                            IdTransactionType  = TransactionTypeEnum.FromBank,
                            TransactionDate    = data.TransactionDate.Value,
                            IsSucces           = true,
                            IdUser             = data.IdUser,
                            IdMainOrderLog     = idMainOrder
                        };

                        ctx.UserCoinTransactionLog.Add(tx);
                        try
                        {
                            ctx.SaveChanges();
                            result.Success();
                        }
                        catch (Exception e)
                        {
                            Log.Error("ApproveFromBankAdmin", e);
                        }
                    }
                }
            }

            return(result);
        }
示例#8
0
        public static void WriteTransactionState()
        {
            using (var ctx = new VarlikContext())
            {
                TransactionStateEnum transactionStateEnum = new TransactionStateEnum();
                transactionStateEnum.Code = "processing";
                transactionStateEnum.Name = "İşlemde";

                ctx.TransactionStateEnum.Add(transactionStateEnum);
                ctx.SaveChanges();

                transactionStateEnum      = new TransactionStateEnum();
                transactionStateEnum.Code = "fail";
                transactionStateEnum.Name = "Başarısız";

                ctx.TransactionStateEnum.Add(transactionStateEnum);
                ctx.SaveChanges();

                transactionStateEnum      = new TransactionStateEnum();
                transactionStateEnum.Code = "partialy_completed";
                transactionStateEnum.Name = "Kısmen Tamamlandı";

                ctx.TransactionStateEnum.Add(transactionStateEnum);
                ctx.SaveChanges();

                transactionStateEnum      = new TransactionStateEnum();
                transactionStateEnum.Code = "money_being_sent";
                transactionStateEnum.Name = "money_being_sent";

                ctx.TransactionStateEnum.Add(transactionStateEnum);
                ctx.SaveChanges();

                transactionStateEnum      = new TransactionStateEnum();
                transactionStateEnum.Code = "pending_approval";
                transactionStateEnum.Name = "pending_approval";

                ctx.TransactionStateEnum.Add(transactionStateEnum);
                ctx.SaveChanges();

                transactionStateEnum      = new TransactionStateEnum();
                transactionStateEnum.Code = "completed";
                transactionStateEnum.Name = "completed";

                ctx.TransactionStateEnum.Add(transactionStateEnum);
                ctx.SaveChanges();

                transactionStateEnum      = new TransactionStateEnum();
                transactionStateEnum.Code = "cancelled_by_user";
                transactionStateEnum.Name = "cancelled_by_user";

                ctx.TransactionStateEnum.Add(transactionStateEnum);
                ctx.SaveChanges();
            }
        }
        public VarlikResult CancelTheOrder(long idMainOrder, long idUser)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var mainOrder = ctx.MainOrderLog
                                .FirstOrDefault(l => l.Id == idMainOrder && l.IdUser == idUser);
                if (mainOrder == null)
                {
                    result.Status = ResultStatus.NoSuchObject;
                    return(result);
                }

                if (mainOrder.IdTransactionState != TransactionStateEnum.Processing)
                {
                    result.Status = ResultStatus.CannotBeCancelled;
                    return(result);
                }

                //sub orders
                var subOrders = ctx.UserCoinTransactionOrder.Where(l => l.IdMainOrderLog == mainOrder.Id).ToList();
                foreach (var item in subOrders)
                {
                    item.IdTransactionState = TransactionStateEnum.CancelledByUser;
                }

                mainOrder.IdTransactionState = TransactionStateEnum.CancelledByUser;

                try
                {
                    ctx.SaveChanges();
                    result.Success();

                    //push
                    OrderPublisher orderPublisher = new OrderPublisher();
                    foreach (var item in subOrders)
                    {
                        orderPublisher.PublishOrder(item.IdCoinType, new TransactinOrderListDto()
                        {
                            CoinAmount        = -1 * item.CoinAmount,
                            CoinUnitPrice     = item.CoinUnitPrice,
                            IdTransactionType = item.IdTransactionType,
                            Total             = -1 * item.CoinAmount * item.CoinUnitPrice
                        });
                    }
                }
                catch (Exception e)
                {
                }
            }

            return(result);
        }
示例#10
0
        public VarlikResult <UserDto> GetUserByMail(string mail)
        {
            var result = new VarlikResult <UserDto>();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new UserDto().FromEntity().Expand();
                result.Data = ctx.User.AsExpandable().Where(l => l.Mail == mail && !l.IsDeleted).Select(fromEntity).FirstOrDefault();
                result.Success();
            }

            return(result);
        }
示例#11
0
        public VarlikResult <decimal> GetTransferCommissionByIdCoinType(string idCoinType)
        {
            var result = new VarlikResult <decimal>();

            using (var ctx = new VarlikContext())
            {
                result.Data = ctx.Commission
                              .Where(l => l.IdCoinType == idCoinType)
                              .Select(l => l.TransferFee)
                              .FirstOrDefault();
                result.Success();
            }

            return(result);
        }
示例#12
0
        public VarlikResult <List <TransactionStateDto> > GetAll()
        {
            var result = new VarlikResult <List <TransactionStateDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new TransactionStateDto().FromEntity().Expand();
                result.Data = ctx.TransactionStateEnum
                              .AsExpandable()
                              .Select(fromEntity)
                              .ToList();
                result.Success();
            }

            return(result);
        }
示例#13
0
        public VarlikResult <List <CommisionDto> > GetAllCommission()
        {
            var result = new VarlikResult <List <CommisionDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new CommisionDto().FromEntity().Expand();
                result.Data = ctx.Commission
                              .AsExpandable()
                              .Select(fromEntity)
                              .ToList();
                result.Success();
            }

            return(result);
        }
        public VarlikResult <List <MainOrderLogDto> > GetAllOrder(long idUser)
        {
            var result = new VarlikResult <List <MainOrderLogDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new MainOrderLogDto().FromEntity().Expand();
                result.Data = ctx.MainOrderLog
                              .AsExpandable()
                              .Where(l => l.IdUser == idUser)
                              .Select(fromEntity)
                              .ToList();
                result.Success();
            }
            return(result);
        }
示例#15
0
        public static void WriteCoinType()
        {
            using (var ctx = new VarlikContext())
            {
                CoinTypeEnum coinTypeEnum = new CoinTypeEnum();
                coinTypeEnum.Code = "BTC";
                coinTypeEnum.Name = "BitCoin";

                ctx.CoinTypeEnum.Add(coinTypeEnum);
                ctx.SaveChanges();

                coinTypeEnum      = new CoinTypeEnum();
                coinTypeEnum.Code = "LTC";
                coinTypeEnum.Name = "LiteCoin";

                ctx.CoinTypeEnum.Add(coinTypeEnum);
                ctx.SaveChanges();

                coinTypeEnum      = new CoinTypeEnum();
                coinTypeEnum.Code = "DOGE";
                coinTypeEnum.Name = "DogeCoin";

                ctx.CoinTypeEnum.Add(coinTypeEnum);
                ctx.SaveChanges();

                coinTypeEnum      = new CoinTypeEnum();
                coinTypeEnum.Code = "IOTA";
                coinTypeEnum.Name = "IOTA";

                ctx.CoinTypeEnum.Add(coinTypeEnum);
                ctx.SaveChanges();

                coinTypeEnum      = new CoinTypeEnum();
                coinTypeEnum.Code = "ETH";
                coinTypeEnum.Name = "ETH";

                ctx.CoinTypeEnum.Add(coinTypeEnum);
                ctx.SaveChanges();

                coinTypeEnum      = new CoinTypeEnum();
                coinTypeEnum.Code = "XRP";
                coinTypeEnum.Name = "XRP";

                ctx.CoinTypeEnum.Add(coinTypeEnum);
                ctx.SaveChanges();
            }
        }
示例#16
0
        public static void WriteTransactionType()
        {
            using (var ctx = new VarlikContext())
            {
                TransactionTypeEnum transactionTypeEnum = new TransactionTypeEnum();
                transactionTypeEnum.Code = "coin_sales";
                transactionTypeEnum.Name = "Coin Satışı";

                ctx.TransactionTypeEnum.Add(transactionTypeEnum);
                ctx.SaveChanges();

                transactionTypeEnum      = new TransactionTypeEnum();
                transactionTypeEnum.Code = "coin_purchasing";
                transactionTypeEnum.Name = "Coin Alımı";

                ctx.TransactionTypeEnum.Add(transactionTypeEnum);
                ctx.SaveChanges();

                transactionTypeEnum      = new TransactionTypeEnum();
                transactionTypeEnum.Code = "to_bank";
                transactionTypeEnum.Name = "Para Çekme";

                ctx.TransactionTypeEnum.Add(transactionTypeEnum);
                ctx.SaveChanges();

                transactionTypeEnum      = new TransactionTypeEnum();
                transactionTypeEnum.Code = "from_bank";
                transactionTypeEnum.Name = "Para Yatırma";

                ctx.TransactionTypeEnum.Add(transactionTypeEnum);
                ctx.SaveChanges();

                transactionTypeEnum      = new TransactionTypeEnum();
                transactionTypeEnum.Code = "to_wallet";
                transactionTypeEnum.Name = "Cüzdana Aktar";

                ctx.TransactionTypeEnum.Add(transactionTypeEnum);
                ctx.SaveChanges();

                transactionTypeEnum      = new TransactionTypeEnum();
                transactionTypeEnum.Code = "from_wallet";
                transactionTypeEnum.Name = "Cüzdandan Aktar";

                ctx.TransactionTypeEnum.Add(transactionTypeEnum);
                ctx.SaveChanges();
            }
        }
示例#17
0
        public VarlikResult <List <UserDto> > GetAllUserAdmin()
        {
            var result = new VarlikResult <List <UserDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new UserDto().FromEntity().Expand();
                result.Data = ctx.User
                              .AsExpandable()
                              .OrderByDescending(l => l.CreatedAt)
                              .Select(fromEntity)
                              .ToList();
                result.Success();
            }

            return(result);
        }
示例#18
0
        public VarlikResult <ApiKeyDto> GetApiKeyByIdCoinType(string idCoinType)
        {
            var result = new VarlikResult <ApiKeyDto>();

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

                result.Data = ctx.ApiKey
                              .AsExpandable()
                              .Where(l => l.IdCoinType == idCoinType)
                              .Select(fromEntity)
                              .FirstOrDefault();

                result.Success();
            }
            return(result);
        }
示例#19
0
        public VarlikResult <CommisionDto> GetCommission(string idCoinType, decimal transactionVolume)
        {
            var result = new VarlikResult <CommisionDto>();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new CommisionDto().FromEntity().Expand();
                result.Data = ctx.Commission
                              .AsExpandable()
                              .Where(l => l.IdCoinType == idCoinType && l.TransactionVolume <= (decimal)transactionVolume)
                              .OrderByDescending(l => l.TransactionVolume)
                              .Select(fromEntity)
                              .OrderByDescending(l => l.TransactionVolume)
                              .FirstOrDefault();
                result.Success();
            }
            return(result);
        }
示例#20
0
        public static void WriteUser()
        {
            using (var ctx = new VarlikContext())
            {
                User user = new User();
                user.IsUserApproved = true;
                user.IsDeleted      = false;
                user.Mail           = "*****@*****.**";
                user.Name           = "Umur";
                user.Surname        = "İnan";
                user.Adres          = "West Gate";
                user.Iban           = "TR45145715417541571";
                user.Password       = "******";

                ctx.User.Add(user);
                ctx.SaveChanges();

                user = new User();
                user.IsUserApproved = true;
                user.IsDeleted      = false;
                user.Mail           = "*****@*****.**";
                user.Name           = "Ali";
                user.Surname        = "Aktaş";
                user.Adres          = "Relax Plus";
                user.Iban           = "DE251457154456475475";
                user.Password       = "******";

                ctx.User.Add(user);
                ctx.SaveChanges();

                user = new User();
                user.IsUserApproved = true;
                user.IsDeleted      = false;
                user.Mail           = "*****@*****.**";
                user.Name           = "Atakan";
                user.Surname        = "Atik";
                user.Adres          = "Yeşilsite Sitesi";
                user.Iban           = "UK251457154175415854";
                user.Password       = "******";

                ctx.User.Add(user);
                ctx.SaveChanges();
            }
        }
示例#21
0
        public VarlikResult Register(UserDto userDto)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                result = userDto.IsValid();
                if (!result.IsSuccess)
                {
                    return(result);
                }

                var alreadyAdded = ctx.User.Any(l => l.Mail == userDto.Mail && !l.IsDeleted);
                if (alreadyAdded)
                {
                    result.Status = ResultStatus.AlreadyAdded;
                    return(result);
                }

                userDto.Password = VarlikHasher.Hash(userDto.Password);

                User user = new User()
                {
                    Mail               = userDto.Mail.ToLower(),
                    Password           = userDto.Password,
                    Name               = userDto.Name,
                    Surname            = userDto.Surname,
                    Phone              = userDto.Phone,
                    IsContractApproved = true
                };
                ctx.User.Add(user);
                try
                {
                    ctx.SaveChanges();
                    result.Success();
                }
                catch (Exception e)
                {
                    Log.Error("Register", e);
                }
            }
            return(result);
        }
        public VarlikResult <List <MainOrderLogDto> > GetAllWalletOrder(long idUser, string idCoinType)
        {
            var result = new VarlikResult <List <MainOrderLogDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new MainOrderLogDto().FromEntity().Expand();
                result.Data = ctx.MainOrderLog
                              .AsExpandable()
                              .Where(l => l.IdUser == idUser &&
                                     (l.IdTransactionType == TransactionTypeEnum.FromWallet ||
                                      l.IdTransactionType == TransactionTypeEnum.ToWallet) &&
                                     l.IdCoinType == idCoinType)
                              .Select(fromEntity)
                              .ToList();
                result.Success();
            }
            return(result);
        }
        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 <List <MainOrderLogAdminDto> > GetAllOrderAdmin(Expression <Func <MainOrderLog, bool> > predicate,
                                                                            int limit, int offset)
        {
            var result = new VarlikResult <List <MainOrderLogAdminDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new MainOrderLogAdminDto().FromEntity().Expand();
                result.Data = ctx.MainOrderLog
                              .AsExpandable()
                              .Where(predicate)
                              .OrderByDescending(l => l.CreatedAt)
                              .Take(limit)
                              .Skip(offset)
                              .Select(fromEntity)
                              .ToList();
                result.Success();
            }
            return(result);
        }
示例#25
0
 private void Seed()
 {
     try
     {
         using (var ctx = new VarlikContext())
         {
             var isSeeded = ctx.TransactionTypeEnum.Any();
             if (!isSeeded)
             {
                 GenerateDummyData.WriteCoinType();
                 GenerateDummyData.WriteTransactionState();
                 GenerateDummyData.WriteTransactionType();
                 GenerateDummyData.WriteUser();
                 GenerateDummyData.WriteCommission();
             }
         }
     }
     catch (Exception e)
     {
     }
 }
        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 <decimal> GetMaxPriceOfCoin(string idCoinType)
        {
            var result = new VarlikResult <decimal>();

            using (var ctx = new VarlikContext())
            {
                var coin = ctx.UserCoinTransactionLog
                           .AsExpandable()
                           .Where(l => l.IdCoinType == idCoinType)
                           .OrderByDescending(l => l.CoinUnitPrice)
                           .Take(1)
                           .Skip(0)
                           .Select(l => l.CoinUnitPrice)
                           .FirstOrDefault();

                result.Data = coin;
                result.Success();
            }

            return(result);
        }
        public VarlikResult <List <MainOrderLogDto> > GetAllRealCoinOrderAdmin(int limit, int offset)
        {
            var result = new VarlikResult <List <MainOrderLogDto> >();

            using (var ctx = new VarlikContext())
            {
                var fromEntity = new MainOrderLogDto().FromEntityForAdmin().Expand();
                result.Data = ctx.MainOrderLog
                              .AsExpandable()
                              .Where(l => l.IdUser > 1000 &&
                                     (l.IdTransactionType == TransactionTypeEnum.CoinSales || l.IdTransactionType == TransactionTypeEnum.CoinPurchasing) &&
                                     l.IdTransactionState != TransactionStateEnum.Completed)
                              .OrderByDescending(l => l.CreatedAt)
                              .Take(limit)
                              .Skip(offset)
                              .Select(fromEntity)
                              .ToList();
                result.Success();
            }
            return(result);
        }
        public VarlikResult Save(MainOrderLogDto mainOrderLogDto)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var entity = mainOrderLogDto.ToEntity(mainOrderLogDto);
                ctx.MainOrderLog.Add(entity);
                try
                {
                    ctx.SaveChanges();
                    result.Success();
                    result.ObjectId = entity.Id;
                }
                catch (Exception e)
                {
                    Log.Error("Save", e);
                }
            }
            return(result);
        }
示例#30
0
        public async Task <VarlikResult> SaveAttachment(AttachmentDto attachmentDto)
        {
            var result = new VarlikResult();

            using (var ctx = new VarlikContext())
            {
                var entity     = attachmentDto.ToEntity(attachmentDto);
                var persistent = ctx.Attachment.Add(entity);
                try
                {
                    ctx.SaveChanges();
                    result.Success();
                    result.ObjectId = persistent.Id;
                }
                catch (Exception e)
                {
                    Log.Error("SaveAttachment", e);
                }
            }

            return(result);
        }