示例#1
0
        public void ReceiveFile()
        {
            var stream       = fileHandler.ReadFrame(GetLength());
            var fileNameSize = BitConverter.ToInt32(stream, 0);
            var fileSize     = BitConverter.ToInt64(stream, Specification.FixedFileNameLength);

            var fileName = Encoding.UTF8.GetString(fileHandler.ReadFrame(fileNameSize));

            long parts       = SpecificationHelper.GetParts(fileSize);
            long offset      = 0;
            long currentPart = 1;

            while (fileSize > offset)
            {
                byte[] data;
                if (currentPart == parts)
                {
                    var lastPartSize = (int)(fileSize - offset);
                    data    = fileHandler.ReadFrame(lastPartSize);
                    offset += lastPartSize;
                }
                else
                {
                    data    = fileHandler.ReadFrame(Specification.MaxPacketSize);
                    offset += Specification.MaxPacketSize;
                    currentPart++;
                }
                fileHandler.Write(fileName, data);
            }
        }
示例#2
0
        private async Task ReceiveRequest(ToursRequest request)
        {
            var tours = await _tourRepository.Search(SpecificationHelper.GetSpecification(request.SearchPattern));

            _messageBusClient.SendMessage(new ToursResponse(request.RequestId, nameof(OtherSearchService))
            {
                Data = tours.Select(t => new Tour(t.Id, t.Provider.Name, t.Hotel.Name, t.RoomType.Name,
                                                  t.DepartureCity.Name, t.Airline.Name, t.DepartureDate, t.ArrivalDate, t.HotelCheckInDate, t.HotelNightCount,
                                                  t.HotelNightPriceByPerson, t.PersonMaxCount)).ToList()
            });
        }
示例#3
0
        private void ResultsFromFindings(Dictionary <string, List <MeasurementGroup> > findings)
        {
            Dictionary <string, List <MeasurementSpecification> > specsbysite = SpecificationHelper.SpecsBySite(PatientData);

            foreach (var sitename in specsbysite.Keys)
            {
                if (findings.ContainsKey(sitename))
                {
                    ResultsFromGroups(findings[sitename], specsbysite[sitename]);
                }
                else
                {
                    ResultsFromGroups(new List <MeasurementGroup>(), specsbysite[sitename]);
                }
            }
            AddCalculatedValues();
        }
示例#4
0
        public void SendFile(string path)
        {
            long   fileSize = fileHelper.GetFileSize(path);
            string fileName = fileHelper.GetFileName(path);

            if (fileSize > 104857600)
            {
                throw new BussinesLogicException("The file is too big");
            }
            var stream = Create(fileName, fileSize);

            fileHandler.WriteFrame(stream);

            fileHandler.WriteFrame(Encoding.UTF8.GetBytes(fileName));

            long parts       = SpecificationHelper.GetParts(fileSize);
            long offset      = 0;
            long currentPart = 1;

            while (fileSize > offset)
            {
                byte[] data;
                if (currentPart == parts)
                {
                    var lastPartSize = (int)(fileSize - offset);
                    data    = fileHandler.ReadData(path, offset, lastPartSize);
                    offset += lastPartSize;
                }
                else
                {
                    data    = fileHandler.ReadData(path, offset, Specification.MaxPacketSize);
                    offset += Specification.MaxPacketSize;
                }

                fileHandler.WriteFrame(data);

                currentPart++;
            }
        }