コード例 #1
0
        public async Task <ArticleUserSetting> CreateArticleUserSetting(ArticleUserSetting articleUserSetting)
        {
            await _context.ArticleUserSettings.AddAsync(articleUserSetting);

            await _context.SaveChangesAsync();

            return(articleUserSetting);
        }
コード例 #2
0
        public async Task <ArticleUserSetting> GetArticleUserSettings(int articleId, int environmentId)
        {
            ArticleUserSetting articleUserSettings = await _context.ArticleUserSettings
                                                     .FirstOrDefaultAsync(aus => aus.ArticleId == articleId &&
                                                                          aus.EnvironmentId == environmentId);

            return(articleUserSettings);
        }
コード例 #3
0
        public async Task <long> GetArticleLifetime(string barcode, int environmentId)
        {
            ArticleUserSetting userSettings = await _context.ArticleUserSettings
                                              .Include(aus => aus.Article)
                                              .FirstOrDefaultAsync(aus => aus.Article.Barcode == barcode &&
                                                                   aus.EnvironmentId == environmentId);

            return(userSettings?.UsualLifetime ?? 0);
        }
コード例 #4
0
        public async Task <IActionResult> GetArticleUserSettings(int articleId, int environmentId)
        {
            if (!await _authService.IsPermitted(User, environmentId))
            {
                return(Unauthorized());
            }

            ArticleUserSetting aus = await _repo.GetArticleUserSettings(articleId, environmentId);

            return(aus == null?Ok(new ArticleUserSettingDto()) : Ok(aus));
        }
コード例 #5
0
        public async Task <StockEntryValue> AddStockEntry(StockEntryValue entryValues, long usualLifetime)
        {
            StockEntry stockEntry = await _context.StockEntries
                                    .Include(se => se.Article).ThenInclude(a => a.ArticleUserSettings)
                                    .FirstOrDefaultAsync(se => se.EnvironmentId == entryValues.EnvironmentId &&
                                                         se.ArticleId == entryValues.ArticleId);

            if (stockEntry == null)
            {
                stockEntry = new StockEntry()
                {
                    EnvironmentId = entryValues.EnvironmentId,
                    ArticleId     = entryValues.ArticleId
                };
                await _context.StockEntries.AddAsync(stockEntry);

                await _context.StockEntryValues.AddAsync(entryValues);

                entryValues.StockEntry = stockEntry;
            }
            else
            {
                StockEntryValue existingEntryValues = await _context.StockEntryValues
                                                      .FirstOrDefaultAsync(sev => sev.ArticleId == entryValues.ArticleId &&
                                                                           sev.ExpireDate == entryValues.ExpireDate &&
                                                                           sev.EnvironmentId == entryValues.EnvironmentId &&
                                                                           sev.IsOpened == false);

                if (existingEntryValues == null)
                {
                    await _context.StockEntryValues.AddAsync(entryValues);

                    entryValues.StockEntry = stockEntry;
                }
                else
                {
                    existingEntryValues.AmountOnStock += entryValues.AmountOnStock;
                }
            }

            ArticleUserSetting articleUserSetting = await _context.ArticleUserSettings
                                                    .Include(aus => aus.Article)
                                                    .FirstOrDefaultAsync(aus => aus.Article.Id == entryValues.ArticleId);

            articleUserSetting.UsualLifetime = usualLifetime;

            await _context.SaveChangesAsync();

            return(entryValues);
        }
コード例 #6
0
        public async Task <IActionResult> CreateArticleUserSettings(ArticleUserSettingDto articleUserSettingDto)
        {
            if (!await _authService.IsPermitted(User, articleUserSettingDto.EnvironmentId,
                                                PermissionFlags.IsOwner | PermissionFlags.CanScan))
            {
                return(Unauthorized());
            }

            var articleUserSetting = _mapper.Map <ArticleUserSetting>(articleUserSettingDto);
            ArticleUserSetting articleUserSettingCreated = await _repo.CreateArticleUserSetting(articleUserSetting);

            var dto = _mapper.Map <ArticleUserSettingDto>(articleUserSettingCreated);

            return(CreatedAtRoute(nameof(GetArticleUserSettings), new
            {
                controller = "Articles",
                articleId = articleUserSettingCreated.ArticleId,
                environmentId = articleUserSettingCreated.EnvironmentId
            }, dto));
        }
コード例 #7
0
        public async Task <IActionResult> UpdateArticle(UpdateArticleDto update)
        {
            if (!await _authService.IsPermitted(User, update.ArticleUserSettings.EnvironmentId))
            {
                return(Unauthorized());
            }

            Article article = await _repo.GetArticle(update.Article.Id);

            ArticleUserSetting articleUserSettings = await _repo.GetArticleUserSettings(update.Article.Id, update.ArticleUserSettings.EnvironmentId);

            _mapper.Map(update.Article, article);
            _mapper.Map(update.ArticleUserSettings, articleUserSettings);

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

            throw new Exception("Failed to update article");
        }