Beispiel #1
0
        public ValidationDictionary <ViewModelPage> SavePage(int clientId, ViewModelPage viewModelPage)
        {
            // validation first
            var validator = new ValidationDictionary <ViewModelPage>();

            if (viewModelPage == null)
            {
                validator.IsValid = false;
                validator.AddError("", "Page you're trying to save is null");
                return(validator);
            }

            // rule based
            if (viewModelPage.IsHomePage)
            {
            }

            DynamicPage dPage;

            if (viewModelPage.PageId <= 0)
            {
                // prepare object to save
                dPage = new DynamicPage();
                dPage.InjectFrom(viewModelPage);
                dPage.ClientId        = clientId;
                dPage.DateCreated     = DateTime.UtcNow;
                dPage.DateLastUpdated = DateTime.UtcNow;

                _pageRepository.Add(dPage);
            }
            else
            {
                var gExpression = _dynamicPageFilters.Init()
                                  .GetByPageId(viewModelPage.PageId)
                                  .GetByClientId(clientId)
                                  .GetNotDeleted()
                                  .FilterExpression;

                dPage = _pageRepository.FindBy(gExpression);

                if (dPage != null)
                {
                    // excluded fields
                    var createdDate = dPage.DateCreated;
                    // update data
                    dPage.InjectFrom(viewModelPage);
                    dPage.DateCreated     = createdDate;
                    dPage.DateLastUpdated = DateTime.UtcNow;
                    dPage.IsDeleted       = false;

                    _pageRepository.Update(dPage);
                }
            }

            var pingedPaged = GetPage(clientId, dPage.PageId);

            validator.IsValid       = true;
            validator.RelatedObject = pingedPaged;
            return(validator);
        }