Exemple #1
0
        public async Task <IActionResult> HuyDangKy(long id)
        {
            var DeTai = await _service.GetById(id);

            if (DeTai != null && DeTai.Loai == LoaiDeTai.CoSan)
            {
                var nhomSV = await _serviceNhomSV.GetAll(x => x.IddeTai == DeTai.Id);

                var nhom = nhomSV.First().IdnhomNavigation;
                if (nhomSV.Count() > 1)
                {
                    foreach (var item in nhomSV)
                    {
                        await _serviceNhomSV.Delete(item);
                    }
                    await _serviceNhom.Delete(nhom);
                }
                else
                {
                    await _serviceNhomSV.Delete(nhomSV.First());

                    await _serviceNhom.Delete(nhom);
                }

                DeTai.NgayDangKy      = null;
                DeTai.TinhTrangDangKy = (int)StatusDangKyDeTai.Con;
                DeTai.TinhTrangDeTai  = (int)StatusDeTai.DaDuyet;
                DeTai.IdNguoiDangKy   = null;
                await _service.Update(DeTai);

                return(Ok(new
                {
                    status = true,
                    mess = MessageResult.UpdateSuccess
                }));
            }
            else
            {
                var nhomSV = await _serviceNhomSV.GetAll(x => x.IddeTai == DeTai.Id);

                var nhom = nhomSV.First().IdnhomNavigation;
                if (nhomSV.Count() > 1)
                {
                    foreach (var item in nhomSV)
                    {
                        await _serviceNhomSV.Delete(item);
                    }
                    await _serviceNhom.Delete(nhom);
                }
                else
                {
                    await _serviceNhomSV.Delete(nhomSV.First());

                    await _serviceNhom.Delete(nhom);
                }
                await _service.Delete(DeTai);

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