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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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(); } }
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(); } }
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); }
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); }
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); }
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(); } }
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); }
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); }
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); }