public bool AddSoftwareVersion(SoftwareVersionViewModel softwareVersionViewModel, out string reason)
        {
            reason = string.Empty;
            var newSoftwareVersion = AutoMapper.Mapper.Map <SoftwareVersion>(softwareVersionViewModel);
            var softwareVersion    = _demandDbContext.SoftwareVersions.SingleOrDefault(item => item.VersionName == newSoftwareVersion.VersionName);

            if (softwareVersion != null)
            {
                reason = "已存在名称:" + newSoftwareVersion.VersionName;
                return(false);
            }
            newSoftwareVersion.IsDeleted = 0;
            _demandDbContext.SoftwareVersions.Add(newSoftwareVersion);
            _demandDbContext.SaveChanges();
            return(true);
        }
示例#2
0
        public async Task <bool> InsertAsync(SoftwareVersionViewModel viewModel)
        {
            var entity = new SoftwareVersion()
            {
                Id          = viewModel.Id,
                Name        = viewModel.Name,
                ReleaseNote = viewModel.ReleaseNote,
                Description = viewModel.Description,
            };

            await _softwareVersions.AddAsync(entity);

            var result = await _unitOfWork.SaveChangesAsync();

            return(result != 0);
        }
示例#3
0
        async void OnCancelClicked()
        {
            _editing = false;

            if (_creating)
            {
                NavigationManager.ToBaseRelativePath("admin/software_versions");

                return;
            }

            _model = await Service.GetAsync(Id);

            SetCheckboxes();
            StateHasChanged();
        }
示例#4
0
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (_loaded)
            {
                return;
            }

            _loaded = true;

            _creating = NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant().
                        StartsWith("admin/software_versions/create",
                                   StringComparison.InvariantCulture);

            if (Id <= 0 &&
                !_creating)
            {
                return;
            }

            _softwareVersions = await Service.GetAsync();

            _softwareFamilies = await SoftwareFamiliesService.GetAsync();

            _licenses = await LicensesService.GetAsync();

            _companies = await CompaniesService.GetAsync();

            _roles = await DocumentRolesService.GetEnabledAsync();

            _model = _creating ? new SoftwareVersionViewModel() : await Service.GetAsync(Id);

            _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();

            _addingCompanyRoleId      = _roles.First().Id;
            _softwareVersionCompanies = await CompaniesBySoftwareVersionService.GetBySoftwareVersion(Id);

            _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant().
                       StartsWith("admin/software_versions/edit/",
                                  StringComparison.InvariantCulture);

            if (_editing)
            {
                SetCheckboxes();
            }

            StateHasChanged();
        }
示例#5
0
        public async Task <bool> UpdateAsync(SoftwareVersionViewModel viewModel)
        {
            var entity = await _softwareVersions.FindAsync(viewModel.Id);

            if (entity != null)
            {
                entity.Name        = viewModel.Name;
                entity.ReleaseNote = viewModel.ReleaseNote;
                entity.Description = viewModel.Description;

                var result = await _unitOfWork.SaveChangesAsync();

                return(result != 0);
            }

            return(await Task.FromResult(false));
        }
示例#6
0
        public IActionResult EditSoftwareVersion(SoftwareVersionViewModel softwareVersionView)
        {
            if (ModelState.IsValid == false)
            {
                return(Json(new
                {
                    result = false,
                    reason = ModelState.GetErrorMessage()
                }));
            }
            var result = _service.UpdateSoftwareVersion(softwareVersionView, out var reason);

            return(Json(new
            {
                result = result,
                reason = reason
            }));
        }
        public async Task <IActionResult> Create(SoftwareVersionViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                if (await _softwareVersionService.CheckExistNameAsync(viewModel.Id, viewModel.Name))
                {
                    ModelState.AddModelError(nameof(viewModel.Name), "نام وارد شده تکراری است");
                    return(View(viewModel));
                }

                var result = await _softwareVersionService.InsertAsync(viewModel);

                if (result)
                {
                    return(RedirectToAction("Index", "SoftwareVersions"));
                }

                return(View(viewModel));
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> Delete(SoftwareVersionViewModel viewModel)
        {
            var softwareVersionViewModel = await _softwareVersionService.GetByIdAsync(viewModel.Id);

            if (softwareVersionViewModel == null)
            {
                ModelState.AddModelError("", SoftwareVersionNotFound);
            }
            else
            {
                var result = await _softwareVersionService.DeleteAsync(softwareVersionViewModel.Id);

                if (result)
                {
                    return(Json(new { success = true }));
                }

                ModelState.AddModelError("", SoftwareVersionNotFound);
            }

            return(PartialView("_Delete", model: viewModel));
        }
        public bool UpdateSoftwareVersion(SoftwareVersionViewModel softwareVersionViewModel, out string reason)
        {
            reason = string.Empty;
            var softwareVersion = _demandDbContext.SoftwareVersions.SingleOrDefault(item => item.Id == softwareVersionViewModel.Id);

            if (softwareVersion == null)
            {
                reason = "未查找到该版本";
                return(false);
            }
            if (softwareVersion.VersionProgress == VersionProgress.已发布)
            {
                reason = "已发布版本不允许修改";
                return(false);
            }
            //仅名称变了 才需要判断重复
            if (softwareVersionViewModel.VersionName != softwareVersion.VersionName)
            {
                var sameNameVersion = _demandDbContext.SoftwareVersions.SingleOrDefault(item => item.VersionName == softwareVersionViewModel.VersionName);
                if (sameNameVersion != null)
                {
                    reason = "已存在名称:" + sameNameVersion.VersionName;
                    return(false);
                }
            }
            var newSoftwareVersion = AutoMapper.Mapper.Map <SoftwareVersion>(softwareVersionViewModel);

            softwareVersion.VersionName         = newSoftwareVersion.VersionName;
            softwareVersion.ExpectedStartDate   = newSoftwareVersion.ExpectedStartDate;
            softwareVersion.ExpectedEndDate     = newSoftwareVersion.ExpectedEndDate;
            softwareVersion.ExpectedReleaseDate = newSoftwareVersion.ExpectedReleaseDate;
            //softwareVersion.ReleaseDate = newSoftwareVersion.ReleaseDate;
            softwareVersion.VersionProgress = newSoftwareVersion.VersionProgress;
            softwareVersion.Remarks         = newSoftwareVersion.Remarks;
            _demandDbContext.SaveChanges();
            return(true);
        }
        public async Task <IActionResult> RenderCreate()
        {
            var viewModel = new SoftwareVersionViewModel();

            return(View("Create", viewModel));
        }
示例#11
0
 void ModalClosing(ModalClosingEventArgs obj) => _currentSoftwareVersion = null;
示例#12
0
 void ShowModal(ulong itemId)
 {
     _currentSoftwareVersion = _softwareVersions.FirstOrDefault(n => n.Id == itemId);
     _frmDelete.Show();
 }
示例#13
0
        async void OnSaveClicked()
        {
            if (_unknownName)
            {
                _model.Name = null;
            }
            else if (string.IsNullOrWhiteSpace(_model.Name))
            {
                return;
            }

            if (_unknownCodename)
            {
                _model.Codename = null;
            }
            else if (string.IsNullOrWhiteSpace(_model.Codename))
            {
                return;
            }

            if (_unknownLicense)
            {
                _model.LicenseId = null;
            }
            else if (_model.LicenseId < 1)
            {
                return;
            }

            if (_unknownPrevious)
            {
                _model.PreviousId = null;
            }
            else if (_model.PreviousId < 1)
            {
                return;
            }

            if (_unknownIntroduced)
            {
                _model.Introduced = null;
            }
            else if (_model.Introduced?.Date >= DateTime.UtcNow.Date)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(_model.Version))
            {
                return;
            }

            if (_creating)
            {
                Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id);
            }
            else
            {
                await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id);
            }

            _editing  = false;
            _creating = false;
            _model    = await Service.GetAsync(Id);

            SetCheckboxes();
            StateHasChanged();
        }