public BaseResponse <string> insertPerfilUsuario(List <UsuarioPerfilRequest> model) { BaseResponse <string> result = new BaseResponse <string>(); using (MesaDineroContext context = new MesaDineroContext()) { using (var transaccion = context.Database.BeginTransaction()) { try { //Tb_MD_Mae_Usuarios usuariovalida = context.Tb_MD_Mae_Usuarios.Where(x => x.vEmailUsuario == model.email && x.vRucEmpresa == model.rucEmpresa).FirstOrDefault(); //if (usuariovalida != null) //{ // throw new Exception("Ya existe un usuario con el mismo correo en esa empresa"); //} if (model.Count == 0) { throw new Exception("Debe Seleccionar un Perfil"); } List <Tb_MD_PerfilUsuario> userPerfil = null; int codigoUsuario = Convert.ToInt16(model.FirstOrDefault().codigoUsuario); userPerfil = context.Tb_MD_PerfilUsuario.Where(x => x.IdUsuario == codigoUsuario).ToList(); if (userPerfil.Count > 0) { userPerfil.ForEach(x => { x.iEstadoRegistro = EstadoRegistroTabla.Eliminado; }); } model.ForEach(x => { Tb_MD_PerfilUsuario uservalida; uservalida = context.Tb_MD_PerfilUsuario.Where(y => y.IdUsuario == x.codigoUsuario && y.IdPerfil == x.codigoPerfil).FirstOrDefault(); if (uservalida != null) { uservalida.iEstadoRegistro = EstadoRegistroTabla.Activo; } if (uservalida == null) { Tb_MD_PerfilUsuario usuarioPerfil = new Tb_MD_PerfilUsuario(); usuarioPerfil.IdUsuario = x.codigoUsuario; usuarioPerfil.IdPerfil = x.codigoPerfil; usuarioPerfil.iEstadoRegistro = EstadoRegistroTabla.Activo; context.Tb_MD_PerfilUsuario.Add(usuarioPerfil); } }); context.SaveChanges(); transaccion.Commit(); result.success = true; } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { #region Error EntityFramework var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); var fullErrorMessage = string.Join("; ", errorMessages); result.success = false; result.error = fullErrorMessage; transaccion.Rollback(); #endregion } catch (Exception ex) { result.success = false; transaccion.Rollback(); result.error = ex.InnerException != null ? ex.InnerException.Message : ex.Message; } } } return(result); }
public PageResultSP <PerfilResponse> getAllPerfilUsuario(PageResultParam param) { PageResultSP <PerfilResponse> result = new PageResultSP <PerfilResponse>(); result.data = new List <PerfilResponse>(); try { int page = param.pageIndex + 1; int total = 0; #region Parametros var pageParam = new SqlParameter { ParameterName = "PageNumber", Value = page }; var itemsParam = new SqlParameter { ParameterName = "ItemsPerPage", Value = param.itemPerPage }; #endregion int userId = 0; if (param.textFilter != "") { userId = Convert.ToInt16(param.textFilter); } using (MesaDineroContext context = new MesaDineroContext()) { result.data = context.Database.SqlQuery <PerfilResponse>("exec Proc_Sel_Perfil @PageNumber,@ItemsPerPage", pageParam, itemsParam).ToList <PerfilResponse>(); if (result.data.Count > 0) { total = Convert.ToInt32(result.data[0].total); } if (userId != 0) { result.data.ForEach(x => { Tb_MD_PerfilUsuario perfil = context.Tb_MD_PerfilUsuario.Where(y => y.IdUsuario == userId && y.IdPerfil == x.codigo && y.iEstadoRegistro == EstadoRegistroTabla.Activo).FirstOrDefault(); if (perfil != null) { x.checkActivo = true; } }); } } #region Copiar Al Cual var pag = Utilities.ResultadoPagination(page, param.itemPerPage, total); result.itemperpage = pag.itemperpage; result.limit = pag.limit; result.numbersPages = pag.numbersPages; result.offset = pag.offset; result.page = pag.page; result.PageCount = pag.pageCount; result.total = pag.total; result.success = true; #endregion } catch (Exception ex) { result.error = ex.InnerException != null ? ex.InnerException.Message : ex.Message; result.success = false; } return(result); }