public virtual void Update() { this.updated_at = DateTime.Now; IRepository <River> repo = new RiverRepository(); repo.Update(this); }
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); } }
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(); } }
public static River GetByDate(DateTime forecasted_at, int HydroPostCode) { RiverRepository repo = new RiverRepository(); return(repo.GetByDate(forecasted_at, HydroPostCode)); }
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(); // } }