Beispiel #1
0
 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();
     }
 }
Beispiel #2
0
 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)
             };
         }
     }
 }
Beispiel #4
0
        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 });
                    }
                }
            }
        }