示例#1
0
        public async Task <ActionResult <UsuarioItem> > Post(UsuarioItem item)
        {
            _context.UsuarioItems.Add(item);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetUsuario), new { identificacion = item.Identificacion }, item));
        }
示例#2
0
        public async Task <IActionResult> SalvarUsuario([FromBody] UsuarioItem usuarioToSave)
        {
            string      msgRule       = "";
            UsuarioItem objLstUsuario = new UsuarioItem();

            objLstUsuario = _usuarioContext.UsuarioItems.Where(m => m.id_Usuario == usuarioToSave.id_Usuario).FirstOrDefault();

            if (objLstUsuario != null)
            {
                objLstUsuario.id_Usuario                = usuarioToSave.id_Usuario;
                objLstUsuario.Ativo                     = usuarioToSave.Ativo;
                objLstUsuario.login_Usuario             = usuarioToSave.login_Usuario;
                objLstUsuario.nome_Usuario              = usuarioToSave.nome_Usuario;
                objLstUsuario.senha_Usuario             = usuarioToSave.senha_Usuario;
                objLstUsuario.UsuarioEmpresaPerfilItems = usuarioToSave.UsuarioEmpresaPerfilItems;
                IEnumerable <UsuarioEmpresaPerfilItem> query = _usuarioContext.UsuarioEmpresaPerfilItems
                                                               .OfType <UsuarioEmpresaPerfilItem>()
                                                               .Where(c => c.id_Usuario == usuarioToSave.id_Usuario);

                foreach (UsuarioEmpresaPerfilItem item in query)
                {
                    _usuarioContext.UsuarioEmpresaPerfilItems.Remove(item);
                }

                _usuarioContext.UsuarioItems.Update(objLstUsuario);
            }
            else
            {
                _usuarioContext.UsuarioItems.Add(usuarioToSave);
            }

            //Create Integration Event to be published through the Event Bus
            var usuarioInclusaoEvent = new UsuarioInclusaoIE(usuarioToSave.id_Usuario, usuarioToSave.nome_Usuario, usuarioToSave.login_Usuario, usuarioToSave.senha_Usuario);

            try
            {
                // Achieving atomicity between original Catalog database operation and the IntegrationEventLog thanks to a local transaction
                await _usuarioIntegrationEventService.SaveEventAndUsuarioContextChangesAsync(usuarioInclusaoEvent, usuarioToSave);
            }
            catch (Exception e)
            {
                //ruleValidaNomeUsuarioUnique(e.Message, ref msgRule))
                //Validações das CONSTRAINTS do BANCO
                if (ruleValidaLoginUsuarioUnique(e.Message, ref msgRule))
                {
                    return(BadRequest(msgRule));
                }
                else
                {
                    return(BadRequest(e.Message));
                }
            }
            // Publish through the Event Bus and mark the saved event as published
            await _usuarioIntegrationEventService.PublishThroughEventBusAsync(usuarioInclusaoEvent);

            return(CreatedAtAction(nameof(SalvarUsuario), usuarioToSave.id_Usuario));
        }
示例#3
0
        public async Task <IActionResult> Put(string id, UsuarioItem item)
        {
            if (id != item.Identificacion)
            {
                return(BadRequest());
            }
            _context.Entry(item).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(NoContent());
        }
        private UsuarioItem CreateSetorItem(string[] column, string[] headers)
        {
            if (column.Count() != headers.Count())
            {
                throw new Exception($"column count '{column.Count()}' not the same as headers count'{headers.Count()}'");
            }

            var setorItem = new UsuarioItem()
            {
                id_Empresa = Guid.Parse(column[Array.IndexOf(headers, "id_empresa")].Trim('"').Trim()),
                id_Setor   = Guid.Parse(column[Array.IndexOf(headers, "id_setor")].Trim('"').Trim()),
                nome_Setor = column[Array.IndexOf(headers, "nome_setor")].Trim('"').Trim()
            };

            return(setorItem);
        }
        public async Task Inc_SaveUsuario()
        {
            //using (var server = CreateServer())
            //{
            for (int i = 0; i < 1000; i++)
            {
                //var myTestClient = server.CreateClient();
                IEnumerable <string> Ltoken = await GetAsync();

                using (var myTestClient = new HttpClient())
                {
                    UsuarioItem usuarioItem = new UsuarioItem();
                    usuarioItem.nome_Usuario = "TESTE" + i.ToString();        //+ Guid.NewGuid().ToString();
                    var content = new StringContent(JsonConvert.SerializeObject(usuarioItem), System.Text.Encoding.UTF8, "application/json");
                    myTestClient.SetBearerToken(((string[])Ltoken)[0]);
                    var response = await myTestClient.PostAsync(Post.SaveUsuario(), content);
                }
            }
            //}
        }
示例#6
0
        public static UsuarioItem GetUser()
        {
            int         user_id = 0;
            UsuarioItem usuario = null;

            if (HttpContext.Current.User != null && HttpContext.Current.User.Identity is FormsIdentity)
            {
                FormsAuthenticationTicket ticket = ((FormsIdentity)HttpContext.Current.User.Identity).Ticket;
                if (ticket != null)
                {
                    user_id = Convert.ToInt32(ticket.UserData);
                }
            }

            using (AppDBContext db = new AppDBContext())
            {
                try
                {
                    var objUser = db.Usuarios
                                  .Where(u => u.deleted_at == null && u.idUsuario.Equals(user_id))
                                  .Select(u => new UsuarioItem
                    {
                        idUsuario = u.idUsuario,
                        nombre    = u.nombre,
                        apellido  = u.apellido,
                        usuario   = u.usuario,
                        email     = u.email,
                        rol       = u.Roles.rol
                    }).FirstOrDefault();

                    usuario = objUser;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.StackTrace);
                }
            }
            return(usuario);
        }
 public async Task SaveEventAndUsuarioContextChangesAsync(IntegrationEvent evt, UsuarioItem usuarioToSave)
 {
     var strategy = _usuarioContext.Database.CreateExecutionStrategy();
     await strategy.ExecuteAsync(async() =>
     {
         using (var transaction = _usuarioContext.Database.BeginTransaction())
         {
             try
             {
                 await _usuarioContext.SaveChangesAsync();
                 //Tratamento de Identity
                 ((Events.UsuarioInclusaoIE)evt).UsuarioId = usuarioToSave.id_Usuario;
                 //Tratamento relacionamento
                 ((Events.UsuarioInclusaoIE)evt).UsuarioEmpresaPerfilItems = usuarioToSave.UsuarioEmpresaPerfilItems;
                 await _eventLogService.SaveEventAsync(evt, _usuarioContext.Database.CurrentTransaction.GetDbTransaction());
                 transaction.Commit();
             }
             catch (Exception ex)
             {
                 transaction.Rollback();
                 var sqlException = ex.InnerException as System.Data.SqlClient.SqlException;
                 throw new Exception(sqlException.Number + "::" + sqlException.Message);
             }
         }
     });
 }