public void GetWarehousesResponseTest() { var message = new GetWarehousesResponse(); Assert.AreEqual(message.Kind, MessageKind.GetWarehousesResponse); var warehouse = new WarehouseDTO(); warehouse.WarehouseID = Guid.NewGuid(); warehouse.Title = "Title"; var item = new FinancialGroupWarehouseMapItemDTO(); item.FinancialGroupID = warehouse.WarehouseID; item.FinancialGroupWarehouseMapID = Guid.NewGuid(); item.FinancialGroupID = Guid.Empty; message.Warehouses.Add(warehouse); message.MapItems.Add(item); var serializer = new ProtocolSerializer(ProtocolVersion.Version10); var data = serializer.Serialize(message); Assert.IsNotNull(data); var savedMessage = serializer.DeserializeGetWarehousesResponse(data); Assert.IsNotNull(savedMessage); Assert.AreEqual(serializer.GetMessageInfoOrNull(data).Kind, MessageKind.GetWarehousesResponse); Assert.AreEqual(savedMessage.Warehouses.Count, 1); Assert.AreEqual(savedMessage.MapItems.Count, 1); var savedWarehouse = savedMessage.Warehouses[0]; var savedItem = savedMessage.MapItems[0]; Assert.AreEqual(savedWarehouse.WarehouseID, savedWarehouse.WarehouseID); Assert.AreEqual(savedWarehouse.Title, savedWarehouse.Title); Assert.AreEqual(savedItem.WarehouseID, item.WarehouseID); Assert.AreEqual(savedItem.FinancialGroupID, item.FinancialGroupID); Assert.AreEqual(savedItem.FinancialGroupWarehouseMapID, item.FinancialGroupWarehouseMapID); }
/// <summary> /// Обработчик запроса на получение складов и их связей с фингруппами. /// </summary> /// <param name="serializer">Сериализатор протокола.</param> /// <param name="postData">Данные запроса.</param> /// <param name="hostAddress">Адрес клиента.</param> /// <returns>Результат.</returns> private string ProcessGetWarehousesRequest(ProtocolSerializer serializer, string postData, string hostAddress) { var request = serializer.DeserializeGetWarehousesRequest(postData); _logger.InfoFormat( "Получен запрос на получение информации по складам и их связей с фингруппами от пользователя {0} с клиента {1}", request.UserID, hostAddress); var userDomainID = CheckSignedMessage(request); var warehouses = RemontinkaServer.Instance.DataStore.GetWarehouses(userDomainID); var response = new GetWarehousesResponse(); foreach (var warehouse in warehouses) { response.Warehouses.Add(new WarehouseDTO { WarehouseID = warehouse.WarehouseID, Title = warehouse.Title }); } //foreach var items = RemontinkaServer.Instance.DataStore.GetFinancialGroupWarehouseMapItems(userDomainID); foreach (var groupWarehouseMapItem in items) { response.MapItems.Add(new Protocol.SynchronizationMessages.FinancialGroupWarehouseMapItemDTO { WarehouseID = groupWarehouseMapItem.WarehouseID, FinancialGroupID = groupWarehouseMapItem.FinancialGroupID, FinancialGroupWarehouseMapID = groupWarehouseMapItem.FinancialGroupWarehouseMapID, }); } //foreach return(serializer.Serialize(response)); }