示例#1
0
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                this.logger?.Log(LogType.Info, id);
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var model = await this.service.GetByIdAsync(id);

            if (model == null)
            {
                this.logger?.Log(LogType.Error, id);
                return(this.HttpNotFound());
            }

            var viewModel = new ContinentPageViewModel
            {
                Model     = this.mapper.Map <ContinentViewModel>(model),
                PageTitle = Strings.DeletePageTitle,
                ReturnUrl = this.Request[ContextKeys.ReturnUrl]
            };

            this.ViewData[ContextKeys.AreaName]       = AreaName;
            this.ViewData[ContextKeys.ControllerName] = ControllerName;
            this.ViewData[ContextKeys.ActionName]     = DeleteActionName;
            this.ViewData[ContextKeys.BackActionName] = IndexActionName;
            return(this.View(DeleteActionName, viewModel));
        }
示例#2
0
        public ActionResult Create()
        {
            var viewModel = new ContinentPageViewModel
            {
                Model = new ContinentViewModel {
                    Id = -1
                },
                PageTitle = Strings.CreatePageTitle,
                ReturnUrl = this.Request[ContextKeys.ReturnUrl]
            };

            this.ViewData[ContextKeys.AreaName]       = AreaName;
            this.ViewData[ContextKeys.ControllerName] = ControllerName;
            this.ViewData[ContextKeys.ActionName]     = CreateActionName;
            this.ViewData[ContextKeys.BackActionName] = IndexActionName;
            return(this.View(EditActionName, viewModel));
        }
示例#3
0
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                this.logger?.Log(LogType.Info, id);
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var model = await this.service.GetByIdAsync(id);

            if (model == null)
            {
                this.logger?.Log(LogType.Error, id);
                return(this.HttpNotFound());
            }

            var viewModel = new ContinentPageViewModel
            {
                Model     = this.mapper.Map <ContinentViewModel>(model),
                PageTitle = Strings.DetailsPageTitle,
                ReturnUrl = this.Request[ContextKeys.ReturnUrl]
            };

            var countries = await this.countriesService.SelectAsync(null);

            foreach (var synonym in viewModel.Model.Synonyms)
            {
                synonym.LanguageCode = countries.Where(c => c.Id.ToString() == synonym.LanguageCode)
                                       .Select(c => c.LanguageCode)
                                       .FirstOrDefault();
            }

            this.ViewData[ContextKeys.AreaName]       = AreaName;
            this.ViewData[ContextKeys.ControllerName] = ControllerName;
            this.ViewData[ContextKeys.ActionName]     = DetailsActionName;
            this.ViewData[ContextKeys.BackActionName] = IndexActionName;
            return(this.View(DetailsActionName, viewModel));
        }
示例#4
0
        public async Task <ActionResult> Edit([Bind(Include = nameof(ContinentRequestModel.Id) + "," + nameof(ContinentRequestModel.Name) + "," + nameof(ContinentRequestModel.AbbreviatedName))] ContinentRequestModel model, string synonyms, bool exit = false, bool createNew = false, bool cancel = false)
        {
            string returnUrl = this.Request[ContextKeys.ReturnUrl];

            if (cancel)
            {
                if (!string.IsNullOrWhiteSpace(returnUrl))
                {
                    return(this.Redirect(returnUrl));
                }
                else
                {
                    return(this.RedirectToAction(IndexActionName));
                }
            }

            try
            {
                if (this.ModelState.IsValid)
                {
                    await this.service.UpdateAsync(model);

                    await this.UpdateSynonymsFromJson(model.Id, synonyms);

                    if (createNew)
                    {
                        return(this.RedirectToAction(CreateActionName, routeValues: new { ReturnUrl = returnUrl }));
                    }

                    if (exit)
                    {
                        if (!string.IsNullOrWhiteSpace(returnUrl))
                        {
                            return(this.Redirect(returnUrl));
                        }
                        else
                        {
                            return(this.RedirectToAction(IndexActionName));
                        }
                    }

                    return(this.RedirectToAction(EditActionName, routeValues: new { id = model.Id, ReturnUrl = returnUrl }));
                }
                else
                {
                    this.AddErrors(Strings.InvalidDataErrorMessage);
                }
            }
            catch (Exception e)
            {
                this.logger?.Log(e, string.Empty);
                this.AddErrors(e.Message);
            }

            var viewModel = new ContinentPageViewModel
            {
                Model     = this.mapper.Map <ContinentViewModel>(model),
                PageTitle = Strings.EditPageTitle,
                ReturnUrl = returnUrl
            };

            this.ViewData[ContextKeys.AreaName]       = AreaName;
            this.ViewData[ContextKeys.ControllerName] = ControllerName;
            this.ViewData[ContextKeys.ActionName]     = EditActionName;
            this.ViewData[ContextKeys.BackActionName] = IndexActionName;
            return(this.View(EditActionName, viewModel));
        }