示例#1
0
        public async Task <int?> Login()
        {
            try
            {
                LoginRequests x = await Repository.Login(UserAccount, UserPassword);

                IdCuentaUsuario = x.IdCuentaUsuario;
                IdRol           = x.IdRol;
                IdEmpleado      = x.IdEmpleado;
                Nombres         = x.Nombres;
                IdTurnoEmpleado = x.IdTurnoEmpleado;
                ReglaUsuario    = x.ReglaUsuario;
                IdSucursal      = x.IdSucursal;
                NombreSucursal  = x.NombreSucursal;
                Direccion       = x.Direccion;
                Telefono        = x.Telefono;
                RFC             = x.RFC;

                return(x.IsValid);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Starts a session with a client.
        /// </summary>
        public override async Task Login(LoginRequest request,
                                         IServerStreamWriter <ServerResponse> responseStream,
                                         ServerCallContext context)
        {
            try
            {
                LoginRequests.Enqueue(request);

                while (true)
                {
                    if (!LoginResponses.ContainsKey(request.Login))
                    {
                        continue;
                    }

                    if (LoginResponses[request.Login].TryDequeue(out var loginResponse))
                    {
                        await SendLoginResponses(request.Login, responseStream, loginResponse);
                    }

                    if (!Responses.ContainsKey(request.Login))
                    {
                        continue;
                    }

                    if (Responses[request.Login].TryDequeue(out var response))
                    {
                        if (response.KeyInput == KeyInput.Exit && response.Login == request.Login)
                        {
                            LoginResponses.TryRemove(request.Login, out _);
                            Responses.TryRemove(request.Login, out _);
                            break;
                        }

                        await responseStream.WriteAsync(response);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
示例#3
0
        public async Task <LoginRequests> Login(string Account, string Password)
        {
            try
            {
                LoginRequests loginRequests = new LoginRequests();
                using (IDbConnection conexion = new SqlConnection(WebConnectionString))
                {
                    conexion.Open();
                    var dynamicParameters = new DynamicParameters();
                    dynamicParameters.Add("@Cuenta", Account);
                    dynamicParameters.Add("@Password", Password);
                    var dr = await conexion.ExecuteReaderAsync("SPCID_Login", param : dynamicParameters, commandType : CommandType.StoredProcedure);

                    while (dr.Read())
                    {
                        loginRequests.IsValid = !dr.IsDBNull(dr.GetOrdinal("IsValid")) ? dr.GetInt32(dr.GetOrdinal("IsValid")) : 0;
                        if (loginRequests.IsValid == 1)
                        {
                            loginRequests.IdCuentaUsuario = !dr.IsDBNull(dr.GetOrdinal("IdCuentaUsuario")) ? dr.GetGuid(dr.GetOrdinal("IdCuentaUsuario")) : Guid.Empty;
                            loginRequests.IdRol           = !dr.IsDBNull(dr.GetOrdinal("IdRol")) ? dr.GetInt32(dr.GetOrdinal("IdRol")) : 0;
                            loginRequests.IdTurnoEmpleado = dr.GetInt32(dr.GetOrdinal("IdTurnoEmpleado"));
                            loginRequests.IdEmpleado      = !dr.IsDBNull(dr.GetOrdinal("IdEmpleado")) ? dr.GetGuid(dr.GetOrdinal("IdEmpleado")) : Guid.Empty;
                            loginRequests.Nombres         = dr.GetString(dr.GetOrdinal("Nombre"));
                            loginRequests.IdSucursal      = !dr.IsDBNull(dr.GetOrdinal("IdSucursal")) ? dr.GetInt32(dr.GetOrdinal("IdSucursal")) : 0;
                            loginRequests.NombreSucursal  = dr.GetString(dr.GetOrdinal("NombreSucursal"));
                            loginRequests.Direccion       = dr.GetString(dr.GetOrdinal("Direccion"));
                            loginRequests.Telefono        = dr.GetString(dr.GetOrdinal("Telefono"));
                            loginRequests.RFC             = dr.GetString(dr.GetOrdinal("RFC"));
                            loginRequests.ReglaUsuario    = dr.GetString(dr.GetOrdinal("IdReglas")).Split(',');
                        }
                    }
                    dr.Close();
                }
                return(loginRequests);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#4
0
 public ReglasRol()
 {
     ReglasLogin = new LoginRequests();
 }