Beispiel #1
0
        public async Task <IActionResult> Create([Bind("Id,FirstName,LastName,DateOfBirth,MainCategory")] Author author)
        {
            if (ModelState.IsValid)
            {
                author.Id = Guid.NewGuid();
                _context.Add(author);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(author));
        }
Beispiel #2
0
        public async Task <OperationResult <Author> > UpdateAuthor(Author author)
        {
            using (CourseLibraryContext context = new CourseLibraryContext(options))
            {
                try
                {
                    var isAuthorExist = await AuthorCompiledQueries.IsAuthorExist.Invoke(context, author.Id);

                    if (!isAuthorExist)
                    {
                        return(new FailedOperationResult <Author>
                        {
                            Code = ConstOperationCodes.AUTHOR_NOT_FOUND,
                        });
                    }

                    context.Authors.Update(author);
                    await context.SaveChangesAsync();

                    return(new SuccessOperationResult <Author>
                    {
                        Code = ConstOperationCodes.AUTHOR_UPDATED,
                        Result = author,
                    });
                }
                catch (Exception e)
                {
                    logger.Error($"error in update author {e.Message}");
                    return(new FailedOperationResult <Author>
                    {
                        Code = ConstOperationCodes.FAILED_OPERATION
                    });
                }
            }
        }
Beispiel #3
0
        public async Task <OperationResult <Author> > AddAuthor(Author author)
        {
            using (CourseLibraryContext context = new CourseLibraryContext(options))
            {
                try
                {
                    bool isAuthorExisted = await AuthorCompiledQueries.IsExistSameAuthorName.Invoke(context, author.FirstName, author.LastName);

                    if (isAuthorExisted)
                    {
                        return(new FailedOperationResult <Author>
                        {
                            Code = ConstOperationCodes.AUTHOR_NAME_ALREADY_EXISTS,
                        });
                    }
                    await context.Authors.AddAsync(author);

                    await context.SaveChangesAsync();

                    return(new SuccessOperationResult <Author>
                    {
                        Code = ConstOperationCodes.AUTHOR_CREATED,
                        Result = author
                    });
                }
                catch (Exception e)
                {
                    logger.Error($"error in adding author {e.Message}");
                    return(new FailedOperationResult <Author>
                    {
                        Code = ConstOperationCodes.FAILED_OPERATION
                    });
                }
            }
        }
Beispiel #4
0
        public async Task <OperationResult <bool> > DeleteCourse(Guid courseId)
        {
            using (CourseLibraryContext context = new CourseLibraryContext(options))
            {
                try
                {
                    if (!await IsCourseExist(courseId))
                    {
                        return(new FailedOperationResult <bool>
                        {
                            Code = ConstOperationCodes.COURSE_NOT_FOUND,
                        });
                    }
                    var course = await context.Courses.FindAsync(courseId);

                    context.Courses.Remove(course);
                    await context.SaveChangesAsync();

                    return(new SuccessOperationResult <bool>
                    {
                        Code = ConstOperationCodes.COURSE_DELETED,
                        Result = true,
                    });
                }
                catch (Exception e)
                {
                    logger.Error($"error in delete course {e} {e.Message}");
                    return(new FailedOperationResult <bool>
                    {
                        Code = ConstOperationCodes.FAILED_OPERATION
                    });
                }
            }
        }
Beispiel #5
0
        public async Task <OperationResult <Course> > UpdateCourse(Course course)
        {
            using (CourseLibraryContext context = new CourseLibraryContext(options))
            {
                try
                {
                    var author = await AuthorCompiledQueries.GetAuthor.Invoke(context, course.AuthorId);

                    if (author == null)
                    {
                        return(new FailedOperationResult <Course>
                        {
                            Code = ConstOperationCodes.AUTHOR_NOT_FOUND,
                        });
                    }
                    var isCourseExist = await CoursesCompiledQueries.IsCourseExistForAuthor.Invoke(context, course.Id, course.AuthorId);

                    if (!isCourseExist)
                    {
                        return(new FailedOperationResult <Course>
                        {
                            Code = ConstOperationCodes.COURSE_NOT_FOUND
                        });
                    }
                    context.Courses.Update(course);
                    await context.SaveChangesAsync();

                    return(new SuccessOperationResult <Course>
                    {
                        Code = ConstOperationCodes.COURSE_UPDATED,
                        Result = course,
                    });
                }
                catch (Exception e)
                {
                    logger.Error($"error in updating course {e.Message}");
                    return(new FailedOperationResult <Course>
                    {
                        Code = ConstOperationCodes.FAILED_OPERATION,
                    });
                }
            }
        }
Beispiel #6
0
        public async Task <OperationResult <Course> > AddCourse(Course course)
        {
            using (CourseLibraryContext context = new CourseLibraryContext(options))
            {
                try
                {
                    bool isCourseExistWithSameName = await context.Courses.AnyAsync(c => c.Title == course.Title);

                    if (isCourseExistWithSameName)
                    {
                        return(new FailedOperationResult <Course>
                        {
                            Code = ConstOperationCodes.COURSE_NAME_ALREADY_EXISTS
                        });
                    }
                    await context.AddAsync(course);

                    await context.SaveChangesAsync();

                    return(new SuccessOperationResult <Course>
                    {
                        Code = ConstOperationCodes.COURSE_CREATED,
                        Result = course
                    });
                }

                catch (Exception e)
                {
                    logger.Error("error in adding course " + e.Message);
                    return(new FailedOperationResult <Course>
                    {
                        Code = ConstOperationCodes.FAILED_OPERATION
                    });
                }
            }
        }
 public async Task <bool> SaveAsync()
 {
     return(await _context.SaveChangesAsync() >= 0);
 }
Beispiel #8
0
        public async Task <bool> SaveAsync()
        {
            var retVal = await _context.SaveChangesAsync() >= 0;

            return(retVal);
        }