예제 #1
0
        public async Task <ActionResult> Create(DeTaiNghienCuuViewModel vmodel)
        {
            IEnumerable <DeTaiNghienCuu> list = await _service.GetAll();

            if (list.Count() != 0)
            {
                DeTaiNghienCuu LastE = list.OrderBy(x => x.Id).LastOrDefault();
                vmodel.Id = _service.KhoiTaoMa(LastE);
            }
            else
            {
                vmodel.Id = long.Parse(DateTime.Now.Year.ToString() + "001");
            }
            var model = new DeTaiNghienCuu()
            {
                Id              = vmodel.Id,
                TenDeTai        = vmodel.TenDeTai,
                MoTa            = vmodel.MoTa,
                IdgiangVien     = long.Parse(User.Identity.Name),
                NgayLap         = DateTime.Now,
                TinhTrangDangKy = (int)StatusDangKyDeTai.Con,
                TinhTrangDeTai  = (int)StatusDeTai.MoiTao,
                Loai            = LoaiDeTai.CoSan
            };

            if (await UpLoadFile(vmodel.Files, model) == false)
            {
                return(Json(new { status = false, mess = MessageResult.UpLoadFileFail }));
            }
            try
            {
                var isAuthorize = await _authorizationService.AuthorizeAsync(User, model, DeTaiNghienCuuOperation.Create);

                if (!isAuthorize.Succeeded)
                {
                    return(Ok(new
                    {
                        status = false,
                        toastr = MessageResult.AccessDenied
                    }));
                }
                await _service.Add(model);

                return(Json(new { status = true, create = true, data = new { NgayLap = DateTime.Now.ToString("dd/MM/yyyy"), Id = vmodel.Id, TenTep = model.TenTep }, mess = MessageResult.CreateSuccess }));
            }
            catch (Exception e)
            {
                return(Json(new { status = false, mess = e.ToString() }));
            }
        }
예제 #2
0
        public async Task <IActionResult> CreateEdit()
        {
            DeTaiNghienCuuViewModel model = new DeTaiNghienCuuViewModel();
            var entity = await _service.GetEntity(x => x.IdNguoiDangKy == long.Parse(User.Identity.Name) && x.Loai == LoaiDeTai.DeXuat);

            if (entity == null)
            {
                return(PartialView("_CreateEditPopup"));
            }
            else
            {
                model = _mapper.Map <DeTaiNghienCuu, DeTaiNghienCuuViewModel>(entity);
                return(PartialView("_CreateEditPopup", model));
            }
        }
예제 #3
0
        public async Task <ActionResult> Edit(long?id)
        {
            DeTaiNghienCuuViewModel model = new DeTaiNghienCuuViewModel();

            if (id.HasValue)
            {
                var entity = await _service.GetById(id.Value);

                model.Id       = entity.Id;
                model.TenDeTai = entity.TenDeTai;
                model.MoTa     = entity.MoTa;
                model.TenTep   = entity.TenTep;
                //if (entity.TepDinhKem != null && entity.TepDinhKem.Length > 0)
                //{   var stream = new MemoryStream(entity.TepDinhKem);
                //    var ext = Path.GetExtension(entity.TenTep).ToLowerInvariant();
                //    model.Files = new FormFile(stream, 0, entity.TepDinhKem.Length, "Files", entity.TenTep);
                //}
            }
            return(PartialView("_CreateEditPopup", model));
        }
예제 #4
0
        public async Task <ActionResult> DeXuatDeTai(DeTaiNghienCuuViewModel vmodel)
        {
            var SV = await _serviceSV.GetById(long.Parse(User.Identity.Name));

            if (SV == null)
            {
                return(Ok(new
                {
                    status = false,
                    mess = MessageResult.NotFoundSV
                }));
            }
            if (vmodel.IdgiangVien == 0)
            {
                vmodel.IdgiangVien = null;
            }
            //Update DeTai
            if (vmodel.Id > 0)
            {
                var DeTai = await _service.GetById(vmodel.Id);

                DeTai.IdgiangVien = vmodel.IdgiangVien;
                DeTai.MoTa        = vmodel.MoTa;
                DeTai.TenDeTai    = vmodel.TenDeTai;
                if (await UpLoadFile(vmodel.Files, DeTai) == false)
                {
                    return(Json(new { status = false, mess = MessageResult.UpLoadFileFail }));
                }
                await _service.Update(DeTai);

                return(Ok(new { status = true, mess = MessageResult.UpdateSuccess }));
            }
            //Kiểm tra SV đã có đề tài?
            var nhomSV = SV.NhomSinhVien.SingleOrDefault(x => x.IdnhomNavigation.Status == (int)BaseStatus.Active);

            if (nhomSV != null)
            {
                return(Ok(new
                {
                    status = false,
                    mess = MessageResult.ExistDeTai
                }));
            }
            IEnumerable <DeTaiNghienCuu> list = await _service.GetAll();

            if (list.Count() != 0)
            {
                DeTaiNghienCuu LastE = list.OrderBy(x => x.Id).LastOrDefault();
                vmodel.Id = _service.KhoiTaoMa(LastE);
            }
            else
            {
                vmodel.Id = long.Parse(DateTime.Now.Year.ToString() + "001");
            }

            var model = new DeTaiNghienCuu()
            {
                Id              = vmodel.Id,
                TenDeTai        = vmodel.TenDeTai,
                MoTa            = vmodel.MoTa,
                NgayDangKy      = DateTime.Now,
                IdNguoiDangKy   = long.Parse(User.Identity.Name),
                IdgiangVien     = vmodel.IdgiangVien,
                NgayLap         = DateTime.Now,
                TinhTrangDangKy = (int)StatusDangKyDeTai.Het,
                TinhTrangDeTai  = (int)StatusDeTai.DaDangKy,
                Loai            = LoaiDeTai.DeXuat
            };

            if (await UpLoadFile(vmodel.Files, model) == false)
            {
                return(Json(new { status = false, mess = MessageResult.UpLoadFileFail }));
            }
            try
            {
                Nhom nhom = new Nhom();
                await _serviceNhom.Add(nhom);

                NhomSinhVien nhomSinhVien = new NhomSinhVien {
                    Idnhom = nhom.Id, IdsinhVien = SV.Mssv
                };
                model.NhomSinhVien.Add(nhomSinhVien);
                await _service.Add(model);

                return(Json(new { status = true, create = true, data = model, mess = MessageResult.CreateSuccess }));
            }
            catch
            {
                return(Json(new { status = false, mess = MessageResult.Fail }));
            }
        }
예제 #5
0
        public async Task <ActionResult> Edit(DeTaiNghienCuuViewModel model)
        {
            if (ModelState.IsValid)
            {
                var entity = await _service.GetById(model.Id);

                if (entity == null)
                {
                    return(Ok(new
                    {
                        status = false,
                        toastr = MessageResult.NotFoundObject
                    }));
                }
                var isAuthorize = await _authorizationService.AuthorizeAsync(User, entity, DeTaiNghienCuuOperation.Update);

                if (!isAuthorize.Succeeded)
                {
                    return(Ok(new
                    {
                        status = false,
                        toastr = MessageResult.AccessDenied
                    }));
                }
                else
                {
                    if (entity.TinhTrangDeTai == (int)StatusDeTai.MoiTao)
                    {
                        if (await UpLoadFile(model.Files, entity) == false)
                        {
                            return(Ok(new
                            {
                                status = false,
                                mess = MessageResult.UpLoadFileFail
                            }));
                        }
                        entity.TenDeTai = model.TenDeTai;
                        entity.MoTa     = model.MoTa;
                        await _service.Update(entity);

                        return(Ok(new { status = true, mess = MessageResult.UpdateSuccess }));
                    }
                    else
                    {
                        YCChinhSuaDeTai yCChinhSua = new YCChinhSuaDeTai
                        {
                            MoTa     = model.MoTa,
                            TenDeTai = model.TenDeTai,
                        };
                        YeuCauPheDuyet yeuCau = new YeuCauPheDuyet
                        {
                            LoaiYeuCau = (int)LoaiYeuCauPheDuyet.ChinhSua,
                            NgayTao    = DateTime.Now,
                        };
                        if (await UpLoadFileYCChinhSua(model.Files, yCChinhSua) == false)
                        {
                            return(Ok(new
                            {
                                status = false,
                                mess = MessageResult.UpLoadFileFail
                            }));
                        }
                        var yeuCauHT     = entity.YeuCauPheDuyet.FirstOrDefault(x => x.LoaiYeuCau == (int)LoaiYeuCauPheDuyet.ChinhSua && x.Status == 0);
                        var yCChinhSuaHT = entity.YCChinhSuaDeTai.FirstOrDefault(x => x.Status == 0);

                        entity.YeuCauPheDuyet.Remove(yeuCauHT);
                        entity.YCChinhSuaDeTai.Remove(yCChinhSuaHT);
                        entity.YeuCauPheDuyet.Add(yeuCau);
                        entity.YCChinhSuaDeTai.Add(yCChinhSua);

                        entity.TinhTrangPheDuyet = (int)StatusPheDuyet.GuiChinhSua;
                        await _service.Update(entity);

                        return(Ok(new { status = true, mess = "Gửi yêu cầu chỉnh sửa thành công" }));
                    }
                }
            }
            else
            {
                return(Ok(new { status = false, mess = MessageResult.Fail }));
            }
        }