Пример #1
0
        public async Task <IActionResult> Edit(LicenseModel model, bool continueEditing)
        {
            if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManagePlugins))
            {
                return(AccessDeniedView());
            }

            var license = await _licenseService.GetLicenseById(model.Id);

            if (license == null)
            {
                return(RedirectToAction("Configure"));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    license = model.ToEntity(license);

                    await _licenseService.UpdateLicense(license);

                    await _userActivityService.InsertActivityAsync("EditLicense", $"Edited license (ID = {model.Id})");

                    _notificationService.SuccessNotification("License has been updated successfully.");

                    if (!continueEditing)
                    {
                        return(RedirectToAction("Configure"));
                    }


                    return(RedirectToAction("Edit", new { id = model.Id }));
                }
                catch (Exception ex)
                {
                    _notificationService.ErrorNotification(ex.Message);
                }
            }

            model = await _licenseModelFactory.PrepareLicenseModel(model, license, true);

            return(View(ViewNames.Edit, model));
        }
Пример #2
0
        public async Task <IActionResult> Create(LicenseModel model, bool continueEditing)
        {
            if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManagePlugins))
            {
                return(AccessDeniedView());
            }

            var licenseError = await ValidateLicense(model);

            if (!string.IsNullOrEmpty(licenseError))
            {
                ModelState.AddModelError(string.Empty, licenseError);
                _notificationService.ErrorNotification(licenseError);
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var license = model.ToEntity <License>();

                    await _licenseService.InsertLicense(license);

                    await _userActivityService.InsertActivityAsync("AddNewLicense", $"Added a new license (ID = {license.Id})");

                    _notificationService.SuccessNotification("The new license has been added successfully.");

                    if (!continueEditing)
                    {
                        return(RedirectToAction("Configure"));
                    }

                    return(RedirectToAction("Edit", new { id = license.Id }));
                }
                catch (Exception ex)
                {
                    _notificationService.ErrorNotification(ex.Message);
                }
            }

            model = await _licenseModelFactory.PrepareLicenseModel(model, null, true);

            return(View(ViewNames.Create, model));
        }