public override WebSocketMessage ProcessMessage(WebSocketMessage model)
        {
            if (model.Message != null)
            {
                using (var dbContext = new LynexDbContext())
                {
                    foreach (var switchModel in model.Message)
                    {
                        var @switch = dbContext.Set <Switch>().Find(switchModel.Id.ToString());
                        if (@switch != null)
                        {
                            @switch.Live = (bool)switchModel.Live;
                            dbContext.Entry(@switch).State = EntityState.Modified;
                            dbContext.Set <Switch>().Attach(@switch);
                            dbContext.Entry(@switch).Property("Live").IsModified = true;
                            model.BroadcastType = WebSocketBroadcastType.Web;
                        }
                    }

                    dbContext.SaveChanges();
                    model.BroadcastType = WebSocketBroadcastType.Web;
                }
            }
            else
            {
                model.Type          = WebSocketMessageType.Error;
                model.Message       = "Live switches is null";
                model.BroadcastType = WebSocketBroadcastType.Pi;
            }

            return(model);
        }
        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));
        }
Example #3
0
        public override WebSocketMessage ProcessMessage(WebSocketMessage model)
        {
            var updatingSwitch = model.Message;

            using (var dbcontext = new LynexDbContext())
            {
                var @switch = dbcontext.Set <Switch>().Find(updatingSwitch.id.ToString());

                if (@switch != null)
                {
                    @switch.Status = (bool)updatingSwitch.status;

                    dbcontext.Entry(@switch).State = EntityState.Modified;
                    dbcontext.Set <Switch>().Attach(@switch);
                    dbcontext.Entry(@switch).Property("Status").IsModified = true;
                    dbcontext.SaveChanges();
                    model.BroadcastType = WebSocketBroadcastType.All;
                }
            }

            return(model);
        }
Example #4
0
        public override WebSocketMessage ProcessMessage(WebSocketMessage model)
        {
            if (model.Message.SwitchId != null)
            {
                using (var dbContext = new LynexDbContext())
                {
                    var @switch = dbContext.Set <Switch>().Find(model.Message.SwitchId.ToString());

                    if (@switch != null)
                    {
                        @switch.Live = (bool)model.Message.Live;
                        dbContext.Entry(@switch).State = EntityState.Modified;
                        dbContext.Set <Switch>().Attach(@switch);
                        dbContext.Entry(@switch).Property("Live").IsModified = true;
                        dbContext.SaveChanges();

                        model.BroadcastType = WebSocketBroadcastType.Web;
                    }
                    else
                    {
                        model.Type          = WebSocketMessageType.Error;
                        model.Message       = "Can not find Switch Id " + model.Message.SwitchId;
                        model.BroadcastType = WebSocketBroadcastType.Pi;
                    }
                }
            }
            else
            {
                model.Type          = WebSocketMessageType.Error;
                model.Message       = "Switch id cannot be null";
                model.BroadcastType = WebSocketBroadcastType.Pi;
            }



            return(model);
        }
        public override WebSocketMessage ProcessMessage(WebSocketMessage model)
        {
            if (model.Message.ChipId != null)
            {
                using (var dbContext = new LynexDbContext())
                {
                    var site = dbContext.Set<Site>().Find(SiteId);

                    if (site != null)
                    {
                        var status = (bool)model.Message.Status;
                        string chipId = model.Message.ChipId.ToString();

                        var items =
                            dbContext.Set<SwitchEvent>()
                                .Where(
                                    q =>
                                        q.SiteId == site.Id && q.Switch.ChipId == chipId &&
                                        q.Status == status).ToList();

                        dbContext.Set<SwitchEvent>().RemoveRange(items);

                        var @switch = dbContext
                            .Set<Switch>().FirstOrDefault(q => q.ChipId == chipId && q.SiteId == site.Id);

                        if (@switch != null)
                        {
                            @switch.Status = status;
                            dbContext.Entry(@switch).State = EntityState.Modified;
                            dbContext.Set<Switch>().Attach(@switch);

                            dbContext.Entry(@switch).Property("Status").IsModified = true;
                            model.Message = new SimplifiedSwitchModel(@switch);
                            model.BroadcastType = WebSocketBroadcastType.All;
                            dbContext.SaveChanges();
                        }
                        else
                        {
                            model.Type = WebSocketMessageType.Error;
                            model.BroadcastType = WebSocketBroadcastType.Pi;
                            model.Message = "Switch does not exist";
                        }
                        
                    }
                    else
                    {
                        model.Type = WebSocketMessageType.Error;
                        model.BroadcastType = WebSocketBroadcastType.Pi;
                        model.Message = "Site does not exist";
                    }
                }
            }
            else
            {
                model.Type = WebSocketMessageType.Error;
                model.BroadcastType = WebSocketBroadcastType.Pi;
                model.Message = "Invalid Request";
            }


            return model;
        }