Exemplo n.º 1
0
        public async Task <ResponseEntity> RegisterUser(UserJiraModel modelVm)
        {
            try
            {
                UserJira entity = await _useJiraRepository.GetSingleByConditionAsync("email", modelVm.email);

                if (entity != null) // Kiểm tra email đã được sử dụng bởi tài khoản khác chưa
                {
                    return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.EMAIL_EXITST));
                }

                entity         = _mapper.Map <UserJira>(modelVm);
                entity.avatar  = "https://ui-avatars.com/api/?name=" + entity.name;
                entity.alias   = FuncUtilities.BestLower(modelVm.name);
                entity.deleted = false;
                //entity.gender = ;
                //entity.Id = Guid.NewGuid().ToString();
                // Mã hóa mật khẩu
                //entity.MatKhau = BCrypt.Net.BCrypt.HashPassword(modelVm.MatKhau);
                //entity.avatar = "/static/user-icon.png";
                entity = await _useJiraRepository.InsertAsync(entity);


                if (entity == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.SIGNUP_ERROR));
                }

                return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.SIGNUP_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.SIGNUP_ERROR));
            }
        }
Exemplo n.º 2
0
        public async Task <ResponseEntity> getCommentByTask(int taskId)
        {
            try
            {
                var result = _commentRepository.GetMultiByConditionAsync("taskId", taskId).Result;

                List <CommentViewModel> lstComment = new List <CommentViewModel>();
                foreach (var item in result)
                {
                    var user = _userJira.GetSingleByConditionAsync("id", item.userId).Result;

                    CommentViewModel cmt = new CommentViewModel();
                    cmt.alias          = item.alias;
                    cmt.contentComment = FuncUtilities.Base64Decode(item.contentComment);
                    cmt.id             = item.id;
                    cmt.taskId         = item.taskId;
                    cmt.userId         = item.userId;
                    cmt.user.userId    = user.id;
                    cmt.user.avatar    = user.avatar;
                    cmt.user.name      = user.name;


                    lstComment.Add(cmt);
                }
                return(new ResponseEntity(StatusCodeConstants.OK, lstComment, MessageConstants.MESSAGE_SUCCESS_200));
            }catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, "Comment is not found", MessageConstants.INSERT_ERROR));
            }
        }
        public async Task <ResponseEntity> updateDescription(UpdateDescription model, string token)
        {
            var task = _taskRepository.GetSingleByConditionAsync("taskId", model.taskId).Result;

            if (task == null)
            {
                return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "task is not found!", MessageConstants.MESSAGE_ERROR_404));
            }

            UserJira user = _userService.getUserByToken(token).Result;
            List <KeyValuePair <string, dynamic> > columns = new List <KeyValuePair <string, dynamic> >();

            columns.Add(new KeyValuePair <string, dynamic>("taskId", task.taskId));
            columns.Add(new KeyValuePair <string, dynamic>("userId", user.id));

            var projectUser = _taskUserRepository.GetMultiByListConditionAndAsync(columns).Result;

            if (projectUser.Count() == 0)
            {
                return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "user is not assign!", MessageConstants.MESSAGE_ERROR_404));
            }

            task.description = FuncUtilities.Base64Encode(model.description);



            await _taskRepository.UpdateAsync("taskId", task.taskId, task);

            return(new ResponseEntity(StatusCodeConstants.OK, "Update task successfully!", MessageConstants.UPDATE_SUCCESS));
        }
Exemplo n.º 4
0
        public async Task <ResponseEntity> updateComment(CommentModelUpdate commentUpdate, string token)
        {
            try
            {
                var     userJira = _userService.getUserByToken(token);
                Comment cmt      = _commentRepository.GetSingleByConditionAsync("id", commentUpdate.id).Result;
                if (cmt == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, "Comment is not found !", MessageConstants.MESSAGE_ERROR_500));
                }
                if (cmt.userId != userJira.Result.id)
                {
                    return(new ResponseEntity(StatusCodeConstants.FORBIDDEN, "403 Forbidden !", MessageConstants.MESSAGE_ERROR_500));
                }

                cmt.contentComment = FuncUtilities.Base64Encode(commentUpdate.contentComment);
                cmt.alias          = FuncUtilities.BestLower(cmt.contentComment);

                await _commentRepository.UpdateAsync(cmt.id, cmt);

                cmt.contentComment = FuncUtilities.Base64Decode(cmt.contentComment);

                return(new ResponseEntity(StatusCodeConstants.OK, cmt, MessageConstants.UPDATE_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, "Update fail", MessageConstants.UPDATE_ERROR));
            }
        }
        public ViewModelToEntityProfile()
        {
            /*=========== HỆ THỐNG =============*/
            CreateMap <QuyenViewModel, Quyen>();
            CreateMap <NhomQuyenViewModel, NhomQuyen>()
            .ForMember(entity => entity.DanhSachQuyen,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachQuyen)));

            /*=========== LỘ TRÌNH =============*/
            CreateMap <LoTrinhViewModel, LoTrinh>()
            .ForMember(entity => entity.DanhSachKhoaHoc,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachKhoaHoc)))
            .ForMember(entity => entity.DanhSachLopHoc,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachLopHoc)));

            /*=========== LỚP HỌC =============*/
            CreateMap <LopHocViewModel, LopHoc>()
            .ForMember(entity => entity.NgayBatDau,
                       m => m.MapFrom(modelVm => FuncUtilities.ConvertStringToDate(modelVm.NgayBatDau)))
            .ForMember(entity => entity.NgayKetThuc,
                       m => m.MapFrom(modelVm => FuncUtilities.ConvertStringToDate(modelVm.NgayKetThuc)))
            .ForMember(entity => entity.DanhSachGiangVien,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachGiangVien)))
            .ForMember(entity => entity.DanhSachHocVien,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachHocVien)))
            .ForMember(entity => entity.DanhSachMentor,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachMentor)));

            /*=========== KHÓA HỌC =============*/
            CreateMap <KhoaHocViewModel, KhoaHoc>()
            .ForMember(entity => entity.DanhSachLoTrinh,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachLoTrinh)))
            .ForMember(entity => entity.DanhSachChuongHoc,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachChuongHoc)));

            /*=========== CHƯƠNG HỌC =============*/
            CreateMap <ChuongHocViewModel, ChuongHoc>()
            .ForMember(entity => entity.DanhSachBaiHoc,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachBaiHoc)));

            /*=========== BÀI HỌC =============*/
            CreateMap <BaiHocViewModel, BaiHoc>()
            .ForMember(entity => entity.DanhSachCauHoi,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DanhSachCauHoi)));
            CreateMap <LoaiBaiHocViewModel, LoaiBaiHoc>();

            /*=========== TÀI KHOẢN =============*/
            CreateMap <DangKyViewModel, NguoiDung>();
            CreateMap <SuaNguoiDungViewModel, NguoiDung>();
            CreateMap <NguoiDungViewModel, NguoiDung>();

            /*=========== KHÁCH HÀNG =============*/
            CreateMap <KhachHangViewModel, KhachHang>()
            .ForMember(entity => entity.ThongTinKH,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.ThongTinKH)))
            .ForMember(entity => entity.DiaChi,
                       m => m.MapFrom(modelVm => JsonConvert.SerializeObject(modelVm.DiaChi)));
        }
 public async Task <IActionResult> Post([FromBody] BaiTapViewModel model)
 {
     if (model.NoiDung.Contains("pdf") || model.NoiDung.Contains("zip") || model.NoiDung.Contains("xlsl") || model.NoiDung.Contains("png") || model.NoiDung.Contains("jpg"))
     {
         model.NoiDung = FuncUtilities.BestLower(model.NoiDung);
         //string typeFile = model.NoiDung.Split('-')
     }
     return(await _baiTapService.InsertAsync(model));
 }
        public async Task <ResponseEntity> createTask(taskInsert model, string token)
        {
            UserJira user = _userService.getUserByToken(token).Result;
            Project  pro  = _projectRepository.GetSingleByConditionAsync("id", model.projectId).Result;

            if (pro == null)
            {
                return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "Project is not found!", MessageConstants.MESSAGE_ERROR_404));
            }
            if (pro.creator != user.id)
            {
                return(new ResponseEntity(StatusCodeConstants.FORBIDDEN, "User is unthorization!", MessageConstants.MESSAGE_ERROR_403));
            }

            string alias = FuncUtilities.BestLower(model.taskName);
            //Kiểm tra task tồn tại chưa
            var taskValid = _taskRepository.GetSingleByConditionAsync("alias", alias).Result;

            if (taskValid != null)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, "task already exists!", MessageConstants.MESSAGE_ERROR_500));
            }


            Repository.Models.Task task = new Repository.Models.Task();
            task.taskName              = model.taskName;
            task.alias                 = FuncUtilities.BestLower(model.taskName);
            task.description           = FuncUtilities.Base64Encode(model.description);
            task.statusId              = model.statusId;
            task.originalEstimate      = model.originalEstimate;
            task.timeTrackingSpent     = model.timeTrackingSpent;
            task.timeTrackingRemaining = model.timeTrackingRemaining;
            task.projectId             = model.projectId;
            task.typeId                = model.typeId;
            task.reporterId            = user.id;
            task.priorityId            = model.priorityId;
            task.deleted               = false;
            task.reporterId            = user.id;
            task = _taskRepository.InsertAsync(task).Result;

            foreach (var item in model.listUserAsign)
            {
                Task_User tu = new Task_User();
                tu.taskId  = task.taskId;
                tu.deleted = false;
                tu.userId  = item;
                await _taskUserRepository.InsertAsync(tu);
            }



            return(new ResponseEntity(StatusCodeConstants.OK, task, "create task successfully!"));
        }
Exemplo n.º 8
0
        public async Task <UserJira> getUserByToken(string tokenString)
        {
            try
            {
                string   email = FuncUtilities.parseJWTToEmail(tokenString);
                UserJira us    = await _useJiraRepository.GetSingleByConditionAsync("email", email);

                return(us);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Exemplo n.º 9
0
        private async Task <List <KhoaHoc> > GetCourseActived(int maLoTrinh, DateTime ngayBatDau)
        {
            LoTrinh loTrinh = await _loTrinhRepository.GetSingleByIdAsync(maLoTrinh);

            List <KhoaHoc> dsKhoaHoc = new List <KhoaHoc>();

            if (!string.IsNullOrEmpty(loTrinh.DanhSachKhoaHoc))
            {
                // Convert string json thành mảng
                List <dynamic> dsMaKhoaHoc = JsonConvert.DeserializeObject <List <dynamic> >(loTrinh.DanhSachKhoaHoc);
                // Lấy danh sách khóa học theo mảng id
                var listKhoaHoc = await _khoaHocRepository.GetMultiByIdAsync(dsMaKhoaHoc);

                // Sắp xếp đúng thứ tự
                foreach (dynamic idKhoaHoc in dsMaKhoaHoc)
                {
                    dsKhoaHoc.Add(listKhoaHoc.FirstOrDefault(x => x.Id == idKhoaHoc));
                }
            }

            // KIỂM TRA XEM ĐẾN NGÀY KÍCH HOẠT CHƯA
            int            demNgay = 0;
            int            soNgayTuLucKhaiGiang = FuncUtilities.TinhKhoangCachNgay(ngayBatDau);
            List <KhoaHoc> dsKhoaHocKichHoat    = new List <KhoaHoc>();

            foreach (KhoaHoc item in dsKhoaHoc)
            {
                // Nếu là khóa học kích hoạt sẵn cho học viên
                if (item.KichHoatSan && soNgayTuLucKhaiGiang >= -7)
                {
                    dsKhoaHocKichHoat.Add(item);
                }
                else
                {
                    demNgay += item.SoNgayKichHoat;
                    // Kiểm tra xem đã đến ngày kích hoạt chưa
                    // Mở khóa học mới trước 7 ngày (1 tuần) cho học viên
                    if (demNgay > (soNgayTuLucKhaiGiang - 7))
                    {
                        break;
                    }
                    else
                    {
                        dsKhoaHocKichHoat.Add(item);
                    }
                }
            }
            return(dsKhoaHocKichHoat);
        }
Exemplo n.º 10
0
        private async Task <List <BaiTapViewModel> > GetExerciseActived(List <BaiTapViewModel> dsBaiTap, DateTime ngayBatDau, int classId, string userId)
        {
            List <BaiTapViewModel> dsBaiTapVm = new List <BaiTapViewModel>();

            // KIỂM TRA XEM ĐẾN NGÀY KÍCH HOẠT CHƯA
            int soNgayTuLucKhaiGiang = FuncUtilities.TinhKhoangCachNgay(ngayBatDau);

            if (soNgayTuLucKhaiGiang > 0)
            {
                int soNgayKichHoat = 0;
                List <KeyValuePair <string, dynamic> > columns = null;

                foreach (BaiTapViewModel baiTap in dsBaiTap)
                {
                    soNgayKichHoat += baiTap.SoNgayKichHoat;

                    columns = new List <KeyValuePair <string, dynamic> >();
                    columns.Add(new KeyValuePair <string, dynamic>("MaBaiTap", baiTap.Id));
                    columns.Add(new KeyValuePair <string, dynamic>("MaNguoiDung", userId));
                    columns.Add(new KeyValuePair <string, dynamic>("MaLopHoc", classId));

                    // THÊM BÀI TẬP ĐÃ NỘP VÀO
                    BaiTapNop baiTapNop = await _baiTapNopRepository.GetSingleByListConditionAsync(columns);

                    baiTap.BaiTapNop = _mapper.Map <BaiTapNopViewModel>(baiTapNop);

                    // NẾU TỔNG SỐ NGÀY KÍCH HOẠT NHỎ HƠN SỐ NGÀY TÍNH TỪ LÚC KHAI GIẢNG ĐẾN HÔM NAY
                    if (soNgayKichHoat < soNgayTuLucKhaiGiang)
                    {
                        // HIỂN THỊ CHO HỌC VIÊN NHƯNG BÁO LÀ ĐÃ HẾT HẠN NỘP
                        baiTap.TrangThai = false;
                        dsBaiTapVm.Add(baiTap);
                    }
                    // NẾU TỔNG SỐ NGÀY KÍCH HOẠT BẰNG SỐ NGÀY TÍNH TỪ LÚC KHAI GIẢNG ĐẾN HÔM NAY
                    // HOẶC NẾU LỚN HƠN NHƯNG KHÔNG VƯỢT QUÁ SỐ NGÀY KÍCH HOẠT CỦA BÀI TẬP ĐÓ
                    else if (soNgayKichHoat >= soNgayTuLucKhaiGiang)
                    {
                        // HIỂN THỊ CHO HỌC VIÊN VÀ VẪN CHO NỘP BÀI
                        baiTap.TrangThai = true;
                        dsBaiTapVm.Add(baiTap);
                        break;
                    }
                }
            }
            return(dsBaiTapVm);
        }
        public async Task <ResponseEntity> getAllProject(string keyword = "")
        {
            var lstProject = await _projectRepository.GetAllAsync();

            var listResult = new List <ProjectViewModelResult>();

            foreach (var n in lstProject)
            {
                if (keyword.Trim() == "")
                {
                    Creator creator = new Creator();
                    if (n.creator != null)
                    {
                        creator.id   = n.creator;
                        creator.name = _userJira.GetSingleByIdAsync(creator.id).Result.name;
                    }

                    var result = new ProjectViewModelResult {
                        id = n.id, projectName = n.projectName, alias = n.alias, deleted = n.deleted, description = FuncUtilities.Base64Decode(n.description), categoryName = _projectCategoryRepository.GetSingleByIdAsync(n.categoryId).Result.projectCategoryName, categoryId = n.categoryId, creator = creator, members = getListMember(n.id)
                    };
                    listResult.Add(result);
                }
                else
                {
                    if (n.alias.Contains(FuncUtilities.BestLower(keyword)))
                    {
                        Creator creator = new Creator();
                        if (n.creator != null)
                        {
                            creator.id   = n.creator;
                            creator.name = _userJira.GetSingleByIdAsync(creator.id).Result.name;
                        }

                        var result = new ProjectViewModelResult {
                            id = n.id, projectName = n.projectName, alias = n.alias, deleted = n.deleted, description = FuncUtilities.Base64Decode(n.description), categoryName = _projectCategoryRepository.GetSingleByIdAsync(n.categoryId).Result.projectCategoryName, categoryId = n.categoryId, creator = creator, members = getListMember(n.id)
                        };
                        listResult.Add(result);
                    }
                }
            }

            return(new ResponseEntity(StatusCodeConstants.OK, listResult, MessageConstants.MESSAGE_SUCCESS_200));
        }
        public async Task <ResponseEntity> CheckTokenAsync(string token)
        {
            var handler = new JwtSecurityTokenHandler();

            try
            {
                var jsonToken = handler.ReadJwtToken(token).Payload;
                var dateEXP   = FuncUtilities.ConvertToTimeStamp((int)jsonToken.Exp);
                var dateNow   = FuncUtilities.ConvertStringToDate();
                if (dateEXP < dateNow)
                {
                    return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST));
                }
                return(new ResponseEntity(StatusCodeConstants.OK, jsonToken));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }
        public async Task <ResponseEntity> updateProject(int?idProject = 0, ProjectUpdate projectUpdate = null, string token = "")
        {
            Project project = _projectRepository.GetSingleByIdAsync(idProject).Result;

            if (project == null)
            {
                return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "Project is not found", MessageConstants.MESSAGE_ERROR_404));
            }
            project.alias = FuncUtilities.BestLower(projectUpdate.projectName);
            //project.creator = project.creator;
            project.creator     = _userService.getUserByToken(token).Result.id;
            project.description = FuncUtilities.Base64Encode(projectUpdate.description);
            project.projectName = projectUpdate.projectName;

            var result = _projectRepository.UpdateAsync(idProject, project).Result;



            return(new ResponseEntity(StatusCodeConstants.OK, result, MessageConstants.MESSAGE_SUCCESS_200));
        }
        public IEnumerable <CommentTask> getListComment(int taskId)
        {
            List <KeyValuePair <string, dynamic> > columns = new List <KeyValuePair <string, dynamic> >();

            columns.Add(new KeyValuePair <string, dynamic>("taskId", taskId));
            //columns.Add(new KeyValuePair<string, dynamic>("userId", userId));

            IEnumerable <CommentTask> lstCmt = _userComment.GetMultiByListConditionAndAsync(columns).Result.Select(n =>
            {
                var user        = getUserAsync(n.userId);
                CommentTask res = new CommentTask()
                {
                    id = n.id, idUser = n.userId, avatar = user.avatar, name = user.name, commentContent = n.contentComment
                };
                res.commentContent = FuncUtilities.Base64Decode(n.contentComment);
                return(res);
            });


            return(lstCmt);
        }
        public virtual async Task <ResponseEntity> GetPagingAsync(int pageIndex, int pageSize, string keywords, string filter = "")
        {
            try
            {
                keywords = FuncUtilities.BestLower(keywords);
                PagingResult <T> entity = await _repository.GetPagingAsync(pageIndex, pageSize, keywords, filter);

                var modelVm = new PagingResult <V>();
                modelVm.Items     = _mapper.Map <IEnumerable <V> >(entity.Items);
                modelVm.PageIndex = entity.PageIndex;
                modelVm.PageSize  = entity.PageSize;
                modelVm.Keywords  = entity.Keywords;
                modelVm.TotalRow  = entity.TotalRow;

                return(new ResponseEntity(StatusCodeConstants.OK, modelVm));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }
Exemplo n.º 16
0
        public async Task <ResponseEntity> getUser(string keyword = "")
        {
            IEnumerable <UserJira> entity  = _useJiraRepository.GetAllAsync().Result;
            List <Member>          members = new List <Member>();

            if (entity.Count() != 0)
            {
                keyword = FuncUtilities.BestLower(keyword);
                List <UserJira> lstTimTheoTen = entity.Where(n => n.alias.Contains(keyword)).ToList();

                List <UserJira> lstTimTheoSdt = entity.Where(n => n.phoneNumber.Contains(keyword)).ToList();

                List <UserJira> lstTimTheoEmail = entity.Where(n => n.email.Contains(keyword)).ToList();

                List <UserJira> lstTimTheoMa = entity.Where(n => n.id.ToString().Contains(keyword)).ToList();

                IEnumerable <UserJira> result = new List <UserJira>();
                result = result.Union(lstTimTheoTen);
                result = result.Union(lstTimTheoSdt);
                result = result.Union(lstTimTheoEmail);
                result = result.Union(lstTimTheoMa);



                foreach (UserJira item in result)
                {
                    Member mem = new Member();

                    mem.userId      = item.id;
                    mem.name        = item.name;
                    mem.avatar      = item.avatar;
                    mem.phoneNumber = item.phoneNumber;
                    mem.email       = item.email;

                    members.Add(mem);
                }
                return(new ResponseEntity(StatusCodeConstants.OK, members, MessageConstants.MESSAGE_SUCCESS_200));
            }
            return(new ResponseEntity(StatusCodeConstants.OK, members, MessageConstants.MESSAGE_SUCCESS_200));
        }
Exemplo n.º 17
0
        private async Task <List <BaiTapViewModel> > GetExerciseActived(List <BaiTapViewModel> dsBaiTap, List <KhoaHoc> dsKhoaHoc, DateTime ngayBatDau)
        {
            List <BaiTapViewModel> dsBaiTapVm = new List <BaiTapViewModel>();

            // KIỂM TRA XEM ĐẾN NGÀY KÍCH HOẠT CHƯA
            int soNgayTuLucKhaiGiang = FuncUtilities.TinhKhoangCachNgay(ngayBatDau);

            if (soNgayTuLucKhaiGiang > 0 && dsKhoaHoc.Count > 0)
            {
                KhoaHoc khoaHocDauTien = dsKhoaHoc.FirstOrDefault();
                if (soNgayTuLucKhaiGiang >= khoaHocDauTien.SoNgayKichHoat)
                {
                    int soNgayKichHoat = 0;
                    foreach (BaiTapViewModel baiTap in dsBaiTap)
                    {
                        soNgayKichHoat += baiTap.SoNgayKichHoat;
                        // NẾU TỔNG SỐ NGÀY KÍCH HOẠT NHỎ HƠN SỐ NGÀY TÍNH TỪ LÚC KHAI GIẢNG ĐẾN HÔM NAY
                        if (soNgayKichHoat < soNgayTuLucKhaiGiang)
                        {
                            // HIỂN THỊ CHO HỌC VIÊN NHƯNG BÁO LÀ ĐÃ HẾT HẠN NỘP
                            baiTap.TrangThai = false;
                            dsBaiTapVm.Add(baiTap);
                        }
                        // NẾU TỔNG SỐ NGÀY KÍCH HOẠT BẰNG SỐ NGÀY TÍNH TỪ LÚC KHAI GIẢNG ĐẾN HÔM NAY
                        // HOẶC NẾU LỚN HƠN NHƯNG KHÔNG VƯỢT QUÁ SỐ NGÀY KÍCH HOẠT CỦA BÀI TẬP ĐÓ
                        else if (soNgayKichHoat == soNgayTuLucKhaiGiang || (soNgayKichHoat - soNgayTuLucKhaiGiang) <= baiTap.SoNgayKichHoat)
                        {
                            // HIỂN THỊ CHO HỌC VIÊN VÀ VẪN CHO NỘP BÀI
                            baiTap.TrangThai = true;
                            dsBaiTapVm.Add(baiTap);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
            return(dsBaiTapVm);
        }
        public async Task <ResponseEntity> createProject(ProjectInsert model, string token = "")
        {
            string alias = FuncUtilities.BestLower(model.projectName.Trim());

            var project = await _projectRepository.GetSingleByConditionAsync("alias", alias);


            if (project != null)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, "Project name already exists", MessageConstants.MESSAGE_ERROR_500));
            }
            var projectCate = _projectCategoryRepository.GetSingleByConditionAsync("id", model.categoryId).Result;

            if (projectCate == null)
            {
                model.categoryId = 1;
            }
            Project newProject = new Project();

            newProject.alias       = alias;
            newProject.categoryId  = model.categoryId;
            newProject.deleted     = false;
            newProject.description = FuncUtilities.Base64Encode(model.description);
            newProject.projectName = model.projectName;
            if (!string.IsNullOrEmpty(token))
            {
                var user = _userJira.GetSingleByConditionAsync("id", _userService.getUserByToken(token).Result.id).Result;
                newProject.creator = user.id;
            }
            else
            {
                newProject.creator = _userJira.GetAllAsync().Result.First().id;//set mặc định khai admin
            }
            newProject = await _projectRepository.InsertAsync(newProject);

            newProject.description = FuncUtilities.Base64Decode(newProject.description);
            return(new ResponseEntity(StatusCodeConstants.OK, newProject, MessageConstants.MESSAGE_SUCCESS_200));
        }
        public async Task <IActionResult> ThemBaiTap_UploadFile()
        {
            var frmData = Request.Form;

            IFormFileCollection files = null;

            BaiTapViewModel model = new BaiTapViewModel();

            model.contructorBaiTapViewModel(int.Parse(frmData["id"]), frmData["tenBaiTap"], frmData["biDanh"], frmData["noiDung"], int.Parse(frmData["soNgayKichHoat"]), int.Parse(frmData["maLoTrinh"]), frmData["ghiChu"], false);

            if (frmData.Files.Count == 1)
            {
                files         = Request.Form.Files;
                model.NoiDung = model.MaLoTrinh + "-" + FuncUtilities.BestLower(model.TenBaiTap) + "." + files[0].FileName.Split(".")[files[0].FileName.Split('.').Length - 1];

                await _fileService.UploadFileAsync(files, model.NoiDung);
            }
            else
            {
                model.NoiDung = "";
            }
            return(await _baiTapService.InsertAsync(model));
        }
Exemplo n.º 20
0
        public async Task <ResponseEntity> insertComment(CommentModelInsert model, string token)
        {
            try
            {
                var     userJira = _userService.getUserByToken(token).Result;
                Comment cmt      = new Comment();
                cmt.alias          = FuncUtilities.BestLower(model.contentComment);
                cmt.deleted        = false;
                cmt.contentComment = FuncUtilities.Base64Encode(model.contentComment);
                cmt.userId         = userJira.id;
                cmt.taskId         = model.taskId;
                cmt = await _commentRepository.InsertAsync(cmt);

                if (cmt == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, model, MessageConstants.INSERT_ERROR));
                }
                cmt.contentComment = FuncUtilities.Base64Decode(cmt.contentComment);
                return(new ResponseEntity(StatusCodeConstants.OK, cmt, MessageConstants.INSERT_SUCCESS));
            }catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.AUTHORIZATION, "Unauthorize", MessageConstants.MESSAGE_ERROR_401));
            }
        }
        public async Task <ResponseEntity> getProjectById(int?idProject)
        {
            var pro = await _projectRepository.GetSingleByConditionAsync("id", idProject);

            if (pro == null)
            {
                return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "Project is not found", MessageConstants.MESSAGE_ERROR_404));
            }


            var lstUser = _projectUserRepository.GetMultiByConditionAsync("projectId", idProject).Result;
            List <Repository.Models.Member> members = new List <Repository.Models.Member>();

            foreach (var item in lstUser)
            {
                var user = _userJira.GetSingleByConditionAsync("id", item.userId).Result;
                Repository.Models.Member mem = new Repository.Models.Member();
                mem.userId = user.id;
                mem.name   = user.name;

                mem.avatar = user.avatar;
                members.Add(mem);
            }

            ProjectCategory projectCategory = await _projectCategoryRepository.GetSingleByConditionAsync("id", pro.categoryId);

            ProjectDetail projectDetail = new ProjectDetail();

            projectDetail.alias           = pro.alias;
            projectDetail.projectName     = pro.projectName;
            projectDetail.projectCategory = new ProjectCategoryDetail()
            {
                id = projectCategory.id, name = projectCategory.projectCategoryName
            };
            projectDetail.description = FuncUtilities.Base64Decode(pro.description);
            projectDetail.id          = pro.id;
            projectDetail.projectName = pro.projectName;
            projectDetail.members     = members;
            CreatorModel creator = new CreatorModel();

            if (pro.id != null)
            {
                creator.id = pro.creator;

                creator.name = _userJira.GetSingleByIdAsync(pro.creator).Result.name;
            }

            projectDetail.creator = creator;

            //List<ProjectDetail> lstResult = new List<ProjectDetail>();
            var lstStatus = await _statusRepository.GetAllAsync();

            //Lấy list priority
            IEnumerable <Priority> lstPriority = await _priorityRepository.GetAllAsync();

            //Lấy list task
            var lstTask = await _taskRepository.GetAllAsync();

            foreach (var status in lstStatus)
            {
                var statusTask = new StatusTask {
                    statusId = status.statusId, statusName = status.statusName, alias = status.alias
                };

                List <TaskDetail> task = lstTask.Where(n => n.projectId == projectDetail.id && n.statusId == status.statusId).Select(n => new TaskDetail {
                    taskId = n.taskId, taskName = n.taskName, alias = n.alias, description = FuncUtilities.Base64Decode(n.description), statusId = n.statusId, priorityTask = getTaskPriority(n.priorityId, lstPriority), originalEstimate = n.originalEstimate, timeTrackingSpent = n.timeTrackingSpent, timeTrackingRemaining = n.timeTrackingRemaining, assigness = getListUserAsign(n.taskId).ToList(), taskTypeDetail = getTaskType(n.typeId), lstComment = getListComment(n.taskId).ToList(), projectId = n.projectId
                }).ToList();

                statusTask.lstTaskDeTail.AddRange(task);

                projectDetail.lstTask.Add(statusTask);
            }


            return(new ResponseEntity(StatusCodeConstants.OK, projectDetail, MessageConstants.MESSAGE_SUCCESS_200));
        }
        public async Task <ResponseEntity> updateTask(TaskEdit model, string token)
        {
            UserJira user = _userService.getUserByToken(token).Result;
            Project  pro  = _projectRepository.GetSingleByConditionAsync("id", model.projectId).Result;

            Repository.Models.Task taskModel = _taskRepository.GetSingleByConditionAsync("taskId", model.taskId).Result;
            if (taskModel == null)
            {
                return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "Task is not found!", MessageConstants.MESSAGE_ERROR_404));
            }
            if (pro == null)
            {
                return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "Project is not found!", MessageConstants.MESSAGE_ERROR_404));
            }
            if (pro.creator != user.id)
            {
                return(new ResponseEntity(StatusCodeConstants.FORBIDDEN, "User is unthorization!", MessageConstants.MESSAGE_ERROR_403));
            }

            string alias = FuncUtilities.BestLower(model.taskName);
            //Kiểm tra task tồn tại chưa
            var taskValid = _taskRepository.GetSingleByConditionAsync("alias", alias).Result;

            if (taskValid.taskId != taskModel.taskId)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, "Task name already exists!", MessageConstants.MESSAGE_ERROR_500));
            }


            taskModel.taskName              = model.taskName;
            taskModel.alias                 = FuncUtilities.BestLower(model.taskName);
            taskModel.description           = FuncUtilities.Base64Encode(model.description);
            taskModel.statusId              = model.statusId;
            taskModel.originalEstimate      = model.originalEstimate;
            taskModel.timeTrackingSpent     = model.timeTrackingSpent;
            taskModel.timeTrackingRemaining = model.timeTrackingRemaining;
            taskModel.projectId             = model.projectId;
            taskModel.typeId                = model.typeId;
            taskModel.reporterId            = user.id;
            taskModel.priorityId            = model.priorityId;
            taskModel.deleted               = false;
            await _taskRepository.UpdateAsync("taskId", taskModel.taskId, taskModel);

            //dell user cũ
            var taskUserCu = _taskUserRepository.GetMultiByConditionAsync("taskId", taskModel.taskId).Result;

            if (taskUserCu.Count() > 0)
            {
                List <dynamic> lstDynamicId = new List <dynamic>();
                foreach (var item in taskUserCu)
                {
                    lstDynamicId.Add(item.id);
                }
                await _taskUserRepository.DeleteByIdAsync(lstDynamicId);
            }

            foreach (var item in model.listUserAsign)
            {
                Task_User tu = new Task_User();
                tu.taskId  = taskModel.taskId;
                tu.deleted = false;
                tu.userId  = item;
                await _taskUserRepository.InsertAsync(tu);
            }



            return(new ResponseEntity(StatusCodeConstants.OK, taskModel, "update task successfully!"));
        }
        public EntityToViewModelProfile()
        {
            /*=========== HỆ THỐNG =============*/
            CreateMap <Quyen, QuyenViewModel>();
            CreateMap <NhomQuyen, NhomQuyenViewModel>()
            .ForMember(modelVm => modelVm.DanhSachQuyen,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <string> >(entity.DanhSachQuyen)));

            /*=========== LỘ TRÌNH =============*/
            CreateMap <LoTrinh, ThongTinLoTrinhViewModel>()
            .ForMember(modelVm => modelVm.DanhSachKhoaHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachKhoaHoc)))
            .ForMember(modelVm => modelVm.DanhSachLopHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachLopHoc)));
            CreateMap <LoTrinh, LoTrinhViewModel>()
            .ForMember(modelVm => modelVm.DanhSachKhoaHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachKhoaHoc)))
            .ForMember(modelVm => modelVm.DanhSachLopHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachLopHoc)));

            /*=========== LỚP HỌC =============*/
            CreateMap <LopHoc, LopHocViewModel>()
            .ForMember(modelVm => modelVm.NgayBatDau,
                       m => m.MapFrom(entity => FuncUtilities.ConvertDateToString(entity.NgayBatDau)))
            .ForMember(modelVm => modelVm.NgayKetThuc,
                       m => m.MapFrom(entity => FuncUtilities.ConvertDateToString(entity.NgayKetThuc)))
            .ForMember(modelVm => modelVm.DanhSachGiangVien,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <dynamic> >(entity.DanhSachGiangVien)))
            .ForMember(modelVm => modelVm.DanhSachHocVien,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <dynamic> >(entity.DanhSachHocVien)))
            .ForMember(modelVm => modelVm.DanhSachMentor,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <dynamic> >(entity.DanhSachMentor)));
            CreateMap <LopHoc, ThongTinLopHocViewModel>()
            .ForMember(modelVm => modelVm.NgayBatDau,
                       m => m.MapFrom(entity => FuncUtilities.ConvertDateToString(entity.NgayBatDau)))
            .ForMember(modelVm => modelVm.NgayKetThuc,
                       m => m.MapFrom(entity => FuncUtilities.ConvertDateToString(entity.NgayKetThuc)))
            .ForMember(modelVm => modelVm.DanhSachGiangVien,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <dynamic> >(entity.DanhSachGiangVien)))
            .ForMember(modelVm => modelVm.DanhSachHocVien,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <dynamic> >(entity.DanhSachHocVien)))
            .ForMember(modelVm => modelVm.DanhSachMentor,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <dynamic> >(entity.DanhSachMentor)));

            /*=========== KHÓA HỌC =============*/
            CreateMap <KhoaHoc, KhoaHocViewModel>()
            .ForMember(modelVm => modelVm.DanhSachLoTrinh,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <int> >(entity.DanhSachLoTrinh)))
            .ForMember(modelVm => modelVm.DanhSachChuongHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <int> >(entity.DanhSachChuongHoc)));
            CreateMap <KhoaHoc, ThongTinKhoaHocViewModel>()
            .ForMember(modelVm => modelVm.DanhSachLoTrinh,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <HashSet <dynamic> >(entity.DanhSachLoTrinh)))
            .ForMember(modelVm => modelVm.DanhSachChuongHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachChuongHoc)));

            /*=========== CHƯƠNG HỌC =============*/
            CreateMap <ChuongHoc, ChuongHocViewModel>()
            .ForMember(modelVm => modelVm.DanhSachBaiHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachBaiHoc)));
            CreateMap <ChuongHoc, ThongTinChuongHocViewModel>()
            .ForMember(modelVm => modelVm.DanhSachBaiHoc,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachBaiHoc)));

            /*=========== BÀI HỌC =============*/
            CreateMap <BaiHoc, BaiHocViewModel>()
            .ForMember(modelVm => modelVm.DanhSachCauHoi,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <dynamic> >(entity.DanhSachCauHoi)));
            CreateMap <LoaiBaiHoc, LoaiBaiHocViewModel>();

            /*=========== BÀI TẬP =============*/
            CreateMap <BaiTap, BaiTapViewModel>();
            CreateMap <BaiTapNop, BaiTapNopViewModel>();

            /*=========== CÂU HỎI =============*/
            CreateMap <CauHoi, CauHoiViewModel>()
            .ForMember(modelVm => modelVm.CauTraLoi,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <CauTraLoiViewModel> >(entity.CauTraLoi)))
            .ForMember(modelVm => modelVm.CauHoiLienQuan,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <List <CauHoiLienQuanViewModel> >(entity.CauHoiLienQuan)));

            /*=========== CHUYỂN LỚP =============*/
            CreateMap <ChuyenLop, ChuyenLopViewModel>();

            /*=========== TÀI KHOẢN =============*/
            CreateMap <NguoiDung, NguoiDungViewModel>();

            /*=========== KHÁCH HÀNG =============*/
            CreateMap <KhachHang, KhachHangViewModel>()
            .ForMember(modelVm => modelVm.ThongTinKH,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <ThongTinKHViewModel>(entity.ThongTinKH)))
            .ForMember(modelVm => modelVm.DiaChi,
                       m => m.MapFrom(entity => JsonConvert.DeserializeObject <DiaChiViewModel>(entity.DiaChi)));
            CreateMap <HocPhi, HocPhiViewModel>();
        }
        public async Task <ResponseEntity> getTaskDetail(int taskId, string token)
        {
            //Lấy list task
            var n = _taskRepository.GetSingleByConditionAsync("taskId", taskId).Result;

            if (n != null)
            {
                var lstStatus = await _statusRepository.GetAllAsync();

                //Lấy list priority
                IEnumerable <Priority> lstPriority = await _priorityRepository.GetAllAsync();

                TaskDetail task = new TaskDetail {
                    taskId = n.taskId, taskName = n.taskName, alias = n.alias, description = FuncUtilities.Base64Decode(n.description), statusId = n.statusId, priorityTask = getTaskPriority(n.priorityId, lstPriority), originalEstimate = n.originalEstimate, timeTrackingSpent = n.timeTrackingSpent, timeTrackingRemaining = n.timeTrackingRemaining, assigness = getListUserAsign(n.taskId).ToList(), taskTypeDetail = getTaskType(n.typeId), lstComment = getListComment(n.taskId).ToList(), projectId = n.projectId, priorityId = n.priorityId, typeId = n.typeId
                };
                return(new ResponseEntity(StatusCodeConstants.OK, task, MessageConstants.MESSAGE_SUCCESS_200));
            }
            return(new ResponseEntity(StatusCodeConstants.NOT_FOUND, "task is not found!", MessageConstants.MESSAGE_ERROR_404));
        }