Ejemplo n.º 1
0
        /// <summary>
        /// Updates course data async
        /// </summary>
        /// <param name="course">Learning course</param>
        /// <returns></returns>
        public async Task <Result <CourseDB> > UpdateAsync(CourseDB course)
        {
            try
            {
                CourseDB deletedCourse = _context.Courses
                                         .Include(i => i.Items)
                                         .SingleOrDefault(p => p.Id.Equals(course.Id, StringComparison.OrdinalIgnoreCase));

                if (deletedCourse != null)
                {
                    //var items = deletedCourse.Items.ToArray();
                    //if (items != null)
                    //{
                    //    _context.CourseItems.RemoveRange(items);
                    //}
                    //_context.CourseItems.RemoveRange(items);
                    _context.Courses.Remove(deletedCourse);
                    course.Id = Guid.NewGuid().ToString();
                    _context.Courses.Add(course);
                    await _context.SaveChangesAsync();

                    return(Result <CourseDB> .Ok(course));
                }
                else
                {
                    return(Result <CourseDB> .Fail <CourseDB>($"Course not found."));;
                }
            }
            catch (DbUpdateConcurrencyException e)
            {
                return(Result <CourseDB> .Fail <CourseDB>($"Course can not be updated. {e.Message}"));
            }
            catch (DbUpdateException e)
            {
                return(Result <CourseDB> .Fail <CourseDB>($"Course can not be updated. Duplicate field. {e.Message}"));
            }
            catch (DbEntityValidationException e)
            {
                return(Result <CourseDB> .Fail <CourseDB>($"Invalid SearchCriteria. {e.Message}"));
            }
        }
Ejemplo n.º 2
0
        public async Task <Result <BookmarkDB> > AddAsync(BookmarkDB bookmark)
        {
            try
            {
                bookmark.Id = Guid.NewGuid().ToString();
                _context.Bookmarks.Add(bookmark);
                await _context.SaveChangesAsync().ConfigureAwait(false);

                return(Result <BookmarkDB> .Ok(bookmark));
            }
            catch (DbUpdateConcurrencyException e)
            {
                return(Result <BookmarkDB> .Fail <BookmarkDB>($"Cannot save bookmark. {e.Message}"));
            }
            catch (DbUpdateException e)
            {
                return(Result <BookmarkDB> .Fail <BookmarkDB>($"Cannot save bookmark. Duplicate field. {e.Message}"));
            }
            catch (DbEntityValidationException e)
            {
                return(Result <BookmarkDB> .Fail <BookmarkDB>($"Invalid bookmark. {e.Message}"));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates search query
        /// </summary>
        /// <param name="query">search query</param>
        /// <returns></returns>
        public async Task <Result <SearchQueryDB> > AddAsync(SearchQueryDB query)
        {
            try
            {
                query.Id      = Guid.NewGuid().ToString();
                query.Created = DateTime.Now;
                _context.SearchQueries.Add(query);
                await _context.SaveChangesAsync().ConfigureAwait(false);

                return(Result <SearchQueryDB> .Ok(query));
            }
            catch (DbUpdateConcurrencyException e)
            {
                return(Result <SearchQueryDB> .Fail <SearchQueryDB>($"Cannot save SearchQuery. {e.Message}"));
            }
            catch (DbUpdateException e)
            {
                return(Result <SearchQueryDB> .Fail <SearchQueryDB>($"Cannot save SearchQuery. Duplicate field. {e.Message}"));
            }
            catch (DbEntityValidationException e)
            {
                return(Result <SearchQueryDB> .Fail <SearchQueryDB>($"Invalid SearchQuery. {e.Message}"));
            }
        }