Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }