public void UpdateLogWithOtherTypeTest() { var client = DataMother.CreateTestClientWithUser(); var user = client.Users[0]; var oldName = user.Name; user.Name += "1"; session.SaveOrUpdate(user); Flush(); var logs = session.Query <AuditRecord>().Where(l => l.ObjectId == user.Id && l.Type == LogObjectType.User).ToList(); Assert.That(logs.Implode(x => x.Message), Is.StringContaining(String.Format("$$$Изменено 'Комментарий' было '{0}' стало '{1}'", oldName, user.Name))); Assert.That(logs[0].Service.Id, Is.EqualTo(client.Id)); session.Clear(); var newClient = DataMother.TestClient(); var address = new Address() { Id = user.Id }; AuditRecord.UpdateLogs(newClient.Id, address); logs = session.Query <AuditRecord>().Where(l => l.ObjectId == user.Id && l.Type == LogObjectType.User).ToList(); Assert.That(logs.Implode(x => x.Message), Is.StringContaining(String.Format("$$$Изменено 'Комментарий' было '{0}' стало '{1}'", oldName, user.Name))); Assert.That(logs[0].Service.Id, Is.EqualTo(client.Id)); }
public virtual AuditRecord MoveToAnotherClient(ISession session, Client newOwner, LegalEntity legalEntity) { if (!newOwner.Orgs().Any(o => o.Id == legalEntity.Id)) { throw new Exception(String.Format("Не могу переместить пользователя {0} т.к. юр. лицо {1} не принадлежит клиенту {2}", this, legalEntity, newOwner)); } var regions = session.Query <Region>().ToArray(); // Если маски регионов не совпадают, добавляем записи в UserPrices для тех регионов, // которых не было у старого клиента, но они есть у нового клиента if (Client.MaskRegion != newOwner.MaskRegion) { foreach (var region in regions) { // Если этот регион есть у старого клиента, пропускаем его if ((region.Id & Client.MaskRegion) > 0) { continue; } // Если региона нет у старого клиента, но он есть у нового, // и для этого пользователя нет прайсов в этом регионе добавляем прайсы для этого региона if ((region.Id & newOwner.MaskRegion) > 0) { if (!HavePricesInRegion(session, region)) { AddPrices(session, newOwner, region); } } } } var message = String.Format("Перемещение пользователя от {0} к {1}", Client, newOwner); AuditRecord.UpdateLogs(newOwner.Id, this); Client = newOwner; RootService = newOwner; if (Payer != legalEntity.Payer) { Payer = legalEntity.Payer; } InheritPricesFrom = null; ContactGroup?.MoveTo(newOwner.ContactGroupOwner); session.Save(this); return(new AuditRecord(message, this)); }
public virtual AuditRecord MoveToAnotherClient(ISession session, Client newOwner, LegalEntity newLegalEntity) { if (!newOwner.Orgs().Any(o => o.Id == newLegalEntity.Id)) { throw new Exception(String.Format("Не могу переместить адрес {0} т.к. юр. лицо {1} не принадлежит клиенту {2}", this, newLegalEntity, newOwner)); } Maintainer.MaintainIntersection(session, newOwner, newLegalEntity); MoveAddressIntersection(session, newOwner, newLegalEntity, Client, LegalEntity); var message = String.Format("Перемещение адреса доставки от {0} к {1}", Client, newOwner); Client = newOwner; Payer = newLegalEntity.Payer; LegalEntity = newLegalEntity; ContactGroup?.MoveTo(newOwner.ContactGroupOwner); AuditRecord.UpdateLogs(newOwner.Id, this); session.Save(this); return(new AuditRecord(message, this)); }