Exemple #1
0
        public virtual ActionResult Create(ContributorModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageContributors))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var contributor = model.ToEntity();
                _contributorService.InsertContributor(contributor);

                //activity log
                _customerActivityService.InsertActivity("AddNewContributor", _localizationService.GetResource("ActivityLog.AddNewContributor"), contributor.Id);

                //search engine name
                model.SeName = contributor.ValidateSeName(model.SeName, contributor.Name, true);
                _urlRecordService.SaveSlug(contributor, model.SeName, 0);

                //address
                var address = model.Address.ToEntity();
                address.CreatedOnUtc = DateTime.UtcNow;
                //some validation
                if (address.CountryId == 0)
                {
                    address.CountryId = null;
                }
                if (address.StateProvinceId == 0)
                {
                    address.StateProvinceId = null;
                }
                _addressService.InsertAddress(address);
                contributor.AddressId = address.Id;
                _contributorService.UpdateContributor(contributor);

                //locales
                UpdateLocales(contributor, model);
                //update picture seo file name
                UpdatePictureSeoNames(contributor);

                SuccessNotification(_localizationService.GetResource("Admin.Contributors.Added"));

                if (continueEditing)
                {
                    //selected tab
                    SaveSelectedTabName();

                    return(RedirectToAction("Edit", new { id = contributor.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            PrepareContributorModel(model, null, true, true);
            return(View(model));
        }
Exemple #2
0
        public virtual ActionResult Edit(ContributorModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageContributors))
            {
                return(AccessDeniedView());
            }

            var contributor = _contributorService.GetContributorById(model.Id);

            if (contributor == null || contributor.Deleted)
            {
                //No contributor found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                int prevPictureId = contributor.PictureId;
                contributor = model.ToEntity(contributor);
                _contributorService.UpdateContributor(contributor);

                //activity log
                _customerActivityService.InsertActivity("EditContributor", _localizationService.GetResource("ActivityLog.EditContributor"), contributor.Id);

                //search engine name
                model.SeName = contributor.ValidateSeName(model.SeName, contributor.Name, true);
                _urlRecordService.SaveSlug(contributor, model.SeName, 0);

                //address
                var address = _addressService.GetAddressById(contributor.AddressId);
                if (address == null)
                {
                    address = model.Address.ToEntity();
                    address.CreatedOnUtc = DateTime.UtcNow;
                    //some validation
                    if (address.CountryId == 0)
                    {
                        address.CountryId = null;
                    }
                    if (address.StateProvinceId == 0)
                    {
                        address.StateProvinceId = null;
                    }

                    _addressService.InsertAddress(address);
                    contributor.AddressId = address.Id;
                    _contributorService.UpdateContributor(contributor);
                }
                else
                {
                    address = model.Address.ToEntity(address);
                    //some validation
                    if (address.CountryId == 0)
                    {
                        address.CountryId = null;
                    }
                    if (address.StateProvinceId == 0)
                    {
                        address.StateProvinceId = null;
                    }

                    _addressService.UpdateAddress(address);
                }


                //locales
                UpdateLocales(contributor, model);
                //delete an old picture (if deleted or updated)
                if (prevPictureId > 0 && prevPictureId != contributor.PictureId)
                {
                    var prevPicture = _pictureService.GetPictureById(prevPictureId);
                    if (prevPicture != null)
                    {
                        _pictureService.DeletePicture(prevPicture);
                    }
                }
                //update picture seo file name
                UpdatePictureSeoNames(contributor);

                SuccessNotification(_localizationService.GetResource("Admin.Contributors.Updated"));
                if (continueEditing)
                {
                    //selected tab
                    SaveSelectedTabName();

                    return(RedirectToAction("Edit", new { id = contributor.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            PrepareContributorModel(model, contributor, true, true);

            return(View(model));
        }