public WhoWeArePage getPage(int?id) { WhoWeArePage result = null; var pagesQueryable = context.WhoWeArePages.AsQueryable(); if (id != null && id > 0) { pagesQueryable = pagesQueryable.Where(p => p.Id == id); } else { pagesQueryable = context.WhoWeArePages.Where(p => p.Active == true); } result = pagesQueryable.Include(p => p.HistoryImages) .Include(p => p.HeadImages) .Include(p => p.ValuesSection) .Include(p => p.AdSection) .FirstOrDefault(); if (result != null) { result.HistoryImages.Sort(); } 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); }
private AdministrationServiceResult ActivatePage(WhoWeArePage targetPage, WhoWeArePage activePage) { AdministrationServiceResult result = new AdministrationServiceResult(); if (activePage != null && targetPage != null) { activePage.Active = false; targetPage.Active = true; context.SaveChanges(); } else { result.Errors.Add("Parámetros no válidos"); } return(result); }
public ActionResult PreviewPage(WhoWeArePage page) { WhoWeAreService service = new WhoWeAreService(context); var operationResult = service.PreviewPage(new WhoWeAreInputModel() { page = page, uploadedFiles = Request.Files }); if (operationResult.IsValid) { return(Json(new AjaxResponse { Success = true, Message = "Success" }, JsonRequestBehavior.AllowGet)); } string errorMessage = ""; operationResult.Errors.ForEach(e => errorMessage += ("\n" + e)); return(Json(new AjaxResponse { Success = true, Message = errorMessage }, JsonRequestBehavior.AllowGet)); }
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); }
public ActionResult AddOrEdit(WhoWeArePage page) { HttpFileCollectionBase files = Request.Files; WhoWeAreService service = new WhoWeAreService(context); var operationResult = service.CreateOrUpdate(new WhoWeAreInputModel() { page = page, uploadedFiles = Request.Files }, true); if (operationResult.IsValid) { return(Json(new AjaxResponse { Success = true, Message = "Los cambios se aplicaron correctamente en el servidor" }, JsonRequestBehavior.AllowGet)); } string errorMessage = ""; operationResult.Errors.ForEach(e => errorMessage += ("\n" + e)); return(Json(new AjaxResponse { Success = false, Message = errorMessage }, JsonRequestBehavior.AllowGet)); }
public WhoWeAreValidInputModelWIthReferencePageSpecification(WhoWeArePage referencePage) { this.referencePage = referencePage; }
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); }