42 lines
1.6 KiB
C#
Executable File
42 lines
1.6 KiB
C#
Executable File
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using FluentValidation;
|
|
using Nop.Data;
|
|
using Nop.Plugin.Misc.SimpleLMS.Areas.Admin.Models;
|
|
using Nop.Plugin.Misc.SimpleLMS.Domains;
|
|
using Nop.Services.Localization;
|
|
using Nop.Web.Framework.Validators;
|
|
|
|
namespace Nop.Plugin.Misc.SimpleLMS.Areas.Admin.Validators
|
|
{
|
|
public partial class LessonValidator : BaseNopValidator<LessonModel>
|
|
{
|
|
public LessonValidator(ILocalizationService localizationService, INopDataProvider dataProvider)
|
|
{
|
|
RuleFor(x => x.DisplayOrder).NotNull().GreaterThan(0);
|
|
RuleFor(x => x.Name).NotEmpty();
|
|
RuleFor(x => x.LessonType).NotEmpty();
|
|
|
|
RuleFor(x => x.AttachmentType).NotEmpty().When(x => x.LessonType == LessonType.Document);
|
|
RuleFor(x => x.Attachments).Must(coll => coll.Any()).When(x => x.LessonType == LessonType.Document);
|
|
|
|
RuleFor(x => x.CourseId).NotNull().GreaterThan(0);
|
|
|
|
RuleFor(x => x.Duration).NotNull().When(x => x.LessonType == LessonType.Video)
|
|
.GreaterThan(0).When(x => x.LessonType == LessonType.Video);
|
|
|
|
RuleFor(x => x.IsFreeLesson).NotNull();
|
|
RuleFor(x => x.LessonContents).Length(1, 4000).When(x => x.LessonType == LessonType.Text);
|
|
RuleFor(x => x.SectionId).NotNull();
|
|
RuleFor(x => x.VideoIdFromProvider).NotEmpty().When(x => x.LessonType == LessonType.Video);
|
|
|
|
RuleFor(x => x.VideoType).NotEmpty().When(x => x.LessonType == LessonType.Video);
|
|
|
|
SetDatabaseValidationRules<Lesson>(dataProvider);
|
|
}
|
|
}
|
|
}
|