Beispiel #1
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 #2
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();
        }