public async Task <IActionResult> AddDevice(AddDeviceViewModel deviceData)
        {
            if (HttpContext.Session.GetInt32(UserController._UserID) < 0)
            {
                return(Redirect(UserController._LoginPath));
            }

            if (ValidateDeviceData(deviceData))
            {
                Models.Device device = new Models.Device
                {
                    IpAddress = deviceData.IpAddress,
                    Port      = deviceData.Port,
                    RoomId    = deviceData.RoomID
                };

                device = await GetDeviceData(device);

                //_context.Add(device);
                Models.Device.AddDevice(_context, device);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(OpenRoomDeviceList), new { roomID = deviceData.RoomID }));
            }

            return(View(_ViewPath + "AddDevice", deviceData));
        }
Beispiel #2
0
        public void SetupAddToRolesAsync()
        {
            Setup(x => x.AddToRolesAsync(
                      It.IsAny <User>(), It.IsAny <IEnumerable <string> >()))
            .Returns(async(User user, IEnumerable <string> roles) =>
            {
                bool error = false;
                foreach (var role in roles)
                {
                    long?roleId = (await context.Set <Role>()
                                   .FirstOrDefaultAsync(x => x.Name == role))?.Id;

                    if (roleId == null)
                    {
                        error = true;
                        break;
                    }

                    context.Add(new IdentityUserRole <long>()
                    {
                        RoleId = roleId.Value,
                        UserId = user.Id
                    });
                }

                await context.SaveChangesAsync();

                return(error ? IdentityResult.Failed() : IdentityResult.Success);
            });
        }
Beispiel #3
0
        public async Task <IActionResult> CreateRoom([Bind("Id", "Name", "HouseId")] Models.Room room)
        {
            if (HttpContext.Session.GetInt32(UserController._UserID) < 0)
            {
                return(Redirect(UserController._LoginPath));
            }

            room.HouseId = 1; // Pridedam prie pirmo namo del demo
            if (ValidateRoomData(room))
            {
                //_context.Add(room);
                Models.Room.AddRoom(_context, room);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(RoomList)));
            }


            return(View(_ViewPath + "RoomAdd", room));
        }
Beispiel #4
0
        public async Task <IActionResult> AddScenario(AddScenarioViewModel scenarioData)
        {
            if (HttpContext.Session.GetInt32(UserController._UserID) < 0)
            {
                return(Redirect(UserController._LoginPath));
            }

            if (ValidateScenarioData(scenarioData))
            {
                Models.Scenario scenario = new Models.Scenario
                {
                    TimeOfEvent = scenarioData.TimeOfEvent,
                    EventURL    = scenarioData.EventURL,
                    DeviceId    = scenarioData.DeviceId
                };

                Models.Scenario.AddScenario(_context, scenario);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Controllers.DeviceController.OpenRoomDeviceList), "Device", new { area = "Device", roomID = scenarioData.RoomID }));
            }

            return(View(_ViewPath + "AddScenario"));
        }
Beispiel #5
0
 public async Task UpdateAsync(Device device)
 {
     _dbContext.Devices.Update(device);
     await _dbContext.SaveChangesAsync();
 }
Beispiel #6
0
 public async Task <int> SaveAsync() => await _dbContext.SaveChangesAsync();
 public async Task UpdateAsync(Measurement measurement)
 {
     _dbContext.Measurements.Update(measurement);
     await _dbContext.SaveChangesAsync();
 }
Beispiel #8
0
        private async Task CreateInitialData(SmartHomeDbContext context, IDateTimeProvider dateTimeProvider)
        {
            var adminUser = new User()
            {
                Email              = "*****@*****.**",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                PasswordHash       = "asdfghjkl",
            };
            var user = new User()
            {
                Email              = "*****@*****.**",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                PasswordHash       = "asdfghjkl",
            };

            context.Add(adminUser);
            context.Add(user);

            var fileView = new Permission()
            {
                Name = "File.View"
            };
            var fileEdit = new Permission()
            {
                Name = "File.Edit"
            };
            var measurementTemperatureView = new Permission()
            {
                Name = "Measurement.Temperature.View"
            };
            var measurementTemperatureEdit = new Permission()
            {
                Name = "Measurement.Temperature.Edit"
            };

            context.Add(fileView);
            context.Add(fileEdit);
            context.Add(measurementTemperatureView);
            context.Add(measurementTemperatureEdit);

            var bathroom = new Place()
            {
                Name = "Bathroom",
                Note = "Bathroom note"
            };
            var livingRoom = new Place()
            {
                Name = "Living room"
            };

            context.Add(bathroom);
            context.Add(livingRoom);

            var adminRole = new Role()
            {
                Name           = "Admin",
                NormalizedName = "Admin"
            };
            var userRole = new Role()
            {
                Name           = "User",
                NormalizedName = "User"
            };

            context.Add(adminRole);
            context.Add(userRole);

            context.Add(new IdentityUserRole <long>()
            {
                RoleId = adminRole.Id,
                UserId = adminUser.Id
            });
            context.Add(new IdentityUserRole <long>()
            {
                RoleId = userRole.Id,
                UserId = user.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = fileView.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = fileEdit.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = measurementTemperatureView.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = measurementTemperatureEdit.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = measurementTemperatureView.Id,
                RoleId       = userRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = fileView.Id,
                RoleId       = userRole.Id
            });

            context.Add(new UserPermission()
            {
                PermissionId = measurementTemperatureEdit.Id,
                UserId       = user.Id
            });

            // enumerations
            var dht11SensorType = new SensorType()
            {
                Name        = "DHT11",
                Description = "Humidity and temperature sensor."
            };

            context.Add(dht11SensorType);
            var alkalineBatteryPowerSourceType = new BatteryPowerSourceType()
            {
                BatteryType    = BatteryType.Alkaline,
                MaximumVoltage = 4.5,
                MinimumVoltage = 3.3,
                Name           = "Alkaline 3x1.5"
            };

            context.Add(alkalineBatteryPowerSourceType);
            var sensor = new Sensor()
            {
                BatteryPowerSourceTypeId = alkalineBatteryPowerSourceType.Id,
                MinimumRequiredVoltage   = 3,
                PlaceId      = bathroom.Id,
                SensorTypeId = dht11SensorType.Id,
                Name         = "DHT11 sensor"
            };

            context.Add(sensor);

            var measurement = new TemperatureMeasurement()
            {
                MeasurementDateTime = dateTimeProvider.Now.AddYears(-3),
                PlaceId             = bathroom.Id,
                SensorId            = sensor.Id,
                Temperature         = 30
            };

            context.Add(measurement);
            measurement = new TemperatureMeasurement()
            {
                MeasurementDateTime = dateTimeProvider.Now.AddYears(-2),
                PlaceId             = livingRoom.Id,
                SensorId            = sensor.Id,
                Temperature         = 24
            };
            context.Add(measurement);

            await context.SaveChangesAsync();
        }