public static void SaveWeather(WeatherObject wo, WeatherTranslation wt) { using (PokeEntities db = new PokeEntities()) { WeatherValue wv = new WeatherValue() { DateTime = wo.DateTime.ToUniversalTime(), WeatherIcon = wo.WeatherIcon, IconPhrase = wo.IconPhrase, IsDaylight = wo.IsDaylight, TempValue = wo.Temperature.Value, TempUnit = wo.Temperature.Unit, WindSpeed = wo.Wind.Speed.Value, WindUnit = wo.Wind.Speed.Unit, GustSpeed = wo.WindGust.Speed.Value, GustUnit = wo.WindGust.Speed.Unit, PrecipitationProbability = wo.PrecipitationProbability, RainProbability = wo.RainProbability, SnowProbability = wo.SnowProbability, IceProbability = wo.IceProbability, CloudCover = wo.CloudCover, RainAmt = wo.Rain.Value, SnowAmt = wo.Snow.Value, IceAmt = wo.Ice.Value, PgoIconId = wt.PgoWeather.Id, DateAdded = DateTime.Now.ToUniversalTime() }; db.WeatherValues.Add(wv); db.SaveChanges(); } }
public static void RemoveStale() { using (PokeEntities db = new PokeEntities()) { var oldDate = DateTime.Now.AddDays(-3).Date; var oldValues = db.WeatherValues.Where(v => v.DateAdded < oldDate); var oldEntries = db.WeatherEntries.Where(e => e.DateCreated < oldDate); db.WeatherValues.RemoveRange(oldValues); db.WeatherEntries.RemoveRange(oldEntries); db.SaveChanges(); } }
public static void Initialize() { using (PokeEntities db = new PokeEntities()) { var admin = db.PokeUsers.Where(u => u.Role == "admin").FirstOrDefault(); if (admin == null) { admin = new PokeUser() { Name = Resources.AdminUsername, Id = Resources.AdminUsername, Role = "admin", PwdHash = Crypto.HashPassword(Resources.AdminPassword) }; } } }
public override void OnAuthorization(HttpActionContext actionContext) { // Check if value passed in header if (actionContext.Request.Headers.Authorization == null) { Trace.WriteLine("no authorization header found"); actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized); } else { // get header values string authToken = actionContext.Request.Headers.Authorization.Parameter; Trace.WriteLine("auth token: " + authToken); // decode values string decoded = Encoding.UTF8.GetString(Convert.FromBase64String(authToken)); string[] credsArray = decoded.Split(':'); string username = credsArray[0]; string password = credsArray[1]; // validate user using (PokeEntities db = new PokeEntities()) { PokeUser usr = db.PokeUsers.Find(username); Trace.WriteLine("User found: " + usr.Name); bool valid = false; if (usr != null) { valid = Crypto.VerifyHashedPassword(usr.PwdHash, password); } if (valid == false) { // not validated Trace.WriteLine("User not validated"); actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized); } else { Trace.WriteLine("User Validated"); Thread.CurrentPrincipal = new GenericPrincipal((IIdentity) new GenericIdentity(username), new string[] { usr.Role }); } } } }