Exemplo n.º 1
0
        public virtual void Update()
        {
            this.updated_at = DateTime.Now;
            IRepository <River> repo = new RiverRepository();

            repo.Update(this);
        }
Exemplo n.º 2
0
        static async Task LoadStates(RiverRepository azureRepo)
        {
            var states = GetStateCodes();

            foreach (var state in states)
            {
                IDictionary <string, RiverEntity> stateRivers = new Dictionary <string, RiverEntity>();
                var data = azureRepo.GetRiverData(state.Value).Result;
                foreach (var ts in data.Value.TimeSeries)
                {
                    var river = new RiverEntity()
                    {
                        Name         = ts.SourceInfo.SiteName,
                        Latitude     = ts.SourceInfo.Geolocation.GeogLocation.Latitude,
                        Longitude    = ts.SourceInfo.Geolocation.GeogLocation.Longitude,
                        Srs          = ts.SourceInfo.Geolocation.GeogLocation.SRS,
                        RiverId      = ts.SourceInfo.SiteCode[0].Value,
                        State        = state.Key,
                        StateCode    = state.Value,
                        PartitionKey = "search",
                        ETag         = "river_Insert",
                        RowKey       = ts.SourceInfo.SiteCode[0].Value,
                        Date         = DateTime.Now
                    };
                    if (!stateRivers.ContainsKey(river.RiverId))
                    {
                        stateRivers.Add(river.RiverId, river);
                        await azureRepo.InsertRiverData(river);

                        Console.WriteLine($"{river.Name}, {river.RiverId} {river.State}");
                    }
                }
                // Console.WriteLine(state.Value);
            }
        }
Exemplo n.º 3
0
        static void LoadTableStore(RiverRepository azureFactory, List <River> rivers)
        {
            var states = rivers.Select((r, code) => r.StateCode).Distinct();

            foreach (var state in states)
            {
                var stateRivers = rivers.Where(x => x.StateCode.Equals(state));
                using (var hasher = MD5.Create())
                {
                    stateRivers.ToList().ForEach(r => {
                        var bytes   = hasher.ComputeHash(Encoding.UTF8.GetBytes($"{r.StateCode}{r.RiverId}"));
                        var builder = new StringBuilder();
                        for (var x = 0; x < bytes.Length; x++)
                        {
                            builder.Append(bytes[x].ToString("x2"));
                        }
                        r.Id = builder.ToString();
                    });
                }

                var count = azureFactory.InsertBatchData(stateRivers, state).GetAwaiter().GetResult();
            }
        }
Exemplo n.º 4
0
        public static River GetByDate(DateTime forecasted_at, int HydroPostCode)
        {
            RiverRepository repo = new RiverRepository();

            return(repo.GetByDate(forecasted_at, HydroPostCode));
        }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath(Environment.CurrentDirectory)
                         .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                         .AddEnvironmentVariables()
                         .Build()
                         .Get <RiverRepositoryConfig>();



            var account      = new CloudStorageAccountBuilder(config.StorageConnection);
            var azureFactory = new AzureStorageFactory(account);

            azureFactory.CollectionName = config.RiverTable;
            var client = new HttpClient();
            var repo   = new RiverRepository(azureFactory, client);

            repo.Register(config);

            var rivers = new List <River>();

            using (var file = new FileStream(config.RiverFile, FileMode.Open))
                using (var reader = new StreamReader(file))
                {
                    var json = reader.ReadToEnd();
                    rivers = JsonConvert.DeserializeObject <List <River> >(json);
                }
            LoadTableStore(repo, rivers);


            // rivers.ForEach(r =>
            // {
            //     r.Id = r.BuildRiverIdHash();
            // });
            // var stuff = JsonConvert.SerializeObject(rivers);
            // using(StreamWriter file = File.CreateText("../../../riverswithid.json"))
            // {
            //     JsonSerializer serializer = new JsonSerializer();
            //     serializer.Serialize(file, stuff);
            // }

            // var states = rivers.Select((r, code) => r.StateCode).Distinct();
            // foreach(var state in states)
            // {
            //     var stateRivers  = rivers.Where(x => x.StateCode.Equals(state)).Distinct();
            //     using(var hasher = MD5.Create())
            //     {
            //         stateRivers.ToList().ForEach(r =>
            //         {
            //             var bytes = hasher.ComputeHash(Encoding.UTF8.GetBytes($"{r.StateCode}{r.RiverId}"));
            //             var builder = new StringBuilder();
            //             for(var x =0; x < bytes.Length; x++)
            //             {
            //                 builder.Append(bytes[x].ToString("x2"));
            //             }
            //             r.Id = builder.ToString();
            //         });
            //     }
            //     // BuildAzureSearchIndex(stateRivers, client, config.AzureSearchAdminKey, config.AzureSearchAdminUrl).GetAwaiter().GetResult();
            // }
        }