Пример #1
0
        public async Task <IActionResult> ChangeStatus(long[] data, int type)
        {
            if (data.Count() == 0)
            {
                return(Ok(new
                {
                    status = false,
                    mess = MessageResult.NotSelectDeTai
                }));
            }
            DeTaiNghienCuu entity = new DeTaiNghienCuu();

            foreach (long item in data)
            {
                entity = await _service.GetById(item);

                var isAuthorize = await _authorizationService.AuthorizeAsync(User, entity, DeTaiNghienCuuOperation.Update);

                if (!isAuthorize.Succeeded)
                {
                    return(Ok(new
                    {
                        status = false,
                        toastr = MessageResult.AccessDenied
                    }));
                }
                if (type == 2) // xoa detai
                {
                    await _service.Delete(entity);

                    return(Ok(new
                    {
                        status = true,
                        mess = MessageResult.UpdateSuccess
                    }));
                }
                else if (type == 0) // gui duyet dang ky
                {
                    if (entity.TinhTrangPheDuyet == (int)StatusPheDuyet.GuiDangKy)
                    {
                        return(Ok(new
                        {
                            status = false,
                            toastr = "Đã gửi yêu cầu đăng ký cho đề tài " + entity.Id
                        }));
                    }
                    entity.TinhTrangPheDuyet = (int)StatusPheDuyet.GuiDangKy;
                    YeuCauPheDuyet yeuCau = new YeuCauPheDuyet
                    {
                        LoaiYeuCau = (int)LoaiYeuCauPheDuyet.DuyetDangKy,
                        NgayTao    = DateTime.Now,
                    };
                    entity.YeuCauPheDuyet.Add(yeuCau);
                }
                else // huy gui
                {
                    if (entity.TinhTrangPheDuyet != (int)StatusPheDuyet.ChuaCoYeuCau)
                    {
                        entity.TinhTrangPheDuyet = (int)StatusPheDuyet.ChuaCoYeuCau;
                        var yeuCau = entity.YeuCauPheDuyet.FirstOrDefault(x => x.Status == (int)StatusYeuCauPheDuyet.ChuaXuLy);
                        entity.YeuCauPheDuyet.Remove(yeuCau);
                    }
                    else
                    {
                        return(Ok(new
                        {
                            status = false,
                            toastr = "Đề tài " + entity.Id + " chưa gửi đăng ký"
                        }));
                    }
                }
            }
            await _service.Update(entity);

            return(Ok(new
            {
                status = true,
                mess = MessageResult.UpdateSuccess
            }));
        }
Пример #2
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 }));
            }
        }