Esempio n. 1
0
        /// <summary>
        /// Helper method for calculating precentage of organisations stats
        /// </summary>
        /// <param name="organisationStats">Object of type organsiations stats</param>
        /// <returns>Updated organisation stats</returns>
        public OrganisationStats CalculateProcentage(OrganisationStats organisationStats)
        {
            organisationStats.Total = organisationStats.AS_ZeroToFour + organisationStats.AS_FiveToTen + organisationStats.AS_OverTen + organisationStats.ENK + organisationStats.ANDRE;

            organisationStats.ProsANDRE          = (int)Math.Round((double)(100 * organisationStats.ANDRE) / organisationStats.Total);
            organisationStats.ProsENK            = (int)Math.Round((double)(100 * organisationStats.ENK) / organisationStats.Total);
            organisationStats.Pros_AS_ZeroToFour = (int)Math.Round((double)(100 * organisationStats.AS_ZeroToFour) / organisationStats.Total);
            organisationStats.Pros_AS_FiveToTen  = (int)Math.Round((double)(100 * organisationStats.AS_FiveToTen) / organisationStats.Total);
            organisationStats.Pros_AS_OverTen    = (int)Math.Round((double)(100 * organisationStats.AS_OverTen) / organisationStats.Total);

            return(organisationStats);
        }
Esempio n. 2
0
        public async System.Threading.Tasks.Task ReadUpdatedFileForStatsReadsFileAndReturnsCorrectStatsAsync()
        {
            //Arrange
            var         filePath    = "C:\\Users\\marja\\source\\repos\\PowerCustomerReader\\PowerCustomerReaderUnitTest\\TestFiles\\MockFile.csv";
            FileService fileService = new FileService();

            //Act
            OrganisationStats result = await fileService.ReadUpdatedFileForStats(filePath);

            //Assert
            Assert.IsInstanceOfType(result, typeof(OrganisationStats));
            Assert.AreEqual(result.ENK, 0);
            Assert.AreEqual(result.AS_OverTen, 37);
        }
Esempio n. 3
0
        public void CalculateProcentageReturnsCorrectTotal()
        {
            //Arrange
            var organisationStats = new OrganisationStats()
            {
                ENK           = 100,
                ANDRE         = 100,
                AS_ZeroToFour = 100,
                AS_FiveToTen  = 100,
                AS_OverTen    = 100
            };

            FileService fileService = new FileService();

            //Act
            var result = fileService.CalculateProcentage(organisationStats);

            //Assert
            Assert.AreEqual(500, result.Total);
        }
Esempio n. 4
0
        /// <summary>
        /// Reads updated files and returns organisations stats
        /// </summary>
        /// <param name="filePath">where to read file</param>
        /// <returns>List of organsiations stats</returns>
        public async Task <OrganisationStats> ReadUpdatedFileForStats(string filePath)
        {
            var organisationStats = new OrganisationStats();

            using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.Asynchronous))
                using (var reader = new StreamReader(stream, Encoding.UTF8))
                {
                    string line;
                    while ((line = await reader.ReadLineAsync()) != null)
                    {
                        string[] lineSplit = line.Split(";");

                        int numberOfEmp = Int32.Parse(lineSplit[0]);

                        if (lineSplit[1].Equals("AS"))
                        {
                            if (numberOfEmp <= 5)
                            {
                                organisationStats.AS_ZeroToFour += numberOfEmp;
                            }
                            else if (numberOfEmp <= 10 && numberOfEmp > 5)
                            {
                                organisationStats.AS_FiveToTen += numberOfEmp;
                            }
                            else if (numberOfEmp > 10)
                            {
                                organisationStats.AS_OverTen += numberOfEmp;
                            }
                        }
                        else if (lineSplit[1] == "ENK")
                        {
                            organisationStats.ENK += numberOfEmp;
                        }
                        else
                        {
                            organisationStats.ANDRE += numberOfEmp;
                        }
                    }
                }
            return(CalculateProcentage(organisationStats));
        }
        /// <summary>
        /// Checks if file exists
        /// uses fileservice to read updated file
        /// Updates ViewModel with updated stats
        /// </summary>
        /// <param name="hostingEnviroment">Enviroment</param>
        /// <returns>StatsViewModel</returns>
        public async Task <IActionResult> Index([FromServices] IHostingEnvironment hostingEnviroment)
        {
            string            filePath          = $"{hostingEnviroment.WebRootPath}\\files\\oppdatert-po-kunder.csv";
            OrganisationStats organisationStats = new OrganisationStats();
            FileService       fileService       = new FileService();

            if (System.IO.File.Exists(filePath))
            {
                organisationStats = await fileService.ReadUpdatedFileForStats(filePath);
            }
            else
            {
                organisationStats = null;
            }

            StatsViewModel model = new StatsViewModel()
            {
                organisationStats = organisationStats
            };

            return(View(model));
        }