public ContentDE AddContent(ContentDto contentDto)
        {
            ContentDE content = _mapper.Map <ContentDE>(contentDto);

            if (!_courseRepository.CourseExists(contentDto.CourseId))
            {
                throw new AppException("CourseId does not exist");
            }

            UserDE user = _userRepository.GetUser(contentDto.CreatedBy);

            if (user == null || !user.Role.Equals("lecturer", StringComparison.OrdinalIgnoreCase))
            {
                throw new AppException("Staff " + contentDto.CreatedBy + " does not exist");
            }

            if (!String.IsNullOrEmpty(contentDto.FileName) && String.IsNullOrEmpty(contentDto.Url))
            {
                throw new AppException("Url is empty for " + contentDto.FileName);
            }

            content.ContentId = new Guid();
            content.CreatedOn = DateTime.Now;

            _context.tbl_content.Add(content);
            _context.SaveChanges();

            return(content);
        }
        public PostDE CreatePost(PostDto postDto)
        {
            PostDE post = _mapper.Map <PostDE>(postDto);

            if (!_userRepository.UserExists(postDto.CreatedBy))
            {
                throw new AppException("UserId " + postDto.CreatedBy + " does not exist");
            }

            post.PostId    = new Guid();
            post.CreatedOn = DateTime.Now;
            post.isEdited  = false;

            if (postDto.CourseFolderId.Count > 0)
            {
                CreatePostFolder(postDto.PostId, postDto.CourseFolderId);
            }

            _context.tbl_db_post.Add(post);
            _context.SaveChanges();

            if (postDto.CourseFolderId != null)
            {
                CreatePostFolder(post.PostId, postDto.CourseFolderId);
            }

            return(post);
        }
        public UserDE Create(UserCreationDto user)
        {
            // default password when admin creates a user
            if (string.IsNullOrWhiteSpace(user.Password))
            {
                user.Password = "******";
            }

            // validation
            if (_context.tbl_user.Any(x => x.UserName == user.UserName))
            {
                throw new AppException("Username \"" + user.UserName + "\" is already taken");
            }

            if (user.Email != null)
            {
                if (_context.tbl_user.Any(x => x.Email == user.Email))
                {
                    throw new AppException("Email \"" + user.Email + "\" is already taken");
                }
            }

            if (user.PhoneNo == null)
            {
                if (_context.tbl_user.Any(x => x.PhoneNo == user.PhoneNo))
                {
                    throw new AppException("Phone number \"" + user.PhoneNo + "\" is already taken");
                }
            }

            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(user.Password, out passwordHash, out passwordSalt);

            UserDE newUser = new UserDE
            {
                UserId       = new Guid(),
                UserName     = user.UserName,
                PasswordHash = passwordHash,
                PasswordSalt = passwordSalt,
                Email        = user.Email,
                PhoneNo      = user.PhoneNo,
                Role         = user.Role
            };

            _context.tbl_user.Add(newUser);
            _context.SaveChanges();

            return(newUser);
        }
Пример #4
0
        public ChatDE SaveChat(ChatDto chatDto)
        {
            ChatDE chat = _mapper.Map <ChatDE>(chatDto);

            chat.ChatId   = new Guid();
            chat.DateTime = DateTime.Now;

            _context.tbl_chat.Add(chat);
            _context.SaveChanges();

            return(chat);
        }
        public CourseDE CreateCourse(CourseDto courseDto)
        {
            // validation
            if (string.IsNullOrWhiteSpace(courseDto.CourseCode))
            {
                throw new AppException("Course Code is required");
            }

            if (_context.tbl_course.Any(x => x.CourseCode == courseDto.CourseCode))
            {
                throw new AppException("Course Code \"" + courseDto.CourseCode + "\" is unavailable");
            }

            UserDE user = _userRepository.GetUsers(new List <Guid>(new Guid[] { courseDto.CreatedBy })).FirstOrDefault();

            if (user == null || string.Equals(user.Role, "student", StringComparison.OrdinalIgnoreCase))
            {
                throw new AppException("User \"" + courseDto.CreatedBy + "\" does not exist");
            }

            CourseDE course = new CourseDE();

            course           = _mapper.Map <CourseDto, CourseDE>(courseDto);
            course.CourseId  = new Guid();
            course.CreatedOn = DateTime.Now;

            _context.tbl_course.Add(course);
            _context.SaveChanges();

            return(course);
        }