private AdministrationServiceResult CreatePageFromReference(DoctorsOfficeInputModel inputModel, DoctorsOfficePage referencePage) { AdministrationServiceResult result = new AdministrationServiceResult(); var specification = new DoctorsOfficeValidInputModelSpecification(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.ServicesSection, referencePage.ServicesSection, processedFIles); 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(DoctorsOfficeInputModel inputModel, bool setAsActivePage = false) { AdministrationServiceResult result; var referencePage = this.getPage(inputModel.page.Id); if (referencePage != null) { result = CreatePageFromReference(inputModel, referencePage); if (result.IsValid == true) { DoctorsOfficePage page = result.ResultObject as DoctorsOfficePage; page.Active = false; context.DoctorsOfficePages.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(DoctorsOfficeInputModel 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("DoctorsOffice"); if (storedPagePreview != null) { context.PagePreviews.Remove(storedPagePreview); } context.PagePreviews.Add(new PagePreview { PageName = "DoctorsOffice", PageValue = stream.GetBuffer() }); context.SaveChanges(); } } else { result = new AdministrationServiceResult(); result.Errors.Add("Pagina no válida"); } return(result); }