public void Setup()
        {
            WorkingDirectory = @"C:\ExportedData\";
            FileSystem       = new MockFileSystem(new Dictionary <string, MockFileData>
            {
                // MockFileSystem requires a trailing slash at time of writing. See: https://github.com/tathamoddie/System.IO.Abstractions/issues/208
                { WorkingDirectory, new MockDirectoryData() }
            });

            FileManager          = new FileManager(FileSystem);
            Service              = new Mock <IOrganizationService>();
            DataTransformService = new DataTransformService();
            DataReaderService    = new DataReaderService(Service.Object, FileManager);
            DataWriterService    = new DataWriterService(Service.Object, FileManager);

            Entities = new EntityCollection(new List <Entity>
            {
                new Entity("contact", Guid.NewGuid()),
                new Entity("contact", Guid.NewGuid()),
                new Entity {
                    LogicalName = "contact", Id = Guid.NewGuid(), Attributes = new AttributeCollection {
                        { "fullname", "Joe Bloggs" }
                    }
                }
            });
        }
Пример #2
0
        public void ParsesDataFromFile()
        {
            var dataBefore = new ExportedData
            {
                BaseBu     = Guid.NewGuid(),
                RecordSets = new List <ExportEntity>
                {
                    new ExportEntity {
                        Id = Guid.NewGuid()
                    },
                    new ExportEntity {
                        Id = Guid.NewGuid()
                    },
                    new ExportEntity {
                        Id = Guid.NewGuid()
                    }
                }
            };

            DataWriterService.WriteDataToFile(dataBefore, WorkingDirectory);

            var dataAfter = DataReaderService.ParseDataFromFile(WorkingDirectory);

            Assert.AreEqual(3, dataAfter.RecordSets.Count);
        }
Пример #3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            //injeção de dependência dos bancos / connectionString
            Configuration = Injection.Configuration;
            var connectionString = Configuration["ConnectionStrings:SqlServer"];

            //injetando serviço do dapper
            var dapperContext    = new DapperContext(connectionString);
            var dapperRepository = new DapperRepository(dapperContext);
            var dapperService    = new DapperService(dapperRepository);

            services.AddSingleton <DapperService>(dapperService);

            //injetando serviço do entity
            var entityContext    = new EntityContext(connectionString);
            var entityRepository = new EntityRepository(entityContext);
            var entityService    = new EntityService(entityRepository);

            services.AddSingleton <EntityService>(entityService);


            //injetando serviço do datareader
            var readerContext    = new DataReaderContext(connectionString);
            var readerRepository = new DataReaderRepository(readerContext);
            var readerService    = new DataReaderService(readerRepository);

            services.AddSingleton <DataReaderService>(readerService);
        }
        static void Main(string[] args)
        {
            CultureInfo ciEn = new CultureInfo("en-US");
            CultureInfo ciHu = new CultureInfo("hu-HU");

            CultureInfo.CurrentCulture   = ciEn;
            CultureInfo.CurrentUICulture = ciEn;

            DataReaderService dataReaderService = new DataReaderService();
            //retrieving data from airports.dat
            var airportsReadFile = dataReaderService.ReadAirportsDat();

            //retrieving data from timezones.json
            var allTimeZoneInfo = dataReaderService.ReadTimeZoneInfoJson();

            var splittedAirportsData = dataReaderService.SplitAirportsData(airportsReadFile);

            var airportsSelectedData = new List <RetrievedAirportData>();

            try
            {
                airportsSelectedData = dataReaderService.GetAirportInfo(splittedAirportsData);
            }
            catch (Exception ex)
            {
                logger.Error(ex, ex.Message);
            }

            AddWordAirportToAirportNamesIfNeeded(airportsSelectedData);

            var countries = GetCountries(airportsSelectedData);

            var cities = GetCities(airportsSelectedData, countries);

            var airports = GetAirports(airportsSelectedData, cities);

            //Serialization
            Serialize(cities, "cities.json");
            Serialize(countries, "countries.json");
            Serialize(airports, "airports.json");

            var listOfCountriesByNameWithNumberOfAirports = airportsSelectedData
                                                            .OrderBy(x => x.CountryName)
                                                            .GroupBy(x => x.CountryName)
                                                            .Select(x => new
            {
                CountryName      = x.Key,
                NumberOfAirports = x.Count()
            });

            var citiesWhichHaveTheMostAirports = (airportsSelectedData.GroupBy(x => new { CityName = x.CityName, CountryName = x.CountryName }))
                                                 .OrderByDescending(x => x.Count());



            Console.ReadKey();
        }
        public void DataReaderIniTest()
        {
            string folderSource          = "DataSource/30030030-V-2019012108-R-01";
            PackageReaderService package = this.GetPackageType(folderSource);
            DataReaderService    service = new DataReaderService(package);

            Assert.False(string.IsNullOrEmpty(service.DataSourceFolder));
            Assert.Equal(folderSource, service.DataSourceFolder);
        }
Пример #6
0
 private static bool ValidationProcess(string fileToValidate)
 {
     try
     {
         DataReaderService validationService = new DataReaderService(_packageTypeInstance);
         validationService.StartValidationProcess(fileToValidate);
         return(true);
     }
     catch (Exception ex)
     {
         WriteFatalErrorInfo("Exception during validation process", ex);
         return(false);
     }
 }
Пример #7
0
        public void TestCreation()
        {
            CommonCache.Instance.InitializeDataReader(new ProjectSettings(), new EmptyLogger());
            CommonCache.Instance.InitializeDataWriter(new ProjectSettings(), new EmptyLogger());
            var reader = new DataReaderService(new MockDataReaderService(), CommonCache.Instance);

            Assert.IsInstanceOf(typeof(MockDataReaderService), reader.GetDataReader());
            Assert.DoesNotThrow(() => reader.GetTestRun(new ItemInfoDto()));
            Assert.DoesNotThrow(() => reader.GetReportSettings());
            Assert.DoesNotThrow(() => reader.GetLatestTestRun(Guid.NewGuid()));
            Assert.DoesNotThrow(() => reader.GetRun(Guid.NewGuid()));
            Assert.DoesNotThrow(() => reader.GetRunInfos());
            Assert.DoesNotThrow(() => reader.GetTestInfos(Guid.NewGuid()));
            Assert.DoesNotThrow(() => reader.GetTestOutput(new TestRunDto()));
            Assert.DoesNotThrow(() => reader.GetTestRunsFromRun(new RunDto()));
            Assert.DoesNotThrow(() => reader.GetTestScreenshots(new TestRunDto()));
            CommonCache.Instance.TearDown();
        }
Пример #8
0
        public void GetsDataFromCrm()
        {
            Service.Setup(s => s.RetrieveMultiple(It.IsAny <FetchExpression>()))
            .Returns(Entities);

            var fetch = @"<fetch distinct='false' mapping='logical' output-format='xml-platform' version='1.0'>
                            <entity name='contact'>
                                <attribute name='fullname' />
                                <attribute name='contactid' />
                               <order descending='false' attribute='fullname' />
                              <filter type='and' >
                             <condition attribute='createdon' operator='today' />
                            </filter>
                           </entity>
                          </fetch>";

            var data = DataReaderService.GetDataFromCrm(fetch);

            Assert.AreEqual(3, data.Count);
        }
        private static async Task <int> MainAsync()
        {
            var ftpHost           = ConfigurationManager.AppSettings["FtpHost"];
            var ftpUserName       = ConfigurationManager.AppSettings["FtpUserName"];
            var ftpPassword       = ConfigurationManager.AppSettings["FtpPassword"];
            var dataReaderService = new DataReaderService(ftpHost, ftpUserName, ftpPassword);

            var firebaseUrl     = ConfigurationManager.AppSettings["FirebaseUrl"];
            var firebaseSecret  = ConfigurationManager.AppSettings["FirebaseSecret"];
            var firebaseService = new FirebaseService(firebaseUrl, firebaseSecret);

            var checks = new List <Check>();
            var timer  = new Stopwatch();


            #region Fetch Data

            var getDataSuccess = true;
            var scoreboardData = new Scoreboard();

            timer.Start();
            try
            {
                scoreboardData = await dataReaderService.GetLatestScoreBoard();
            }
            catch (Exception exception)
            {
                var logger = new Logging.Logging(enabled: true);
                logger.LogException(exception, "GetLatestScoreBoard() failed");
                getDataSuccess = false;
            }
            timer.Stop();


            checks.Add(new Check
            {
                Name    = "GetData",
                Message = getDataSuccess ? "Fetched data successfully." : "Failed to fetch data. " + ConfigurationManager.AppSettings["Instructions"],
                ResponseInMilliSeconds = timer.ElapsedMilliseconds,
                Status = getDataSuccess ? StatusEnum.OK : StatusEnum.ERROR
            });
            timer.Reset();
            #endregion

            #region Update Firebase

            if (getDataSuccess)
            {
                timer.Start();
                var firebaseSuccess = true;
                try
                {
                    firebaseSuccess = await firebaseService.UpdateFirebaseScoreboard(scoreboardData);
                }
                catch (Exception exception)
                {
                    var logger = new Logging.Logging(enabled: true);
                    logger.LogException(exception, "UpdateFirebaseScoreboard() failed");
                    firebaseSuccess = false;
                }
                timer.Stop();

                checks.Add(new Check
                {
                    Name    = "UpdateFirebase",
                    Message = firebaseSuccess ? "Updated firebase successfully" : "Failed while updating firebase. " + ConfigurationManager.AppSettings["Instructions"],
                    ResponseInMilliSeconds = timer.ElapsedMilliseconds,
                    Status = firebaseSuccess ? StatusEnum.OK : StatusEnum.ERROR
                });
                timer.Reset();
            }

            #endregion

            WriteStatusXml(checks);

            var success = checks.All(c => c.Status == StatusEnum.OK);
            if (success)
            {
                Console.WriteLine("Success");
                return(0);
            }

            Console.WriteLine("Error, please refer to {0} for more info", ConfigurationManager.AppSettings["XmlUrl"]);
            return(-1);
        }
Пример #10
0
 public DataReaderController(DataReaderService _service)
 {
     Service = _service;
 }