Example #1
0
        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);
        }
Example #2
0
        public DoctorsOfficePage getActivePage()
        {
            DoctorsOfficePage result = null;

            result = context.DoctorsOfficePages.Where(p => p.Active == true)
                     .Include(p => p.HeadImages)
                     .Include(p => p.ServicesSection)
                     .FirstOrDefault();

            return(result);
        }
Example #3
0
        private AdministrationServiceResult ActivatePage(DoctorsOfficePage targetPage, DoctorsOfficePage 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);
        }
Example #4
0
        public DoctorsOfficePage getPage(int?id)
        {
            DoctorsOfficePage result = null;

            var pagesQueryable = context.DoctorsOfficePages.AsQueryable();

            if (id != null && id > 0)
            {
                pagesQueryable = pagesQueryable.Where(p => p.Id == id);
            }
            else
            {
                pagesQueryable = context.DoctorsOfficePages.Where(p => p.Active == true);
            }

            result = pagesQueryable.Include(p => p.HeadImages)
                     .Include(p => p.ServicesSection)
                     .FirstOrDefault();

            return(result);
        }
Example #5
0
        public ActionResult PreviewPage(DoctorsOfficePage page)
        {
            var operationResult = service.PreviewPage(new DoctorsOfficeInputModel()
            {
                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));
        }
Example #6
0
        public ActionResult AddOrEdit(DoctorsOfficePage page)
        {
            HttpFileCollectionBase files = Request.Files;

            var operationResult = service.CreateOrUpdate(new DoctorsOfficeInputModel()
            {
                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));
        }
Example #7
0
        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 DoctorsOfficeValidInputModelSpecification(DoctorsOfficePage referencePage)
 {
     this.referencePage = referencePage;
 }