public void Pay(string username) { var payedOrder = _unitOfWork.Repository <Order>() .FindBy(x => x.User != null && x.User.Username == username) .FirstOrDefault(x => x.IsConfirmed && !x.IsShipped); if (payedOrder == null) { throw new ValidationException("There is no order for payed", "Order"); } payedOrder.IsPayed = true; _unitOfWork.Repository <Order>().Edit(payedOrder); IObservable observable = MailServer.CreateServer(_unitOfWork); observable.NotifyObserver(payedOrder); }