Beispiel #1
0
 public JsonResult Post([FromBody] Models.FromNg.LoginCredential cred)
 {
     return(new JsonResult(this._usersDb.Login(cred)));
 }
Beispiel #2
0
        /*return values is encoded in the user basicId
         *  basicId = >= 0 | OK
         *  basicId = > -1 | Email non registrata
         *  basicId = > -2 | Email trovata ma password sbagliata
         */
        public Models.ToNg.User Login(Models.FromNg.LoginCredential credential)
        {
            credential.Email    = credential.Email.Trim().ToLower();
            credential.Password = HashString(credential.Password);
            int    result              = 0;
            string errorMessage        = "";
            string errorInnerException = "";

            //test inserimento nuova persona

            using (var context = new TOOEZContext())
            {
                bool exists = context.PeopleBasic.Any(p => p.Email == credential.Email);

                //email trovata
                if (exists)
                {
                    PeopleBasic      basic = context.PeopleBasic.FirstOrDefault(p => p.Email == credential.Email);
                    PeopleInfo       info  = context.PeopleInfo.FirstOrDefault(p => p.BasicId == basic.BasicId);
                    Models.ToNg.User user  = new Models.ToNg.User()
                    {
                        BasicId         = basic.BasicId,
                        Email           = basic.Email,
                        Name            = info.Name,
                        Surname         = info.Surname,
                        Nickname        = info.Nickname,
                        ShowPrivateName = info.ShowPrivateName,
                    };

                    //email e password corretti
                    if (basic.Password == credential.Password)
                    {
                        Dbg dbg = new Dbg()
                        {
                            DateTime = DateTime.Now,
                            State    = 1,
                            Object   = "LoginService",
                            Info     = $"Accesso effettuato con email [ {basic.Email} ]",
                        };
                        context.Dbg.Add(dbg);
                        context.SaveChanges();
                        return(user);
                    }

                    //email trovata ma password sbagliata
                    else
                    {
                        Dbg dbg = new Dbg()
                        {
                            DateTime = DateTime.Now,
                            State    = 0,
                            Object   = "LoginService",
                            Info     = $"Tentata registrazione con email [ {credential.Email} ] trovata ma password sbagliata.",
                        };
                        context.Dbg.Add(dbg);
                        context.SaveChanges();
                        return(new Models.ToNg.User()
                        {
                            BasicId = -2
                        });
                    }
                }

                //email non trovata
                else
                {
                    Dbg dbg = new Dbg()
                    {
                        DateTime = DateTime.Now,
                        State    = 0,
                        Object   = "LoginService",
                        Info     = $"Tentata registrazione con email non registrata [ {credential.Email} ]",
                    };
                    context.Dbg.Add(dbg);
                    context.SaveChanges();
                    return(new Models.ToNg.User()
                    {
                        BasicId = -1
                    });
                }
            }
        }