protected override string ProcessMessage(SiteStatusModel model) { var result = new WebSocketResultViewModel(); using (var dbContext = new LynexDbContext()) { var site = dbContext.Set <Site>().Find(SiteId); if (site != null) { result.StatusCode = 110; result.Message = "Success"; var switches = new List <SimplifiedSwitchModel>(); foreach (var @switch in site.Switches.OrderBy(q => q.Order)) { switches.Add(new SimplifiedSwitchModel(@switch)); } result.Result = switches; } else { result.StatusCode = 500; result.Message = "Site does not exist"; } } return(JsonConvert.SerializeObject(result)); }
protected override string ProcessMessage(SwitchUpdatedModel model) { var result = new WebSocketResultViewModel(); if (model.ChipId != null) { using (var dbContext = new LynexDbContext()) { var site = dbContext.Set <Site>().Find(SiteId); if (site != null) { var items = dbContext.Set <SwitchEvent>() .Where( q => q.SiteId == site.Id && q.Switch.ChipId == model.ChipId && q.Status == model.Status).ToList(); dbContext.Set <SwitchEvent>().RemoveRange(items); var @switch = dbContext .Set <Switch>().FirstOrDefault(q => q.ChipId == model.ChipId && q.SiteId == site.Id); if (@switch != null) { @switch.Status = model.Status; dbContext.Entry(@switch).State = EntityState.Modified; dbContext.Set <Switch>().Attach(@switch); dbContext.Entry(@switch).Property("Status").IsModified = true; result.Message = "Success"; result.StatusCode = 200; result.Result = new SimplifiedSwitchModel(@switch); dbContext.SaveChanges(); } else { result.StatusCode = 500; result.Message = "Switch does not exist"; } } else { result.StatusCode = 500; result.Message = "Site does not exist"; } } } else { result.StatusCode = 600; result.Message = "Invalid Request"; } return(JsonConvert.SerializeObject(result)); }
protected override string ProcessMessage(PiAuthenticationModel model) { var result = new WebSocketResultViewModel(); if (model.SiteId == null || model.AuthType == null || model.RequestType == null || model.Rnd == null) { result.StatusCode = 600; result.Message = "Invalid Request"; } else if (model.RequestType != "auth") { result.StatusCode = 601; result.Message = "Not authenticated yet"; } else { using (var dbContext = new LynexDbContext()) { var site = dbContext.Set <Site>().Find(model.SiteId); if (site != null) { var queryStr = "authType=" + model.AuthType + "&requestType=" + model.RequestType + "&rnd=" + model.Rnd + "&siteId=" + model.SiteId + "&key=" + site.Secret; if (model.AuthType == "md5") { var calculatedMd5 = queryStr.GetMD5(); if (string.Equals(model.Code, calculatedMd5, StringComparison.CurrentCultureIgnoreCase)) { IsAuthenticated = true; result.StatusCode = 101; result.Message = "Success"; } else { result.StatusCode = 300; result.Message = "Authentication Failed"; } } else { result.StatusCode = 400; result.Message = "Unsupported authentication"; } } else { result.StatusCode = 500; result.Message = "Site does not exist"; } } } return(JsonConvert.SerializeObject(result)); }