Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }