Пример #1
0
        public IActionResult Index()
        {
            var settings = new BaseSettings();

            var settingsRecords = SettingsRepository.Where(record => string.IsNullOrEmpty(record.UserId)).ToList();

            var settingsList = new List <ViewModels.IndexItem>();

            foreach (var item in settings)
            {
                var existingRecord = settingsRecords.FirstOrDefault(record => record.Name == item.Key);

                var options = new List <SelectListItem>();
                var value   = existingRecord?.Value ?? string.Empty;

                if (item.Options != null)
                {
                    foreach (var option in item.Options)
                    {
                        options.Add(new SelectListItem {
                            Text     = option,
                            Value    = option,
                            Selected = option == value
                        });
                    }
                }

                settingsList.Add(new ViewModels.IndexItem {
                    Key         = item.Key,
                    Display     = item.Display,
                    Description = item.Description,
                    Options     = options,
                    Value       = value,
                    AdminOnly   = existingRecord?.AdminOnly ?? false,
                });
            }

            var viewModel = new ViewModels.IndexPage {
                Settings = settingsList
            };

            return(ForumViewResult.ViewResult(this, viewModel));
        }
Пример #2
0
        public async Task <IActionResult> Index()
        {
            var records = DbContext.StrippedUrls.ToList();

            var items = new List <ViewModels.IndexItem>();

            foreach (var record in records)
            {
                items.Add(new ViewModels.IndexItem {
                    Url          = record.Url,
                    RegexPattern = record.RegexPattern
                });
            }

            var viewModel = new ViewModels.IndexPage {
                StrippedUrls = items
            };

            return(await ForumViewResult.ViewResult(this, viewModel));
        }
Пример #3
0
        public async Task <IActionResult> Index()
        {
            var viewModel = new ViewModels.IndexPage();

            foreach (var smiley in await SmileyRepository.Records())
            {
                var sortColumn = smiley.SortOrder / 1000;
                var sortRow    = smiley.SortOrder % 1000;

                viewModel.Smileys.Add(new ViewModels.IndexItem {
                    Id      = smiley.Id,
                    Code    = smiley.Code,
                    Path    = smiley.Path,
                    Thought = smiley.Thought,
                    Column  = sortColumn,
                    Row     = sortRow
                });
            }

            return(await ForumViewResult.ViewResult(this, viewModel));
        }
Пример #4
0
        public IActionResult Index()
        {
            var viewModel = new ViewModels.IndexPage();

            foreach (var smiley in SmileyRepository)
            {
                var sortColumn = smiley.SortOrder / 1000;
                var sortRow    = smiley.SortOrder % 1000;

                viewModel.Items.Add(new ViewModels.IndexItem {
                    Id      = smiley.Id,
                    Code    = smiley.Code,
                    Path    = smiley.Path,
                    Thought = smiley.Thought,
                    Column  = sortColumn,
                    Row     = sortRow
                });
            }

            return(ForumViewResult.ViewResult(this, viewModel));
        }
Пример #5
0
        public async Task <IActionResult> Index(InputModels.EditStrippedUrlsInput input)
        {
            if (ModelState.IsValid)
            {
                var serviceResponse = new ServiceResponse();

                var records = DbContext.StrippedUrls.ToList();
                var inputs  = input.StrippedUrls?.ToList();

                foreach (var record in records)
                {
                    InputModels.EditStrippedUrlInput inputItem = null;
                    var inputIndex = -1;

                    for (var i = 0; i < inputs.Count; i++)
                    {
                        if (inputs[i].Url == record.Url)
                        {
                            inputItem  = inputs[i];
                            inputIndex = i;
                        }
                    }

                    if (inputItem is null)
                    {
                        DbContext.Remove(record);
                    }
                    else
                    {
                        ValidateRegex($"{nameof(ViewModels.IndexPage.StrippedUrls)}[{inputIndex}].{nameof(ViewModels.IndexItem.RegexPattern)}", inputItem.RegexPattern, serviceResponse);

                        record.RegexPattern = inputItem.RegexPattern;
                        inputs?.Remove(inputItem);
                    }
                }

                if (!string.IsNullOrEmpty(input.NewUrl))
                {
                    ValidateRegex(nameof(ViewModels.IndexPage.NewRegex), input.NewRegex, serviceResponse);

                    if (serviceResponse.Success)
                    {
                        DbContext.Add(new StrippedUrl {
                            Url          = input.NewUrl,
                            RegexPattern = input.NewRegex
                        });
                    }
                }

                if (serviceResponse.Success)
                {
                    DbContext.SaveChanges();

                    return(await ForumViewResult.RedirectFromService(this, serviceResponse));
                }

                foreach (var kvp in serviceResponse.Errors)
                {
                    ModelState.AddModelError(kvp.Key, kvp.Value);
                }
            }

            var strippedUrls = new List <ViewModels.IndexItem>();

            foreach (var item in input.StrippedUrls)
            {
                strippedUrls.Add(new ViewModels.IndexItem {
                    Url          = item.Url,
                    RegexPattern = item.RegexPattern
                });
            }

            var viewModel = new ViewModels.IndexPage {
                NewUrl       = input.NewUrl,
                NewRegex     = input.NewRegex,
                StrippedUrls = strippedUrls
            };

            return(await ForumViewResult.ViewResult(this, viewModel));
        }