//Priimami parametrai - vektorius
        //Grąžinamas rezultatas - vektorius ir vėliava (flag), ar vektorius buvo pakeistas
        //
        //Funkcija paklausia vartotojo, ar jis norės pakeisti vektoriuje klaidas. Jei vartotojas nori,
        //tuomet klaidos pakeičiamos ir grąžinamas pakeistas vektorius su vėliava, kad vektorius buvo keistas.
        //Jei vartotojas nenori, grąžinamas paduotas vektorius ir vėliava, kad vektorius nekeistas.
        public static Queue <int> ChangeErrors(Queue <int> vector, out bool changed)
        {
            Console.WriteLine("Do you want to change made errors?" + Environment.NewLine +
                              "1 - Yes" + Environment.NewLine +
                              "2 - No");
            var input  = Console.ReadLine();
            var choice = int.Parse(input);

            if (choice == 2)
            {
                changed = false;
                return(vector);
            }
            else
            {
                changed = true;
                Console.Write("Enter at what positions bits should be changed (separate by semicolon)" + Environment.NewLine +
                              "Example to change bits at 1, 5 and 6th positions: 1;5;6" + Environment.NewLine);
                input = Console.ReadLine();
                var errorPositionStringList = input.Split(';');
                var errorPositionList       = errorPositionStringList.Select(positionString => int.Parse(positionString)).ToList();
                var vectorAsList            = ErrorController.ChangeErrors(vector.ToList(), errorPositionList);
                var changedVector           = ConvertingHelper.ConvertListToQueue(vectorAsList);
                return(changedVector);
            }
        }
 public TimeTableService(IDocumentStoreRepository dsr, TimeService timeService, ConvertingHelper convertingHelper, StopTimesService stopTimesService, DownloadHelper downloadHelper)
 {
     _documentStoreRepository = dsr;
     _timeService             = timeService;
     _convertingHelper        = convertingHelper;
     _stopTimesService        = stopTimesService;
     _downloadHelper          = downloadHelper;
 }
        public async Task <Unit> Handle(FileExportQuery request, CancellationToken cancellationToken)
        {
            var storageInfo = await _storageRepository.GetStorageInfo();

            SerializableStorageInfo serializableStorageInfo = ConvertingHelper.GetSerializableStorageInfo(storageInfo);
            await _fileRepository.ExportFile(serializableStorageInfo, request.DestinationPath, request.Format);

            return(Unit.Value);
        }
Esempio n. 4
0
        static async Task Main(string[] args)
        {
            var logger               = _container.GetService <ILogger <Program> >();
            var consolePrinter       = _container.GetService <IConsolePrinter>();
            var controller           = _container.GetService <IController>();
            var mediator             = _container.GetService <IMediator>();
            var consoleFlagParser    = new ConsoleFlagParser();
            var consoleCommandParser = new ConsoleCommandParser(consoleFlagParser);

            try
            {
                await mediator.Send(new InitializeStorageCommand());

                var argsFlags   = consoleFlagParser.Parse(args);
                var credentials = GetCredentials(argsFlags);
                var isAuthQuery = new IsAuthenticatedQuery(credentials.Login, credentials.Password);

                if (!(await mediator.Send(isAuthQuery)))
                {
                    throw new ArgumentException("Incorrect login or password");
                }
                consolePrinter.PrintAuthenticationSuccessful();

                var command = new StorageCommand();
                while (command.CommandType != StorageCommands.Exit)
                {
                    try
                    {
                        command = GetCommand(consoleCommandParser, consolePrinter);
                        await controller.ExecuteConsoleCommand(command);
                    }
                    catch (AggregateException agEx)
                    {
                        foreach (var innerEx in agEx.InnerExceptions)
                        {
                            string logMessage = ConvertingHelper.GetLogMessage(innerEx.Message, innerEx.StackTrace);
                            logger.LogError(logMessage);
                            consolePrinter.PrintErrorMessage(innerEx.Message);
                        }
                    }
                    catch (Exception ex)
                    {
                        string logMessage = ConvertingHelper.GetLogMessage(ex.Message, ex.StackTrace);
                        logger.LogError(logMessage);
                        consolePrinter.PrintErrorMessage(ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                string logMessage = ConvertingHelper.GetLogMessage(ex.Message, ex.StackTrace);
                logger.LogError(logMessage);
                consolePrinter.PrintErrorMessage(ex.Message);
                Environment.Exit(-1);
            }
        }
        //Nieko nepriima
        //Grąžinamas rezultatas - vektorius
        //
        //Funkcija paprašo vartotojo įvesti vektorių ir grąžina jį kaip bitų eilę
        public static Queue <int> InputVector()
        {
            Console.WriteLine("Input the vector (made of 0s and 1s) to encode and press enter:" + Environment.NewLine +
                              "Example: 1010");
            var input        = Console.ReadLine();
            var charBitArray = input.ToCharArray();
            var vector       = ConvertingHelper.ConvertListToQueue(charBitArray);

            return(vector);
        }
        //Nieko nepriima
        //Grąžinamas rezultatas - vektorius
        //
        //Funkcija paprašo vartotojo įvesti paveiksliuko pavadinimą, nuskaito paveiksliuką kaip baitus
        //paverčia juos į vektorių (bitų eilę) ir grąžina
        public static Queue <int> ReadImageFile()
        {
            Console.WriteLine("Only .jpg files are supported." + Environment.NewLine +
                              "Enter name of the image file (with extension):");
            var fileName = Console.ReadLine();
            var bytes    = FileController.ReadFileBytes(fileName);
            var queue    = ConvertingHelper.ConvertBytesToIntQueue(bytes);

            return(queue);
        }
Esempio n. 7
0
        private async Task ExecuteConsoleCommandGetUserInfo(Options options)
        {
            var getUserQuery          = new GetUserInfoQuery(options);
            var userInfoResponceModel = await _mediator.Send(getUserQuery);

            var userInfoViewModel = new UserInfoViewModel
            {
                CreationDate = ConvertingHelper.GetDateString(userInfoResponceModel.CreationDate),
                Login        = userInfoResponceModel.Login,
                UsedStorage  = ConvertingHelper.GetSizeString(userInfoResponceModel.UsedStorage)
            };

            _consolePrinter.PrintUserInformation(userInfoViewModel);
        }
        //Nieko nepriima
        //Grąžinamas rezultatas - vektorius
        //
        //Funkcija paprašo vartotojo įvesti tekstą, jį paverčia į bitų eilę ir grąžina
        public static Queue <int> InputText()
        {
            Console.WriteLine("Input the text to encode and press enter.");
            var input = Console.ReadLine();
            var sb    = new StringBuilder();

            foreach (var c in input)
            {
                sb.Append(Convert.ToString(c, 2).PadLeft(8, '0'));
            }
            var bitCharArray   = sb.ToString().ToCharArray();
            var preparedVector = ConvertingHelper.ConvertListToQueue(bitCharArray);

            return(preparedVector);
        }
        //Priimami parametrai - vektorius, paveiksliuko pavadinimas
        //Nieko negrąžina
        //
        //Funkcija bando išsaugoti vektorių kaip paveiksliuką ir informuoja vartotoją apie tai, ar saugojimas pavyko.
        //Jei saugojimas pavyko, nurodo vartotojui, kokiu vardu galima rasti išsaugotą paveiksliuko failą.
        //Jei nepavyko, informuoja apie tai.
        public static void SaveImage(Queue <int> vector, string imageName)
        {
            var byteArray = ConvertingHelper.ConvertIntQueueToByteArray(vector);

            Console.WriteLine();
            try
            {
                FileController.SaveImageFile(byteArray, imageName);
                Console.WriteLine("Successfully saved." + Environment.NewLine +
                                  "Image can be found at project folder with the name '" + imageName + ".jpg'");
            }
            catch (Exception)
            {
                Console.WriteLine("Saving failed.");
            }
        }
Esempio n. 10
0
        private async Task ExecuteConsoleCommandFileUpload(Options options)
        {
            var fileUploadCommand = new FileUploadCommand(options);
            var storageFile       = await _mediator.Send(fileUploadCommand);

            FileUploadViewModel uploadViewModel = new FileUploadViewModel
            {
                FilePath  = fileUploadCommand.FilePath,
                FileName  = Path.GetFileName(fileUploadCommand.FilePath),
                FileSize  = ConvertingHelper.GetSizeString(storageFile.Size),
                Extension = storageFile.Extension
            };

            LogInformationMessage($"File \"{fileUploadCommand.FilePath}\" has been uploaded");
            _consolePrinter.PrintFileUploadedSuccessful(uploadViewModel);
        }
Esempio n. 11
0
        private async Task ExecuteConsoleCommandDirectoryInfo(Options options)
        {
            var getDirectoryInfoQuery = new GetDirectoryInfoQuery(options);
            var directoryInfo         = await _mediator.Send(getDirectoryInfoQuery);

            var directoryInfoViewModel = new DirectoryInfoViewModel()
            {
                CreationDate     = ConvertingHelper.GetDateString(directoryInfo.CreationDate),
                ModificationDate = ConvertingHelper.GetDateString(directoryInfo.ModificationDate),
                Login            = directoryInfo.Login,
                Name             = directoryInfo.Name,
                Path             = directoryInfo.Path,
                Size             = ConvertingHelper.GetSizeString(directoryInfo.Size)
            };

            _consolePrinter.PrintDirectoryInfo(directoryInfoViewModel);
        }
Esempio n. 12
0
        private async Task ExecuteConsoleCommandFileInfo(Options options)
        {
            var fileInfoQuery         = new GetFileInfoQuery(options);
            var fileInfoResponseModel = await _mediator.Send(fileInfoQuery);

            FileInfoViewModel fileInfoViewModel = new FileInfoViewModel
            {
                FileName        = fileInfoResponseModel.FileName,
                Extension       = fileInfoResponseModel.Extension,
                CreationDate    = ConvertingHelper.GetDateString(fileInfoResponseModel.CreationDate),
                FileSize        = ConvertingHelper.GetSizeString(fileInfoResponseModel.FileSize),
                DownloadsNumber = fileInfoResponseModel.DownloadsNumber,
                Login           = fileInfoResponseModel.Login
            };

            _consolePrinter.PrintFileInfo(fileInfoViewModel);
        }
Esempio n. 13
0
        //Priimami parametrai - kanalas, užkoduotojas ir dekoduotojas
        //Nieko negrąžina
        //
        //Funkcija, vykdanti teksto scenarijų. Perskaito vartotojo įvestą klaidos tikimybę, tekstą, paverčia jį į vektorių ir
        // 1) užkoduoją jį, siunčia kanalu, dekoduoja ir atvaizduoja ekrane
        // 2) siunčia kanalu ir atvaizduoja ekrane
        private static void TextScenario(Channel channel, Encoder encoder, Decoder decoder)
        {
            var errorChance       = InputOutputController.InputErrorChance();
            var inputVector       = InputOutputController.InputText();
            var copyOfInputVector = ConvertingHelper.CopyVector(inputVector);

            var encodedVector         = encoder.Encode(inputVector);
            var receivedEncodedVector = channel.SendThroughChannel(encodedVector, errorChance);
            var decodedVector         = decoder.Decode(receivedEncodedVector);
            var decodedText           = ConvertingHelper.ConvertVectorToText(decodedVector);

            InputOutputController.PrintText("Decoded text: ", decodedText);

            var receivedInputVector = channel.SendThroughChannel(copyOfInputVector, errorChance);
            var plainText           = ConvertingHelper.ConvertVectorToText(receivedInputVector);

            InputOutputController.PrintText("Plain text, received after sending from channel: ", plainText);
        }
Esempio n. 14
0
        static void ConfigureServices(IDocumentStoreRepository documentStoreRepository, IPublicTransportRepository publicTransportRepository)
        {
            var converter         = new Converter();
            var filterHelper      = new FilterHelper();
            var helperTimeService = new TimeService();
            var convertingHelper  = new ConvertingHelper(converter, filterHelper, documentStoreRepository);
            var stopTimesService  = new StopTimesService(documentStoreRepository, publicTransportRepository);
            var downloadHelper    = new DownloadHelper(documentStoreRepository, helperTimeService, publicTransportRepository);
            var timeTableService  = new TimeTableService(documentStoreRepository, helperTimeService, convertingHelper, stopTimesService, downloadHelper);

            var polandPublicHoliday    = new PolandPublicHoliday();
            var dateChecker            = new DateChecker(polandPublicHoliday);
            var stopTimesFetcher       = new StopTimesFetcher(dateChecker, documentStoreRepository);
            var minuteTimeTableBuilder = new MinuteTimeTableBuilder(stopTimesFetcher);
            var minuteTimeTableService = new MinuteTimeTableService(minuteTimeTableBuilder, documentStoreRepository);

            UpdateTimeTableService.Init(timeTableService, minuteTimeTableService);
        }
Esempio n. 15
0
        //Priimami parametrai - kanalas, užkoduotojas ir dekoduotojas
        //Nieko negrąžina
        //
        //Funkcija, vykdanti paveiksliuko scenarijų. Nuskaito klaidos tikimybę, paverčia nurodytą paveiksliuką į bitus,
        //pasilieka techninę informaciją ir
        //1) likusius bitus užkoduoja, siunčia kanalu, dekoduoja, prideda techninę informaciją ir bando atvaizduoti faile
        //2) likusius bitus siunčia kanalu, prideda techninę informaciją ir bando atvaizduoti file
        private static void ImageScenario(Channel channel, Encoder encoder, Decoder decoder)
        {
            var errorChance = InputOutputController.InputErrorChance();
            var vector      = InputOutputController.ReadImageFile();

            vector = channel.SendJPGTechnicalDataSafely(vector);
            var copyOfInputVector = ConvertingHelper.CopyVector(vector);

            var encodedVector         = encoder.Encode(vector);
            var receivedEncodedVector = channel.SendThroughChannel(encodedVector, errorChance);
            var decodedVector         = decoder.Decode(receivedEncodedVector);

            decodedVector = channel.AddJPGTechnicalData(decodedVector);
            InputOutputController.SaveImage(decodedVector, "decodedImage");

            var receivedInputVector = channel.SendThroughChannel(copyOfInputVector, errorChance);

            receivedInputVector = channel.AddJPGTechnicalData(receivedInputVector);
            InputOutputController.SaveImage(receivedInputVector, "notEncodedImage");
        }
Esempio n. 16
0
        /// <summary>
        /// Prepares simulated input data as string
        /// </summary>
        protected virtual string PrepareSimulatedData()
        {
            StringBuilder inputData = new StringBuilder();
            StringBuilder tempLine  = new StringBuilder();

            Receivers.ToList().ForEach(r => inputData.Append(r.Location).Append(PublicFields.PositionSeparator));
            inputData = inputData.Trim(PublicFields.PositionSeparator);
            inputData.Append('\n');
            var times = ConvertingHelper.ConvertPointsToPropagationTimes(Receivers, Points);

            foreach (var timeLine in times)
            {
                tempLine.Clear();
                foreach (var time in timeLine)
                {
                    tempLine.Append(time.ToString("0.00000000", CultureInfo.InvariantCulture)).Append(PublicFields.PositionSeparator);
                }
                tempLine = tempLine.Trim(PublicFields.PositionSeparator);
                tempLine.Append('\n');
                inputData.Append(tempLine);
            }

            return(inputData.ToString());
        }
Esempio n. 17
0
        private void LogInformationMessage(string message)
        {
            string logMessage = ConvertingHelper.GetLogMessage(message, string.Empty);

            _logger.LogInformation(logMessage);
        }