//[HttpPost]
        //[Route("GetByID")]
        //public IHttpActionResult GetByID(int posSettingId)
        //{
        //
        //
        //    string token = "";
        //    if (headers.Contains("APIKey"))
        //    {
        //        token = headers.GetValues("APIKey").First();
        //    }
        //    Validation validation = new Validation();
        //    bool valid = validation.CheckApiKey(token);

        //    if (valid)
        //    {
        //        using (incposdbEntities entity = new incposdbEntities())
        //        {
        //            var row = (from S in entity.posSetting
        //                       join psal in entity.printers on S.saleInvPrinterId equals psal.printerId into jsale
        //                       join prep in entity.printers on S.reportPrinterId equals prep.printerId into jrep
        //                       join paper in entity.paperSize on S.saleInvPapersizeId equals paper.sizeId into jpaper
        //                       join dpaper in entity.paperSize on S.docPapersizeId equals dpaper.sizeId into jdcpaper
        //                       from jdocpaper in jdcpaper.DefaultIfEmpty()

        //                       from jjsale in jsale.DefaultIfEmpty()
        //                       from jjrep in jrep.DefaultIfEmpty()
        //                       from jjpaper in jpaper.DefaultIfEmpty()
        //                       where S.posSettingId == posSettingId
        //                       select new PosSettingModel()
        //                       {
        //                           posSettingId = S.posSettingId,

        //                           posId = S.posId,
        //                           saleInvPrinterId = S.saleInvPrinterId,
        //                           reportPrinterId = S.reportPrinterId,
        //                           saleInvPapersizeId = S.saleInvPapersizeId,
        //                           posSerial = S.posSerial,
        //                           repprinterId = jjrep.printerId,
        //                           repname = jjrep.name,
        //                           repprintFor = jjrep.printFor,
        //                           salprinterId = jjsale.printerId,
        //                           salname = jjsale.name,
        //                           salprintFor = jjsale.printFor,
        //                           sizeId = jjpaper.sizeId,
        //                           paperSize1 = jjpaper.paperSize1,

        //                           docPapersize = jdocpaper.paperSize1,
        //                           docPapersizeId = S.docPapersizeId,
        //                           saleSizeValue = jjpaper.sizeValue,// paper sale
        //                           docSizeValue = jdocpaper.sizeValue,// paper doc
        //                       }).FirstOrDefault();

        //            if (row == null)
        //                return NotFound();
        //            else
        //                return Ok(row);
        //        }
        //    }
        //    else
        //        return NotFound();
        //}


        // get by posId
        private PosSettingModel GetByposId(int posId)
        {
            using (incposdbEntities entity = new incposdbEntities())
            {
                PosSettingModel item = (from S in entity.posSetting
                                        join psal in entity.printers on S.saleInvPrinterId equals psal.printerId into jsale
                                        join prep in entity.printers on S.reportPrinterId equals prep.printerId into jrep
                                        join paper in entity.paperSize on S.saleInvPapersizeId equals paper.sizeId into jpaper
                                        join dpaper in entity.paperSize on S.docPapersizeId equals dpaper.sizeId into jdcpaper
                                        from jdocpaper in jdcpaper.DefaultIfEmpty()
                                        from jjsale in jsale.DefaultIfEmpty()
                                        from jjrep in jrep.DefaultIfEmpty()
                                        from jjpaper in jpaper.DefaultIfEmpty()
                                        where S.posId == posId
                                        select new PosSettingModel()
                {
                    posSettingId = S.posSettingId,

                    posId = S.posId,
                    saleInvPrinterId = S.saleInvPrinterId,
                    reportPrinterId = S.reportPrinterId,
                    saleInvPapersizeId = S.saleInvPapersizeId,
                    posSerial = S.posSerial,
                    repprinterId = S.reportPrinterId,
                    repname = jjrep.name,
                    repprintFor = jjrep.printFor,
                    salprinterId = S.saleInvPrinterId,
                    salname = jjsale.name,
                    salprintFor = jjsale.printFor,
                    sizeId = S.saleInvPapersizeId,
                    paperSize1 = jjpaper.paperSize1,
                    docPapersize = jdocpaper.paperSize1,
                    docPapersizeId = S.docPapersizeId,
                    saleSizeValue = jjpaper.sizeValue,            // paper sale
                    docSizeValue = jdocpaper.sizeValue,           // paper doc
                }).FirstOrDefault();


                return(item);
            }
        }
        public string GetByposId(string token)
        {
            // public ResponseVM GetItemByID(string token)int posId
            // {



            token = TokenManager.readToken(HttpContext.Current.Request);
            var strP = TokenManager.GetPrincipal(token);

            if (strP != "0") //invalid authorization
            {
                return(TokenManager.GenerateToken(strP));
            }
            else
            {
                int message = 0;
                int posId   = 0;
                IEnumerable <Claim> claims = TokenManager.getTokenClaims(token);
                foreach (Claim c in claims)
                {
                    if (c.Type == "posId")
                    {
                        posId = int.Parse(c.Value);
                    }
                }

                PosSettingModel item = GetByposId(posId);
                //if (item == null)
                //{
                //    item = new PosSettingModel();
                //    posSetting newObject = new posSetting();
                //    newObject.posId = posId;
                //    message = Save(newObject);
                //    if (message > 0)
                //    {
                //        item = GetByposId(posId);
                //    }


                //}



                return(TokenManager.GenerateToken(item));
            }



            //var re = Request;
            //
            //string token = "";
            //if (headers.Contains("APIKey"))
            //{
            //    token = headers.GetValues("APIKey").First();
            //}
            //Validation validation = new Validation();
            //bool valid = validation.CheckApiKey(token);

            //if (valid)
            //{
            //    using (incposdbEntities entity = new incposdbEntities())
            //    {
            //        var row = (from S in entity.posSetting
            //                   join psal in entity.printers on S.saleInvPrinterId equals psal.printerId into jsale
            //                   join prep in entity.printers on S.reportPrinterId equals prep.printerId into jrep
            //                   join paper in entity.paperSize on S.saleInvPapersizeId equals paper.sizeId into jpaper
            //                   join dpaper in entity.paperSize on S.docPapersizeId equals dpaper.sizeId into jdcpaper
            //                   from jdocpaper in jdcpaper.DefaultIfEmpty()
            //                   from jjsale in jsale.DefaultIfEmpty()
            //                   from jjrep in jrep.DefaultIfEmpty()
            //                   from jjpaper in jpaper.DefaultIfEmpty()
            //                   where S.posId == posId
            //                   select new PosSettingModel()
            //                   {
            //                       posSettingId = S.posSettingId,

            //                       posId = S.posId,
            //                       saleInvPrinterId = S.saleInvPrinterId,
            //                       reportPrinterId = S.reportPrinterId,
            //                       saleInvPapersizeId = S.saleInvPapersizeId,
            //                       posSerial = S.posSerial,
            //                       repprinterId = jjrep.printerId,
            //                       repname = jjrep.name,
            //                       repprintFor = jjrep.printFor,
            //                       salprinterId = jjsale.printerId,
            //                       salname = jjsale.name,
            //                       salprintFor = jjsale.printFor,
            //                       sizeId = jjpaper.sizeId,
            //                       paperSize1 = jjpaper.paperSize1,
            //                       docPapersize = jdocpaper.paperSize1,
            //                       docPapersizeId=S.docPapersizeId,
            //                       saleSizeValue = jjpaper.sizeValue,// paper sale
            //                       docSizeValue = jdocpaper.sizeValue,// paper doc
            //                   }).FirstOrDefault();

            //        if (row == null)
            //            return NotFound();
            //        else
            //            return Ok(row);
            //    }
            //}
            //else
            //    return NotFound();
        }