예제 #1
0
        public IActionResult FollowSomeone(long idFollowed, long idFollower)
        {
            Follower  item  = new Follower();
            Following item2 = new Following();

            var personFollower = _context.users.Find(idFollower);

            item.Prenom = personFollower.Prenom;
            item.Nom    = personFollower.Nom;
            item.Id     = personFollower.Id;

            _context.followers.Add(item);
            var personFollowed = _context.users.Find(idFollowed);

            item2.Prenom = personFollowed.Prenom;
            item2.Nom    = personFollowed.Nom;
            item2.Id     = personFollowed.Id;

            _context.followings.Add(item2);

            personFollower.Followings.Add(item2);
            personFollowed.Followers.Add(item);
            _context.SaveChanges();
            return(CreatedAtRoute("GetFollow", new { id = item.Id }, item));
        }
예제 #2
0
 public IActionResult Create([FromBody] Experience item)
 {
     if (item == null)
     {
         return(BadRequest());
     }
     _context.experiences.Add(item);
     _context.SaveChanges();
     return(CreatedAtRoute("GetExperience", new { id = item.ID }, item));
 }
 public IActionResult Create([FromBody] PropositionOffrePrix item)
 {
     if (item == null)
     {
         return(BadRequest());
     }
     _context.PropositionOffrePrixes.Add(item);
     _context.SaveChanges();
     return(CreatedAtRoute("GetPropositionOffrePrix", new { id = item.Id }, item));
 }
예제 #4
0
 public IActionResult Create([FromBody] AnnonceService item)
 {
     if (item == null)
     {
         return(BadRequest());
     }
     _context.annonceServices.Add(item);
     _context.SaveChanges();
     return(CreatedAtRoute("GetAnnonceService", new { id = item.Id }, item));
 }
예제 #5
0
        public IActionResult MarquerFavori(long id)
        {
            var itemToUpdate = _context.annonces.SingleOrDefault(r => r.Id == id);

            if (itemToUpdate != null)
            {
                itemToUpdate.MarqueCommeFavori = true;
            }
            _context.SaveChanges();

            return(new NoContentResult());
        }
예제 #6
0
        public IActionResult SubmitTransaction(int transactionId)
        {
            var transaction = _dbContext.Transactions.SingleOrDefault(t => t.Id == transactionId);

            if (transaction != null)
            {
                transaction.State = TransactionStates.ConfirmedInProgress;
                _dbContext.SaveChanges();
            }

            return(RedirectToAction("Admin"));
        }
        public IActionResult Create(long id, [FromBody] AnnonceBesoin item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            _context.annonceBesoins.Add(item);
            var userObj = _context.users.Find(id);

            userObj.ListAnnonceBesoins.Add(item);
            _context.SaveChanges();
            return(CreatedAtRoute("GetAnnonceBesoin", new { id = item.Id }, item));
        }
예제 #8
0
        //API for working with DB-------------------
        public string AddTool(string name)
        {
            if (name != null)
            {
                db.Tools.Add(new Tool {
                    Name = name
                });
                db.SaveChanges();
            }
            List <Tool> tools = db.Tools.ToList();

            return(JsonConvert.SerializeObject(tools));
        }
예제 #9
0
        public IActionResult Create(long id, [FromBody] Comment item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            _context.comments.Add(item);

            var obj = _context.annonces.Find(id);

            obj.Comments.Add(item);
            _context.SaveChanges();
            return(CreatedAtRoute("GetComment", new { id = item.ID }, item));
        }
예제 #10
0
 public void SaveChanges()
 {
     using (_dbContext.Database.BeginTransaction())
     {
         _dbContext.SaveChanges();
     }
 }
예제 #11
0
        //Protfolio
        private void InitDbContext(ExchangeContext context)
        {
            context.Portfolios.Add(new Portfolio {
                Name = "Test10", Trade = null
            });
            context.Portfolios.Add(new Portfolio {
                Name = "Test11", Trade = null
            });


            context.Shares.Add(new HourlyShareRate {
                Rate = Convert.ToDecimal(50.00), Symbol = "TES", TimeStamp = DateTime.Now
            });
            context.Shares.Add(new HourlyShareRate {
                Rate = Convert.ToDecimal(50.10), Symbol = "SBI", TimeStamp = DateTime.Now
            });

            context.Trades.Add(new Trade {
                Action = "BUY", NoOfShares = 50, PortfolioId = 1, Price = Convert.ToDecimal(60.10), Symbol = "SAG"
            });
            context.Trades.Add(new Trade {
                Action = "SELL", NoOfShares = 500, PortfolioId = 2, Price = Convert.ToDecimal(600.10), Symbol = "ABG"
            });
            context.SaveChanges();
        }
        public void GetAll_Return_Valu()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <ExchangeContext>()
                          .UseInMemoryDatabase(databaseName: "GetPortfolio")
                          .Options;

            using (var context = new ExchangeContext(options))
            {
                var trade = new List <Trade>
                {
                    new Trade
                    {
                        Action     = "Buy",
                        NoOfShares = 302,
                        Id         = 2,
                        Price      = 2332
                    }
                };

                context.Portfolios.Add(new Portfolio
                {
                    Id    = 1,
                    Name  = "Adewale Johnson",
                    Trade = trade
                });
                context.SaveChanges();
                //Act
                IPortfolioRepository repo = new PortfolioRepository(context);
                var result = repo.GetAll();
                //Assert
                Assert.NotNull(result);
            }
        }
        public void ProcessExecutionReports(List <ExecutionReport> reports)
        {
            reports.ForEach(x => x.SeqNum = SeqNum++);

            _db.ExecutionReports.AddRange(reports);
            var transaction = _db.Database.BeginTransaction();

            try
            {
                _db.SaveChanges();
                using (var connection = _rabbitConnection.CreateConnection())
                    using (var channel = connection.CreateModel())
                    {
                        channel.ExchangeDeclare(exchange: "execution-reports", type: "fanout", durable: true, autoDelete: false);

                        channel.BasicPublish(
                            exchange: "execution-reports",
                            routingKey: OrderBook.Symbol,
                            basicProperties: null,
                            body: Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(reports)));
                    }
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                Recover(); // orderbook is in a state that we either couldn't persist, or send msg on rabbit. we need to roll it back from db
                Console.WriteLine(e);
                throw;
            }
        }
예제 #14
0
        public IActionResult Create(long idSender, long idReceiver, [FromBody] Discussion item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            _context.discussions.Add(item);
            var objSender = _context.users.Find(idSender);

            objSender.Discussions.Add(item);
            var objReceiver = _context.users.Find(idReceiver);

            objReceiver.Discussions.Add(item);

            _context.SaveChanges();
            return(CreatedAtRoute("GetDiscussion", new { id = item.Id }, item));
        }
예제 #15
0
        public void AddConversation(Conversation conversation)
        {
            if (!_exchangeContext.Users.Any(u => u.Id.Equals(conversation.RecipientId)))
            {
                return;
            }

            bool conversationExist = _exchangeContext.Conversations.Any(c =>
                                                                        (c.RecipientId.Equals(conversation.RecipientId) && c.SenderId.Equals(conversation.SenderId)) ||
                                                                        (c.RecipientId.Equals(conversation.SenderId) && c.SenderId.Equals(conversation.RecipientId)));

            if (conversationExist)
            {
                return;
            }

            _exchangeContext.Conversations.Add(conversation);
            _exchangeContext.SaveChanges();
        }
예제 #16
0
        public void UpdateStockPrice(int id, decimal newPrice)
        {
            var stock = _exchangeContext.Stocks.FirstOrDefault(s => s.Id == id);

            if (stock != null)
            {
                stock.Price = newPrice;
                _exchangeContext.SaveChanges();
            }
        }
        public IActionResult AssociateToUser(long id, [FromBody] DomaineCompetence item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            var obj = _context.users.Find(id);

            obj.DomaineCompetences.Add(item);
            _context.SaveChanges();
            return(CreatedAtRoute("GetDomaine", new { id = item.Id }, item));
        }
예제 #18
0
 public void exchangeContextInit(ExchangeContext context)
 {
     context.Portfolios.Add(new Portfolio {
         Name = "John Doe", Trade = null
     });
     context.Trades.Add(new Trade {
         Symbol = "REL", NoOfShares = 50, Price = 5000, PortfolioId = 1, Action = "BUY"
     });
     context.Trades.Add(new Trade {
         Symbol = "REL", NoOfShares = 100, Price = 10000, PortfolioId = 1, Action = "BUY"
     });
     context.SaveChanges();
 }
예제 #19
0
        public IActionResult Create(long id, [FromBody] Message item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            _context.messages.Add(item);
            var obj = _context.discussions.Find(id);

            obj.Messages.Add(item);
            _context.SaveChanges();
            return(CreatedAtRoute("GetMessage", new { id = item.Id }, item));
        }
        public IActionResult Create(long id, [FromBody] Notification item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            _context.notifications.Add(item);
            var obj = _context.users.Find(id);

            obj.Notifications.Add(item);
            _context.SaveChanges();
            return(CreatedAtRoute("GetNotification", new { id = item.Id }, item));
        }
예제 #21
0
        public void AddAuctionOffer(AuctionOffer auctionOffer)
        {
            if (_exchangeContext.Auctions.Any(a => a.Id == auctionOffer.AuctionId && a.PredictedEndDate < DateTime.Now))
            {
                return;
            }

            if (_exchangeContext.AuctionOffers.Any(a => a.AuctionId == auctionOffer.Id && a.Price >= auctionOffer.Price))
            {
                return;
            }

            _exchangeContext.AuctionOffers.Add(auctionOffer);
            _exchangeContext.SaveChanges();
        }
        private ExchangeContext GetContextWithData()
        {
            var options = new DbContextOptionsBuilder <ExchangeContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;
            var dbContext = new ExchangeContext(options);

            var share =
                new HourlyShareRate {
                Id = 1, Rate = 90, Symbol = "REL", TimeStamp = DateTime.Now
            };

            dbContext.Add(share);
            dbContext.SaveChanges();

            return(dbContext);
        }
예제 #23
0
        private void ProcessExecutionReports(List <ExecutionReport> reports)
        {
            reports.ForEach(x => x.SeqNum = _orderbookService.SeqNum++);
            _repository.ExecutionReports.AddRange(reports);
            _repository.SaveChanges();
            using (var connection = _rabbitConnection.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.ExchangeDeclare(exchange: "execution-reports", type: "fanout", durable: false, autoDelete: false);

                    channel.BasicPublish(
                        exchange: "execution-reports",
                        routingKey: _orderbookService.OrderBook.Symbol,
                        basicProperties: null,
                        body: Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(reports)));
                }
        }
예제 #24
0
        private void Make(ExchangeContext dbContext)
        {
            var deal = new List <Order> {
                Buy, Sell
            };

            Price = deal.OrderBy(o => o.Date).First().Price;
            Size  = deal.Select(o => o.Number).Min();

            foreach (Order order in deal)
            {
                order.Number -= Size;
            }

            dbContext.Add(this);
            dbContext.SaveChanges();

            new Transaction(_dbContext).Try();
        }
예제 #25
0
        public void TradeAnalysis_Does_Not_Return_Null(string symbol)
        {
            //Arrange
            var options = new DbContextOptionsBuilder <ExchangeContext>()
                          .UseInMemoryDatabase(databaseName: "GetTradeAnalysis")
                          .Options;

            using (var context = new ExchangeContext(options))
            {
                context.Trades.Add(new Trade
                {
                    Symbol      = "REL",
                    Action      = "BUY",
                    Id          = 1,
                    NoOfShares  = 200,
                    PortfolioId = 3,
                    Price       = 343
                });
                context.Trades.Add(
                    new Trade
                {
                    Symbol      = "KEL",
                    Action      = "SELL",
                    Id          = 2,
                    NoOfShares  = 100,
                    PortfolioId = 2,
                    Price       = 232
                }
                    );
                context.SaveChanges();
                //Act
                ITradeRepository repo = new TradeRepository(context);
                var result            = repo.GetTradeAnalysis(symbol);
                //Assert
                Assert.NotNull(result);
            }
        }
예제 #26
0
        public User Create(User user, string password)
        {
            // validation
            if (string.IsNullOrWhiteSpace(password))
            {
                throw new AppException("Password is required");
            }

            if (_context.Users.Any(x => x.Username == user.Username))
            {
                throw new AppException("Username \"" + user.Username + "\" is already taken");
            }

            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(password, out passwordHash, out passwordSalt);

            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            _context.Users.Add(user);
            _context.SaveChanges();

            return(user);
        }
예제 #27
0
 public void AddAuction(Auction auction)
 {
     _exchangeContext.Auctions.Add(auction);
     _exchangeContext.SaveChanges();
 }
 public void SaveChanges()
 {
     db.SaveChanges();
 }