private AdministrationServiceResult CreatePageFromReference(WhoWeAreInputModel inputModel, WhoWeArePage referencePage) { AdministrationServiceResult result = new AdministrationServiceResult(); var specification = new WhoWeAreValidInputModelWIthReferencePageSpecification(referencePage); var brokenRules = specification.brokenRules(inputModel); result.Errors.AddRange(brokenRules); if (result.IsValid) { var page = inputModel.page; if (page.Equals(referencePage) == false) { var fileService = new FileService(); var processedFIles = fileService.processFiles(inputModel.uploadedFiles, "~/UploadedFiles"); fileService.mapFilesToSectionForCreateOrUpdate(page.HeadImages, referencePage.HeadImages, processedFIles); fileService.mapFilesToSectionForCreateOrUpdate(page.ValuesSection, referencePage.ValuesSection, processedFIles); fileService.mapFilesToSectionForCreateOrUpdate(page.HistoryImages, referencePage.HistoryImages, processedFIles); var adFileName = page.AdSection.ImageFileName; page.AdSection.ImageFileName = (String.IsNullOrEmpty(adFileName) == false && processedFIles.ContainsKey(adFileName)) ? processedFIles[adFileName] : referencePage.AdSection.ImageFileName; page.CreationDate = DateTime.Now; result.ResultObject = page; } else { result.Errors.Add("Esta página ya se encuentra en el catálogo"); } } return(result); }
public AdministrationServiceResult CreateOrUpdate(WhoWeAreInputModel inputModel, bool setAsActivePage = false) { AdministrationServiceResult result; var referencePage = this.getPage(inputModel.page.Id); if (referencePage != null) { result = CreatePageFromReference(inputModel, referencePage); if (result.IsValid == true) { WhoWeArePage page = result.ResultObject as WhoWeArePage; page.Active = false; context.WhoWeArePages.Add(page); context.SaveChanges(); if (setAsActivePage == true) { this.ActivatePage(page, referencePage); } } } else { result = new AdministrationServiceResult(); result.Errors.Add("Pagina no válida"); } return(result); }
public AdministrationServiceResult PreviewPage(WhoWeAreInputModel inputModel) { AdministrationServiceResult result; var referencePage = this.getPage(inputModel.page.Id); if (referencePage != null) { result = CreatePageFromReference(inputModel, referencePage); if (result.IsValid == true) { WhoWeArePage page = result.ResultObject as WhoWeArePage; result.ResultObject = page; IFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, page); stream.Close(); var storedPagePreview = context.PagePreviews.Find("WhoWeAre"); if (storedPagePreview != null) { context.PagePreviews.Remove(storedPagePreview); } context.PagePreviews.Add(new PagePreview { PageName = "WhoWeAre", PageValue = stream.GetBuffer() }); context.SaveChanges(); } } else { result = new AdministrationServiceResult(); result.Errors.Add("Pagina no válida"); } return(result); }