public void PlaceOrder(int orderId) { try { //dobaviti neophodne korisnicke podatke int userId = userLogger.GetLoggedUserId(); string userEmail = userLogger.GetUserEmail(userId); //proveriti dostupnost proizvoda bool productAvailable = productChecker.CheckProductAvailability(orderId); //ukoliko su svi proizvodi dostupni skinuti proizvode sa stanja, sacuvati porudzbinu u bazi i poslati mejl potvrde if (productAvailable) { stockManager.TakeOffStock(orderId); //skidanje sa lagera order.SaveOrderToDB(orderId, userId); //cuvanje porudzbine u bazi emailSender.SendEmail(userEmail, "Order created successfully", "Your order was created successfully. You can use the orderId=" + orderId + " to track your order."); //slanje mejla potvrde } else { throw new Exception("Some products are not available"); //neki proizvod nije dostupan } } catch (Exception ex) { if (ex.Message.Equals("Some products are not available")) { order.RemoveFromDB(orderId); //porudzbina sa svim proizvodima se uklanja iz baze stockManager.PutOnStock(orderId); //vracanje starog stanja na lageru } errorLogger.LogError(ex.Message); //logovanje greske throw ex; } }