using Apphr.Application.Servicios.DTOs;using Apphr.Domain.Entities;using Apphr.Domain.Enums;using Apphr.WebUI.Common;using Apphr.WebUI.Controllers;using Apphr.WebUI.CustomAttributes;using PagedList;using System;using System.Collections.Generic;using System.Data.Entity;using System.Linq;using System.Threading.Tasks;using System.Web.Mvc;
namespace Apphr.WebUI.Areas.General.Controllers{ [Authorize] [LogAction] public class ServiciosController : DbController { [AppAuthorization(Permit.View)] public ActionResult Index() // GET { ViewBag.Permissions = Utilidades.GetPermissions(ControllerContext, userName); return View(); }
[ValidateAntiForgeryToken] public ActionResult JsFilterIndex(string Buscar, int? Page) // GET { IQueryable<Servicio> regs; int pageIndex = Page.HasValue ? Convert.ToInt32(Page) : 1;
regs = (from p in db.Servicios select p);
if (!string.IsNullOrEmpty(Buscar)) regs = regs.Where(x => x.Nombre.Contains(Buscar));
regs = regs.OrderBy(x => x.Nombre);
var rows = regs.Select(x => new ServicioDTOIxGrid { ServicioId = x.ServicioId, Nombre = x.Nombre, Area = x.Area, }).ToList();
var dto = (PagedList<ServicioDTOIxGrid>)rows.ToPagedList(pageIndex, pageSize);
ViewBag.PLROpions = PagedListOptions; return PartialView("_IndexGrid", dto); }
public async Task<ActionResult> JsViewMaster(int? id) // GET { var reg = await db.Servicios .Where(x => x.ServicioId == id) .FirstOrDefaultAsync();
var dto = new ServicioDTOView() { Nombre = reg.Nombre, Area = reg.Area, };
return PartialView("_ViewMaster", dto); }
public ActionResult JsGetCEditForm(int? id) // GET { Permit[] permisosRequeridos = { Permit.Edit }; bool hasPermit = Utilidades.hasPermit(permisosRequeridos, ControllerContext, userName); if (!hasPermit) { return Json(new { success = false, message = Resources.Msg.privileges_none }, JsonRequestBehavior.AllowGet); } if (id == null) { return PartialView("_CEditMaster", new ServicioDTOCEdit { ServicioId = 0 }); } var reg = db.Servicios.Where(x => x.ServicioId == id).FirstOrDefault();
if (reg == null) { return PartialView("_RegisterNotFound"); }
var dto = new ServicioDTOCEdit() { ServicioId = reg.ServicioId, Nombre = reg.Nombre, Area = reg.Area, };
return PartialView("_CEditMaster", dto); }
[ValidateAntiForgeryToken] public async Task<JsonResult> JsSaveMaster(ServicioDTOCEdit dto) // POST { List<Permit> ListPermit = new List<Permit>();
if (dto.ServicioId == 0) ListPermit.Add(Permit.Create); else ListPermit.Add(Permit.Edit);
bool hasPermit = Utilidades.hasPermit(ListPermit.ToArray(), ControllerContext, userName); if (!hasPermit) { return Json(new { success = false, message = Resources.Msg.privileges_none }, JsonRequestBehavior.DenyGet); } try { if (!ModelState.IsValid) { return Json(new { success = false, message = Resources.Msg.failure_model_invalid }); } if (dto.ServicioId == 0) { // INSERT // Validación Adicional //if (db.ORTSolicitudesPedido.Any(x => x.Anio == dto.Fecha.Year && x.Numero == dto.Numero)) //{ // return Json(new { success = false, message = "Esta Solicitud de Pedido ya esta registrada." }); //}
var reg = new Servicio() { Nombre = dto.Nombre, Area = dto.Area };
db.Servicios.Add(reg); await db.SaveChangesAsync(); return Json(new { success = true, message = Resources.Msg.success_create, data = reg }, JsonRequestBehavior.DenyGet); } else { // UPDATE var reg = await db.Servicios .Where(x => x.ServicioId == dto.ServicioId) .FirstOrDefaultAsync();
reg.Nombre = dto.Nombre; reg.Area = dto.Area;
await db.SaveChangesAsync(); return Json(new { success = true, message = Resources.Msg.success_edit, data = reg }, JsonRequestBehavior.DenyGet); } } catch (Exception ex) { return Json(new { success = false, message = Resources.Msg.failure, messageEx = ex.Message, messageInner = ex.InnerException }, JsonRequestBehavior.DenyGet); } }
[ValidateAntiForgeryToken] public async Task<JsonResult> JsDeleteMaster(int id) // POST { Permit[] permisosRequeridos = { Permit.Delete }; bool hasPermit = Utilidades.hasPermit(permisosRequeridos, ControllerContext, userName); if (!hasPermit) { return Json(new { success = false, message = Resources.Msg.privileges_none }, JsonRequestBehavior.DenyGet); } try { using (DbContextTransaction t = db.Database.BeginTransaction()) { try { var reg = await db.Servicios .Where(x => x.ServicioId == id) .FirstOrDefaultAsync();
db.Servicios.Remove(reg);
await db.SaveChangesAsync(); t.Commit(); } catch (Exception) { t.Rollback(); throw; } } return Json(new { success = true, message = Resources.Msg.success_delete }, JsonRequestBehavior.DenyGet); } catch (Exception ex) { return Json(new { success = false, message = Resources.Msg.failure, exMessage = ex.Message, exInner = ex.InnerException }, JsonRequestBehavior.DenyGet); } } }}