Exemple #1
0
        internal CurrentUser(IEnumerable <Recording> list, string PID, string PWD_hash, int UID, IPSKcore service)
        {
            _TargetService = service;
            this.PID       = PID;
            this.PWD_hash  = PWD_hash;
            this.UID       = UID;

            //for (int i = 0; i < list.Count; i++)
            //    recordings.Add(new Info(list[i], this));
            foreach (var t in list)
            {
                recordings.Add(new Info(t, this));
            }
            recordings.CollectionChanged += Recordings_CollectionChanged;
        }
Exemple #2
0
 private void Obj_Disposed(IPSKcore obj)
 {
     _ServiceCollection.Remove(obj);
 }
Exemple #3
0
 public Info(IPSKcore service)
 {
     this.service = service;
 }
Exemple #4
0
        public async Task TryLoginAsync(UserNotFoundReceipt e, IPSKcore service)
        {
            using (APPDbContext db = new APPDbContext())
            {
                bool b_UserVertifyEvent        = false;
                bool b_UserPwdVertifyFailEvent = false;
                bool b_UserNotFoundEvent       = false;

                await Task.Run(() =>
                {
                    string pwd_hash_aes = AssetsController.EncryptwithAppaesobj(PWD_hash);

                    var iuserlist = from t in db.Users
                                    where t.pid == PID
                                    select t;
                    if (iuserlist.Count() == 0)
                    {
                        switch (e)
                        {
                        case UserNotFoundReceipt.Create:
                            User dbuser = new User()
                            {
                                pid = PID,
                                pwd = pwd_hash_aes
                            };
                            db.Entry(dbuser).State = Microsoft.EntityFrameworkCore.EntityState.Added;
                            db.SaveChangesAsync();
                            break;

                        case UserNotFoundReceipt.None:
                            b_UserNotFoundEvent = true;
                            return;
                        }
                    }
                    else
                    {
                        var vertifyuser = iuserlist.ToList()[0];
                        if (vertifyuser.pid != PID || vertifyuser.pwd != pwd_hash_aes)
                        {
                            b_UserPwdVertifyFailEvent = true;
                        }
                    }
                    int UID = (from t in db.Users
                               where PID == t.pid && pwd_hash_aes == t.pwd
                               select t).ToList()[0].ID;

                    var rlist = from t in db.Recordings
                                where t.uid == UID
                                select t;

                    service.Regist(new CurrentUser(rlist, PID, PWD_hash, UID, service));
                    b_UserVertifyEvent = true;
                });



                if (b_UserPwdVertifyFailEvent)
                {
                    UserPwdVertifyFailEvent?.Invoke(this);
                }
                if (b_UserVertifyEvent)
                {
                    UserVertifyEvent?.Invoke(this);
                }
                if (b_UserNotFoundEvent)
                {
                    UserNotFoundEvent?.Invoke(this);
                }
            }
        }