// GET: Login
        public IEnumerable <LoginDTO> Login(Guid companyId, Guid cinemaId, Int64 PIN, Guid KTixPosTerminalId)
        {
            if (PIN == 1234567812345678)
            {
                //this is a super user of Kinesis
                var SUPERuser = new LoginDTO()
                {
                    loginType = "MASTER",
                    username  = "******",
                    status    = true
                };

                List <LoginDTO> list = new List <LoginDTO>();
                list.Add(SUPERuser);

                return(list);
            }
            else
            {
                var query = from p in _context.Cmsuser
                            where p.CompanyId == companyId &&
                            p.IsPosUser == true &&
                            p.Pospin == PIN &&
                            p.PospinexpiryDate >= DateTime.Now &&
                            p.IsLoggedInToPos == false &&
                            _context.Cmsusercinemas.Any
                                (bc => bc.CmsuserId == p.CmsuserId &&
                                bc.CinemaId == cinemaId)
                            select p;
                if (query == null || query.Count() == 0)
                {
                    //this is a super user of Kinesis
                    var NullUser = new LoginDTO()
                    {
                        loginType = "CMSUser",
                        username  = "******",
                        status    = false,
                        cmsUserId = new Guid("00000000-0000-0000-0000-000000000000")
                    };

                    List <LoginDTO> list = new List <LoginDTO>();
                    list.Add(NullUser);

                    return(list);
                }
                else
                {
                    Cmsuser thisUser = query.FirstOrDefault();
                    var     CMSuser  = query.Select(x => new LoginDTO()
                    {
                        loginType = "CMSUser",
                        username  = x.Name,
                        status    = true,
                        cmsUserId = x.CmsuserId
                    }).ToList();

                    //update table
                    var todo = _context.Cmsuser.Find(thisUser.CmsuserId);
                    todo.IsLoggedInToPos       = true;
                    todo.LastKtixPosTerminalId = KTixPosTerminalId;
                    _context.Cmsuser.Update(todo);
                    _context.SaveChanges();



                    return(CMSuser);
                }
            }
        }
Exemple #2
0
        //KtixPosTerminalId,KtixPosUseTypeId,KtixDescription,CompanyId,CinemaId,DeviceName,DeviceId,DeviceModel,Ipaddress,ApiendPoint
        public IEnumerable <KtixPosTerminalDTO> UpdateOrCreatePosTerminal(Guid KTixPosTerminalId, int KtixPosUseTypeId, String KtixDescription, Guid CompanyId, Guid CinemaId, String DeviceName, String DeviceId, String DeviceModel, String Ipaddress, String ApiendPoint)
        {
            var query = from p in _context.Ktixposterminal
                        where p.KtixPosTerminalId == KTixPosTerminalId
                        select p;

            if (query == null || query.Count() == 0)
            {
                //create a new record
                Ktixposterminal newTerminal = new Ktixposterminal()
                {
                    KtixPosTerminalId = Guid.NewGuid(),
                    KtixPosUseTypeId  = KtixPosUseTypeId,
                    KtixDescription   = KtixDescription,
                    CompanyId         = CompanyId,
                    CinemaId          = CinemaId,
                    DeviceName        = DeviceName,
                    DeviceId          = DeviceId,
                    DeviceModel       = DeviceModel,
                    Ipaddress         = Ipaddress,
                    ApiendPoint       = ApiendPoint
                };

                _context.Add(newTerminal);
                _context.SaveChanges();


                //returm DTO object back
                List <KtixPosTerminalDTO> Poslist = new List <KtixPosTerminalDTO>();

                var pos = new KtixPosTerminalDTO()
                {
                    KTixPosTerminalId = newTerminal.KtixPosTerminalId,
                    KTixPosUseTypeId  = newTerminal.KtixPosUseTypeId,
                    KTixDescription   = newTerminal.KtixDescription,
                    companyId         = newTerminal.CompanyId,
                    cinemaId          = newTerminal.CinemaId,
                    DeviceName        = newTerminal.DeviceName,
                    DeviceId          = newTerminal.DeviceId,
                    DeviceModel       = newTerminal.DeviceModel,
                    IPAddress         = newTerminal.Ipaddress,
                    APIEndPoint       = newTerminal.ApiendPoint
                };

                Poslist.Add(pos);
                return(Poslist);
            }
            //update
            else
            {
                //update object
                Ktixposterminal thisTerminal = query.FirstOrDefault();
                var             todo         = _context.Ktixposterminal.Find(thisTerminal.KtixPosTerminalId);

                todo.KtixPosUseTypeId = KtixPosUseTypeId;
                todo.KtixDescription  = KtixDescription;
                todo.CompanyId        = CompanyId;
                todo.CinemaId         = CinemaId;
                todo.DeviceName       = DeviceName;
                todo.DeviceId         = DeviceId;
                todo.DeviceModel      = DeviceModel;
                todo.Ipaddress        = Ipaddress;
                todo.ApiendPoint      = ApiendPoint;
                _context.Ktixposterminal.Update(todo);
                _context.SaveChanges();

                //returm DTO object back
                var pos = query.Select(x => new KtixPosTerminalDTO()
                {
                    KTixPosTerminalId = x.KtixPosTerminalId,
                    KTixPosUseTypeId  = x.KtixPosUseTypeId,
                    KTixDescription   = x.KtixDescription,
                    companyId         = x.CompanyId,
                    cinemaId          = x.CinemaId,
                    DeviceName        = x.DeviceName,
                    DeviceId          = x.DeviceId,
                    DeviceModel       = x.DeviceModel,
                    IPAddress         = x.Ipaddress,
                    APIEndPoint       = x.ApiendPoint
                }).ToList();

                return(pos);
            }
        }
        // [Authorize]
        public async Task <IActionResult> Login(Guid companyId, Guid cinemaId, Int64 PIN, Guid KTixPosTerminalId)
        {
            if (PIN == 1234567812345678)
            {
                //this is a super user of Kinesis
                //get token
                var tokenString = GenerateJSONWebToken();

                var SUPERuser = new LoginDTO()
                {
                    LoginType = "MASTER",
                    Username  = "******",
                    Status    = true,
                    Key       = tokenString
                };

                List <LoginDTO> list = new List <LoginDTO>();
                list.Add(SUPERuser);

                if (list != null)
                {
                    return(Ok(list));
                }
                else
                {
                    return(NotFound("Super user Login Failed"));
                }
            }
            else
            {
                var query = from p in _context.Cmsuser
                            where p.CompanyId == companyId &&
                            p.IsPosUser == true &&
                            p.Pospin == PIN &&
                            p.PospinexpiryDate >= DateTime.Now &&
                            p.IsLoggedInToPos == false &&
                            _context.Cmsusercinemas.Any
                                (bc => bc.CmsuserId == p.CmsuserId &&
                                bc.CinemaId == cinemaId)
                            select p;
                var result = await query.ToListAsync();

                if (result == null || result.Count() == 0)
                {
                    //this is a cms user of Kinesis
                    var NullUser = new LoginDTO()
                    {
                        LoginType = "CMSUser",
                        Username  = "******",
                        Status    = false,
                        CmsUserId = new Guid("00000000-0000-0000-0000-000000000000")
                    };

                    List <LoginDTO> list = new List <LoginDTO>();
                    list.Add(NullUser);

                    if (list != null)
                    {
                        return(Ok(list));
                    }
                    else
                    {
                        return(NotFound());
                    }
                }
                else
                {
                    Cmsuser thisUser = query.FirstOrDefault();

                    var tokenString = GenerateJSONWebToken(thisUser);

                    var CMSuser = await query.Select(x => new LoginDTO()
                    {
                        LoginType = "CMSUser",
                        Username  = x.Name,
                        Status    = true,
                        CmsUserId = x.CmsuserId,
                        Key       = tokenString
                    }).ToListAsync();

                    //update table
                    var todo = _context.Cmsuser.Find(thisUser.CmsuserId);
                    todo.IsLoggedInToPos       = true;
                    todo.LastKtixPosTerminalId = KTixPosTerminalId;
                    _context.Cmsuser.Update(todo);
                    _context.SaveChanges();

                    if (CMSuser != null)
                    {
                        return(Ok(CMSuser));
                    }
                    else
                    {
                        return(NotFound());
                    }
                }
            }
        }