예제 #1
0
        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);
        }
예제 #2
0
        /// <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));
        }