예제 #1
0
        /// <summary>
        /// Maps a WebsiteEditModel into a specific Website
        /// </summary>
        /// <param name="item"></param>
        /// <param name="website"></param>
        /// <returns></returns>
        public static Website MapToModel(this WebsiteEditModel item, Website website)
        {
            website.Id                       = item.Id;
            website.VanityId                 = item.VanityId;
            website.Name                     = item.Name;
            website.Description              = item.Description;
            website.Tagline                  = item.Tagline;
            website.HeaderImage              = item.HeaderImage;
            website.Culture                  = item.Culture;
            website.UrlFormat                = item.UrlFormat;
            website.DateFormat               = item.DateFormat;
            website.SiteUrl                  = item.SiteUrl;
            website.ArticleLimit             = item.ArticleLimit;
            website.Address                  = item.Address;
            website.Phone                    = item.Phone;
            website.Email                    = item.Email;
            website.FacebookAppId            = item.FacebookAppId;
            website.FacebookApiVersion       = item.FacebookApiVersion;
            website.DisqusShortName          = item.DisqusShortName;
            website.Facebook                 = item.Facebook;
            website.Twitter                  = item.Twitter;
            website.Instagram                = item.Instagram;
            website.LinkedIn                 = item.LinkedIn;
            website.GoogleAnalytics          = item.GoogleAnalytics;
            website.GoogleRecaptchaSiteKey   = item.GoogleRecaptchaSiteKey;
            website.GoogleRecaptchaSecretKey = item.GoogleRecaptchaSecretKey;

            return(website);
        }
예제 #2
0
 /// <summary>
 /// Maps a WebsiteEditModel into a Website
 /// </summary>
 /// <param name="item"></param>
 /// <returns></returns>
 public static Website MapToModel(this WebsiteEditModel item)
 {
     return(new Website
     {
         Id = item.Id,
         VanityId = item.VanityId,
         Name = item.Name,
         Description = item.Description,
         Tagline = item.Tagline,
         HeaderImage = item.HeaderImage,
         Culture = item.Culture,
         UrlFormat = item.UrlFormat,
         DateFormat = item.DateFormat,
         SiteUrl = item.SiteUrl,
         ArticleLimit = item.ArticleLimit,
         Address = item.Address,
         Phone = item.Phone,
         Email = item.Email,
         FacebookAppId = item.FacebookAppId,
         FacebookApiVersion = item.FacebookApiVersion,
         DisqusShortName = item.DisqusShortName,
         Facebook = item.Facebook,
         Twitter = item.Twitter,
         Instagram = item.Instagram,
         LinkedIn = item.LinkedIn,
         GoogleAnalytics = item.GoogleAnalytics,
         GoogleRecaptchaSiteKey = item.GoogleRecaptchaSiteKey,
         GoogleRecaptchaSecretKey = item.GoogleRecaptchaSecretKey
     });
 }
예제 #3
0
        public async Task <IActionResult> CreateAsync(WebsiteEditModel websiteEditModel)
        {
            if (!ModelState.IsValid)
            {
                SetupMessages("Websites", PageType.Create, panelTitle: "Create a new website");
                return(View("CreateEdit", websiteEditModel));
            }

            return(await SaveAsync(websiteEditModel, nameof(WebsiteController.Create)));
        }
예제 #4
0
        private async Task <IActionResult> SaveAsync(WebsiteEditModel websiteEditModel, string sender)
        {
            var returnValue = await _websiteService.Save(websiteEditModel);

            if (!returnValue.IsError)
            {
                TempData[MessageConstants.SuccessMessage] = returnValue.Message;
                return(RedirectToAction(nameof(WebsiteController.Index)));
            }
            else
            {
                TempData[MessageConstants.DangerMessage] = returnValue.Message;
                return(RedirectToAction(sender));
            }
        }
예제 #5
0
        public async Task <IActionResult> EditAsync(WebsiteEditModel websiteEditModel)
        {
            if (!ModelState.IsValid)
            {
                SetupMessages("Websites", PageType.Edit, panelTitle: "Edit an existing website");
                return(View("CreateEdit", websiteEditModel));
            }

            var websiteToUpdate = await _websiteService.SetupEditModel(websiteEditModel.VanityId);

            if (await TryUpdateModelAsync(websiteToUpdate))
            {
                return(await SaveAsync(websiteEditModel, nameof(WebsiteController.EditAsync)));
            }
            TempData[MessageConstants.WarningMessage] = "The model could not be updated.";
            return(RedirectToAction(nameof(WebsiteController.EditAsync), websiteEditModel));
        }
예제 #6
0
        public async Task <ReturnValue> Save(WebsiteEditModel websiteEditModel)
        {
            logger.LogDebug("CmsService > Save(WebsiteEditModel: {0})", websiteEditModel.ToString());

            var returnValue = new ReturnValue($"Website '{websiteEditModel.Name}' saved.");

            try
            {
                if (websiteEditModel.IsNew)
                {
                    logger.LogDebug("New website");
                    var website = websiteEditModel.MapToModel();

                    await unitOfWork.Websites.Insert(website);
                }
                else
                {
                    logger.LogDebug("Update website");
                    var website = websiteEditModel.MapToModel(await unitOfWork.Websites.GetByIdAsync(websiteEditModel.VanityId));

                    _unitOfWork.Websites.Update(website);
                }

                await _unitOfWork.Save();

                SaveInstanceToCache(websiteEditModel);
                logger.LogDebug("Website saved");
            }
            catch (Exception ex)
            {
                logger.LogError(ex, ex.Message);
                returnValue.SetErrorMessage("An error has occurred while saving the website");
            }

            return(returnValue);
        }