예제 #1
0
        public void Course()
        {
            var result   = "course/1/nuevo-curso-de-javascript-y-css-3";
            var original = Slug.Course(1, "Nuevo curso de Javascript y CSS 3".Sluglify());

            Assert.IsTrue(original == result);
        }
예제 #2
0
        public ResponseHelper InsertOrUpdateBasicInformation(Course model)
        {
            var rh        = new ResponseHelper();
            var newRecord = false;

            try
            {
                using (var ctx = _dbContextScopeFactory.Create())
                {
                    if (model.Id > 0)
                    {
                        var originalCourse = _courseRepo.Single(x => x.Id == model.Id);

                        originalCourse.Name        = model.Name;
                        originalCourse.Description = model.Description;
                        originalCourse.Price       = model.Price;
                        originalCourse.CategoryId  = model.CategoryId;
                        originalCourse.Slug        = Slug.Course(model.Id, model.Name);

                        _courseRepo.Update(originalCourse);
                    }
                    else
                    {
                        newRecord = true;

                        model.AuthorId = CurrentUserHelper.Get.UserId;
                        model.Status   = Enums.Status.Pending;
                        model.Image1   = "assets/images/courses/no-image.jpg";
                        model.Image2   = model.Image1;

                        var role = _roleRepo.SingleOrDefault(x =>
                                                             x.Name == RoleNames.Teacher
                                                             );

                        var hasRole = _applicationUserRole.Find(x =>
                                                                x.UserId == model.AuthorId &&
                                                                x.RoleId == role.Id
                                                                ).Any();

                        if (!hasRole)
                        {
                            _applicationUserRole.Insert(new ApplicationUserRole
                            {
                                UserId = model.AuthorId,
                                RoleId = role.Id
                            });
                        }

                        _courseRepo.Insert(model);
                    }

                    ctx.SaveChanges();
                }

                if (newRecord)
                {
                    using (var ctx = _dbContextScopeFactory.Create())
                    {
                        // Obtenemos el registro insertado
                        var originalCourse = _courseRepo.Single(x => x.Id == model.Id);

                        originalCourse.Slug = Slug.Course(model.Id, model.Name);

                        // Actualizamos
                        _courseRepo.Update(originalCourse);

                        ctx.SaveChanges();
                    }
                }

                rh.SetResponse(true);
            }
            catch (Exception e)
            {
                logger.Error(e.Message);
                rh.SetResponse(false, e.Message);
            }

            return(rh);
        }