Beispiel #1
0
        public async Task <int> GetEnvironmentOwnerId(int environmentId)
        {
            BeepEnvironment environment = await _context.Environments
                                          .FirstOrDefaultAsync(e => e.Id == environmentId);

            return(environment.UserId);
        }
Beispiel #2
0
        public async Task <IEnumerable <ArticleGroup> > GetArticleGroups(int environmentId)
        {
            BeepEnvironment environment = await _context.Environments.FirstOrDefaultAsync(e => e.Id == environmentId);

            return(await _context.ArticleGroups
                   .Where(grp => grp.UserId == null || grp.UserId == environment.UserId)
                   .ToListAsync());
        }
Beispiel #3
0
        public async Task <bool> DeleteEnvironment(int envId)
        {
            BeepEnvironment environment = await _context.Environments
                                          .Include(e => e.Permissions)
                                          .FirstOrDefaultAsync(e => e.Id == envId);

            foreach (Permission permission in environment.Permissions)
            {
                _context.Permissions.Remove(permission);
            }

            _context.Environments.Remove(environment);
            return(await _context.SaveChangesAsync() > 0);
        }
        public async Task <IActionResult> AddEnvironment(int userId)
        {
            if (!this.VerifyUser(userId))
            {
                return(Unauthorized());
            }

            BeepEnvironment newEnv = await _repo.AddEnvironment(userId);

            if (newEnv == null)
            {
                return(BadRequest("Error creating environment"));
            }

            var newEnvDto = _mapper.Map <EnvironmentDto>(newEnv);

            return(Ok(newEnvDto));
        }
        public async Task <IActionResult> UpdateEnvironmentName(int envId, string newName)
        {
            if (!await _authService.IsPermitted(User, envId, PermissionFlags.IsOwner))
            {
                return(Unauthorized());
            }

            BeepEnvironment environment = await _repo.GetEnvironment(envId);

            environment.Name = newName;

            if (await _repo.SaveAll())
            {
                return(Ok());
            }

            throw new Exception("Error updating Environment name");
        }
Beispiel #6
0
        public async Task <User> CreateFirstEnvironment(User newUser)
        {
            var environment = new BeepEnvironment()
            {
                Name = $"Zu Hause von {newUser.DisplayName}", User = newUser, DefaultEnvironment = true
            };
            var permissions = new Permission()
            {
                IsOwner = true, User = newUser, Environment = environment, Serial = SerialGenerator.Generate()
            };

            await _context.AddAsync(environment);

            await _context.AddAsync(permissions);

            await _context.SaveChangesAsync();

            return(newUser);
        }
Beispiel #7
0
        public async Task <BeepEnvironment> AddEnvironment(int userId)
        {
            User owner = await _context.Users.FirstOrDefaultAsync(u => u.Id == userId);

            var newEnv = new BeepEnvironment()
            {
                Name = "Neue Umgebung", User = owner
            };
            var permission = new Permission()
            {
                IsOwner = true, Environment = newEnv, User = owner, Serial = SerialGenerator.Generate()
            };

            await _context.Permissions.AddAsync(permission);

            await _context.Environments.AddAsync(newEnv);

            return(await _context.SaveChangesAsync() > 0 ? newEnv : null);
        }
Beispiel #8
0
        protected void JoinEnvironment(string userName, string environmentName, Permission withPermission)
        {
            withPermission ??= new Permission();

            User            user = DbContext.Users.FirstOrDefault(u => u.UserName == userName);
            BeepEnvironment env  = DbContext.Environments.FirstOrDefault(e => e.Name == environmentName);

            if (user == null || env == null)
            {
                return;
            }

            withPermission.User        = user;
            withPermission.Environment = env;
            withPermission.Serial      = SerialGenerator.Generate();

            DbContext.Permissions.Add(withPermission);
            DbContext.SaveChanges();
        }
Beispiel #9
0
        /// <summary>
        /// Erstellt einen User mit Member Rolle
        /// </summary>
        /// <param name="displayName"></param>
        protected void SeedUser(string displayName)
        {
            var newUser = new User()
            {
                UserName    = displayName.ToLower().Replace(" ", ""),
                DisplayName = displayName,
                Email       = $"{displayName.ToLower().Replace(" ", "")}@abc.ch"
            };
            var newEnvironment = new BeepEnvironment()
            {
                Name = $"Zu Hause von {displayName}",
                DefaultEnvironment = true,
                User = newUser
            };

            UsrManager.CreateAsync(newUser, "P@ssw0rd").Wait();
            string         confirmationToken = UsrManager.GenerateEmailConfirmationTokenAsync(newUser).Result;
            IdentityResult result            = UsrManager.ConfirmEmailAsync(newUser, confirmationToken).Result;

            if (!result.Succeeded)
            {
                OutputWriter.WriteLine(string.Join("\n", result.Errors));
            }

            UsrManager.AddToRoleAsync(newUser, RoleNames.Member).Wait();
            DbContext.Environments.Add(newEnvironment);
            DbContext.Permissions.Add(new Permission()
            {
                IsOwner     = true,
                User        = newUser,
                Environment = newEnvironment,
                Serial      = SerialGenerator.Generate()
            });

            DbContext.SaveChanges();
        }
Beispiel #10
0
        /// <summary>
        /// Fügt einen neuen Lager eintrag hinzu
        /// </summary>
        /// <param name="artBarcode">Barcode des Artikels</param>
        /// <param name="environmentName">Name der Umgebung für die der Eintrag gelten soll</param>
        /// <param name="isOpened">true wenn geöffnet</param>
        /// <param name="amount">Anzahl an Lager</param>
        /// <param name="openedOn">Datum an dem der Artikel geöffnet wurde</param>
        /// <param name="expireDate">Ablaufdatum</param>
        /// <param name="amountRemaining">Restmenge wenn ein Artikel geöffnet wird</param>
        protected void SeedStockEntry(string artBarcode, string environmentName, bool isOpened, int amount, DateTime openedOn,
                                      DateTime expireDate, float amountRemaining)
        {
            Article         article     = DbContext.Articles.FirstOrDefault(a => a.Barcode == artBarcode);
            BeepEnvironment environment = DbContext.Environments.FirstOrDefault(en => en.Name == environmentName);

            if (article == null || environment == null)
            {
                throw new Exception("Environment oder Artikel nicht gefunden");
            }

            var stockEntry = DbContext.StockEntries
                             .FirstOrDefault(se => se.EnvironmentId == environment.Id && se.ArticleId == article.Id) ??
                             new StockEntry()
            {
                Article = article, Environment = environment
            };

            var values = new StockEntryValue()
            {
                StockEntry      = stockEntry,
                AmountOnStock   = amount,
                AmountRemaining = amountRemaining,
                ExpireDate      = expireDate,
                IsOpened        = isOpened,
                OpenedOn        = openedOn
            };

            if (stockEntry.EnvironmentId == 0)
            {
                DbContext.StockEntries.Add(stockEntry);
            }
            DbContext.StockEntryValues.Add(values);

            DbContext.SaveChanges();
        }
Beispiel #11
0
        public async Task <BeepEnvironment> GetEnvironment(int envId)
        {
            BeepEnvironment environment = await _context.Environments.FirstOrDefaultAsync(e => e.Id == envId);

            return(environment);
        }