public SignalrService() { connection = new HubConnection(url); hubProxy = connection.CreateHubProxy("ordersHub"); hubProxy.On("UpdateOrders", () => UpdateOrders?.Invoke()); connection.Start(); }
public void Update_orders() { var supplier = DataMother.CreateSupplier(); var newClient = DataMother.TestClient(); var client = DataMother.CreateTestClientWithAddressAndUser(); var user = client.Users[0]; var address = client.Addresses[0]; user.AvaliableAddresses.Add(address); var query = new UpdateOrders(newClient, user, address); var order = new ClientOrder(user, supplier.Prices[0]); var product = new Product(session.Load <Catalog>(DataMother.CreateCatelogProduct())); var line = new OrderLine(order, product, 100, 1); Save(supplier, product, line, order); query.Execute(session); session.Refresh(order); Assert.That(order.Client, Is.EqualTo(newClient)); }
private void UpdateOrder_Click(object sender, RoutedEventArgs e) { UpdateOrders updateorder = new UpdateOrders(); pageload(updateorder); }
private void ItemOrdersView_EnabledChanged(object sender, EventArgs e) { // Update list UpdateOrders?.Invoke(this, EventArgs.Empty); }
public void MoveUserOrAddress(uint clientId, uint userId, uint addressId, uint legalEntityId, bool moveAddress) { var newClient = DbSession.Load <Client>(clientId); var address = DbSession.Get <Address>(addressId); var user = DbSession.Get <User>(userId); Client oldClient = null; if (user != null) { oldClient = user.Client; } if (address != null) { oldClient = address.Client; } var legalEntity = DbSession.Get <LegalEntity>(legalEntityId); if (legalEntity == null) { legalEntity = newClient.Orgs().Single(); } // Если нужно перенести вместе с пользователем, // адрес привязан только к этому пользователю и у пользователя нет других адресов, // тогда переносим пользователя if ((user != null && user.AvaliableAddresses.Count > 1) || (address != null && address.AvaliableForUsers.Count > 1)) { if (moveAddress) { Error("Адрес доставки не может быть перемещен, т.к. имеет доступ к нему подключены пользователи"); RedirectUsingRoute("deliveries", "Edit", new { id = address.Id }); return; } else { Error("Пользователь не может быть перемещен т.к. имеет доступ к адресам доставки"); RedirectUsingRoute("users", "Edit", new { id = user.Id }); return; } } if (user != null && user.AvaliableAddresses.Any(a => a.AvaliableForUsers.Count > 1)) { Error("Пользователь не может быть перемещен т.к. подключен к адресу который связан с другими пользователями"); RedirectUsingRoute("users", "Edit", new { id = user.Id }); return; } if (address != null) { user = address.AvaliableForUsers.SingleOrDefault(); } if (user != null) { address = user.AvaliableAddresses.SingleOrDefault(); } AuditRecord log = null; var query = new UpdateOrders(newClient, user, address); if (user != null) { log = user.MoveToAnotherClient(DbSession, newClient, legalEntity); } if (address != null) { log = address.MoveToAnotherClient(DbSession, newClient, legalEntity); } query.Execute(DbSession); DbSession.Save(log); if (address != null) { Mail().AddressMoved(address, oldClient, address.OldValue(a => a.LegalEntity)); } if (user != null) { Mail().UserMoved(user, oldClient, user.OldValue(u => u.Payer)); } if (moveAddress) { Notify("Адрес доставки успешно перемещен"); RedirectUsingRoute("deliveries", "Edit", new { id = address.Id }); } else { Notify("Пользователь успешно перемещен"); RedirectUsingRoute("users", "Edit", new { id = user.Id }); } //нужно сохранить изменения, иначе oldClient.Refresh(); не зафиксирует их DbSession.Flush(); DbSession.Refresh(oldClient); if (oldClient.Users.Count == 0 && oldClient.Addresses.Count == 0 && oldClient.Enabled) { oldClient.Disabled = true; Mail().EnableChanged(oldClient); DbSession.Save(AuditRecord.StatusChange(oldClient)); } DbSession.Save(oldClient); }