Пример #1
0
        private void PopulateCategories()
        {
            // to-do -- must use a config file
            string[] categoriesNames = new string[] { "Education", "Software", "Sport" };
            foreach (var item in categoriesNames)
            {
                Category category = new Category
                {
                    Name = item
                };

                _context.Categories.Add(category);
            }

            _context.SaveChanges();
        }
        public async Task <OperationStatus> DeletePresentation(string presentationName, string userId)
        {
            var opResult = new OperationStatus();

            var upList       = _context.UserPresentations.Where(up => up.UserId == userId);
            var singledOutUP = await upList.Where(up => _context.Presentations.Any(p => p.Id == up.PresentationId && p.Name == presentationName))
                               .Include(up => up.Presentation).ToListAsync();

            if (singledOutUP.Count == 1)
            {
                var up           = singledOutUP.First();
                var presentation = up.Presentation;
                _context.UserPresentations.Remove(up);
                var rows = await _context.SaveChangesAsync();

                if (rows <= 0)
                {
                    return(new OperationStatus
                    {
                        ErrorMessageIfAny = "Error while trying to update the database."
                    });
                }

                if (!await _context.UserPresentations.AnyAsync(u => u.PresentationId == presentation.Id))
                {
                    var presentationTags = _context.PresentationTags.Where(pt => pt.PresentationId == presentation.Id).ToList();
                    _context.Presentations.Remove(presentation);
                    _context.PresentationTags.RemoveRange(presentationTags);
                    _context.SaveChanges();

                    return(await _filesRepository.DeleteFileWithId(presentation.FileID));
                }
            }
            else
            {
                opResult.ErrorMessageIfAny = "File not found";
            }
            return(opResult);
        }