Ejemplo n.º 1
0
        public void getAllUsers()
        {
            try
            {
                if (UsersFetched == null)
                {
                    return;
                }

                GetUsersEventArgs getUsersEventArgs;
                List <UserModel>  users = new List <UserModel>();



                userNode.ObserveEvent(DataEventType.Value, (DataSnapshot snapshot, string prevKey) =>
                {
                    var data = snapshot.GetValue <NSDictionary>();
                    users    = new List <UserModel>();
                    if (data == null)
                    {
                        getUsersEventArgs = new GetUsersEventArgs(new List <UserModel>());
                        UsersFetched(this, getUsersEventArgs);
                        return;
                    }
                    for (int i = 0; i < data.Values.Length; i++)
                    {
                        var area = data.Values[i];
                        UserModel.userStatus userStatus = (UserModel.userStatus) int.Parse((area.ValueForKey((NSString)"status")?.ToString()));

                        if (userStatus == UserModel.userStatus.Admin)
                        {
                            continue;
                        }



                        string uid = data.Keys[i]?.ToString();

                        string name = area.ValueForKey((NSString)"name")?.ToString();

                        string mail    = area.ValueForKey((NSString)"mail")?.ToString();
                        string address = area.ValueForKey((NSString)"address")?.ToString();
                        string phone   = area.ValueForKey((NSString)"phone")?.ToString();



                        users.Add(new UserModel(name, mail, uid, address, phone, userStatus));
                    }
                    getUsersEventArgs = new GetUsersEventArgs(users);
                    UsersFetched(this, getUsersEventArgs);
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 2
0
        public void getUser(string uid)
        {
            Task.Factory.StartNew(getUserAsync);


            async Task getUserAsync()
            {
                try
                {
                    userReference = userNode.GetChild(uid);

                    userReference.ObserveEvent(DataEventType.Value, (snapshot) =>
                    {
                        if (UserLoggedIn == null)
                        {
                            return;
                        }

                        if (snapshot.Exists)
                        {
                            var data = snapshot.GetValue <NSDictionary>();

                            //var key = snapshot.Key;
                            var name     = data["name"]?.ToString();
                            var mail     = data["mail"]?.ToString();
                            var addreess = data["address"]?.ToString();
                            var phone    = data["phone"]?.ToString();
                            UserModel.userStatus userStatus = (Vecinos2.Models.UserModel.userStatus) int.Parse((data["status"] as NSNumber).StringValue);


                            UserModel loggedUser = new UserModel(name, mail, uid, addreess, phone, userStatus);
                            if (loggedUser.UserStatus >= UserModel.userStatus.Authorized)
                            {
                                AppDelegate.CurrentUser = loggedUser;

                                //Event return ok
                                UserLoggedEventArgs okEvent;
                                if (loggedUser.UserStatus != UserModel.userStatus.Admin)
                                {
                                    okEvent = new UserLoggedEventArgs(LoginStatus.Ok);
                                    UserLoggedIn(this, okEvent);
                                }
                                else
                                {
                                    okEvent = new UserLoggedEventArgs(LoginStatus.Admin);
                                    UserLoggedIn(this, okEvent);
                                }
                            }
                            else
                            {
                                //Event return unauthorized
                                if (loggedUser.UserStatus == UserModel.userStatus.Pending)
                                {
                                    var pendingEvent = new UserLoggedEventArgs(LoginStatus.Pending);
                                    UserLoggedIn(this, pendingEvent);
                                }
                                else
                                {
                                    var unauthorizedEvent = new UserLoggedEventArgs(LoginStatus.Unauthorized);
                                    UserLoggedIn(this, unauthorizedEvent);
                                }
                            }
                        }
                        else
                        {
                            //Return wrongLogin
                            var wrongUserEvent = new UserLoggedEventArgs(LoginStatus.WrongLogin);
                            UserLoggedIn(this, wrongUserEvent);
                        }
                    });
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    var errorEvent = new UserLoggedEventArgs(LoginStatus.Error);
                    UserLoggedIn(this, errorEvent);
                }
            }
        }
Ejemplo n.º 3
0
        public void setStatusForUser(string uid, UserModel.userStatus status)
        {
            int newStatus = (int)status;

            userNode.GetChild($"{uid}/status").SetValue <NSNumber>((NSNumber)newStatus);
        }