예제 #1
0
        public async Task <bool> UpdateConfigurationAsync(MiriotConfiguration config)
        {
            var uri = new Uri(string.Format(RestUrl, ConfigurationController, config.Id));

            var json    = JsonConvert.SerializeObject(config);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            HttpResponseMessage response = null;

            response = await _client.PutAsync(uri, content);

            return(response.IsSuccessStatusCode);
        }
예제 #2
0
        public void Put(int id, [FromBody] MiriotConfiguration config)
        {
            var existing = _context.Configurations
                           .Include(u => u.Widgets)
                           .Single(c => c.Id == config.Id);

            existing.Widgets.Clear();
            _context.SaveChanges();
            existing.Widgets.AddRange(config.Widgets);

            _context.Entry(existing).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
            _context.Entry(existing).CurrentValues.SetValues(config);

            _context.SaveChanges();
        }
예제 #3
0
        protected override async Task InitializeAsync()
        {
            if (User == null)
            {
                return;
            }

            HasNoConfiguration = false;
            Configurations.Clear();

            if (User.Devices == null)
            {
                User.Devices = new List <MiriotConfiguration>();
            }

            if (!User.Devices.Any())
            {
                var config = new MiriotConfiguration()
                {
                    MiriotDeviceId = MiriotId, Name = "Miriot"
                };
                User.Devices.Add(config);
                HasNoConfiguration = true;
            }

            foreach (var d in User.Devices)
            {
                Configurations.Add(d);
            }

            SelectedConfiguration = Configurations.FirstOrDefault(e => e.MiriotDeviceId == MiriotId);

            if (SelectedConfiguration == null)
            {
                HasNoConfiguration = true;
                var config = new MiriotConfiguration()
                {
                    MiriotDeviceId = MiriotId,
                    Name           = "Miriot",
                    UserId         = User.Id
                };
                User.Devices.Add(config);
                SelectedConfiguration = await _miriotService.CreateConfiguration(config);
            }
        }
예제 #4
0
        public async Task <MiriotConfiguration> CreateConfiguration(MiriotConfiguration config)
        {
            var uri = new Uri(string.Format(RestUrl, ConfigurationController, string.Empty));

            var json    = JsonConvert.SerializeObject(config);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            HttpResponseMessage response = null;

            response = await _client.PostAsync(uri, content);

            if (response.IsSuccessStatusCode)
            {
                var result = await response.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <MiriotConfiguration>(result));
            }

            return(null);
        }
예제 #5
0
        public IActionResult Post([FromBody] MiriotConfiguration config)
        {
            try
            {
                if (config == null || !ModelState.IsValid)
                {
                    return(BadRequest());
                }
                bool itemExists = _context.Configurations.Any(c => c.Id == config.Id);
                if (itemExists)
                {
                    return(StatusCode(StatusCodes.Status409Conflict, "config already exists"));
                }

                _context.Add(config);
                _context.SaveChanges();
            }
            catch (Exception)
            {
                return(BadRequest("Could not create item"));
            }

            return(Ok(config));
        }