public string Delete(string token)
        {
            //int itemPropId
            string message    = "";
            int    itemPropId = 0;

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

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

                try
                {
                    using (incposdbEntities entity = new incposdbEntities())
                    {
                        itemsProp itemPropObject = entity.itemsProp.Find(itemPropId);
                        entity.itemsProp.Remove(itemPropObject);
                        message = entity.SaveChanges().ToString();

                        // return Ok("Item Property is Deleted Successfully");
                        return(TokenManager.GenerateToken(message));
                    }
                }
                catch
                {
                    message = "0";
                    return(TokenManager.GenerateToken(message));
                }
            }

            //var re = Request;
            //var headers = re.Headers;
            //string token = "";
            //if (headers.Contains("APIKey"))
            //{
            //    token = headers.GetValues("APIKey").First();
            //}

            //Validation validation = new Validation();
            //bool valid = validation.CheckApiKey(token);
            //if (valid)
            //{
            //    try
            //    {
            //        using (incposdbEntities entity = new incposdbEntities())
            //        {
            //            itemsProp itemPropObject = entity.itemsProp.Find(itemPropId);
            //            entity.itemsProp.Remove(itemPropObject);
            //            entity.SaveChanges();

            //            return Ok("Item Property is Deleted Successfully");
            //        }
            //    }
            //    catch
            //    {
            //        return NotFound();
            //    }
            //}
            //else
            //    return NotFound();
        }
        public string Save(string token)
        {
            string message = "";

            //string itemsPropObject

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

            if (strP != "0") //invalid authorization
            {
                return(TokenManager.GenerateToken(strP));
            }
            else
            {
                string              Object    = "";
                itemsProp           newObject = new itemsProp();
                IEnumerable <Claim> claims    = TokenManager.getTokenClaims(token);
                foreach (Claim c in claims)
                {
                    if (c.Type == "Object")
                    {
                        Object    = c.Value.Replace("\\", string.Empty);
                        Object    = Object.Trim('"');
                        newObject = JsonConvert.DeserializeObject <itemsProp>(Object, new IsoDateTimeConverter {
                            DateTimeFormat = "dd/MM/yyyy"
                        });
                        break;
                    }
                }
                if (newObject != null)
                {
                    if (newObject.updateUserId == 0 || newObject.updateUserId == null)
                    {
                        Nullable <int> id = null;
                        newObject.updateUserId = id;
                    }
                    if (newObject.createUserId == 0 || newObject.createUserId == null)
                    {
                        Nullable <int> id = null;
                        newObject.createUserId = id;
                    }
                    try
                    {
                        using (incposdbEntities entity = new incposdbEntities())
                        {
                            var itemPropEntity = entity.Set <itemsProp>();
                            if (newObject.itemPropId == 0)
                            {
                                newObject.createDate   = DateTime.Now;
                                newObject.updateDate   = DateTime.Now;
                                newObject.updateUserId = newObject.createUserId;

                                itemPropEntity.Add(newObject);
                                //  message = "Property Is Added To Item Successfully";
                            }
                            else
                            {
                                var tmpLocation = entity.itemsProp.Where(p => p.itemPropId == newObject.itemPropId).FirstOrDefault();
                                tmpLocation.propertyItemId = newObject.propertyItemId;
                                tmpLocation.updateDate     = DateTime.Now;
                                tmpLocation.updateUserId   = newObject.updateUserId;

                                // message = "Property Is Updated Successfully";
                            }
                            message = entity.SaveChanges().ToString();
                            return(TokenManager.GenerateToken(message));
                        }
                    }
                    catch
                    {
                        message = "0";
                        return(TokenManager.GenerateToken(message));
                    }
                }
                else
                {
                    return(TokenManager.GenerateToken("0"));
                }
            }

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

            //if (valid)
            //{
            //    itemsPropObject = itemsPropObject.Replace("\\", string.Empty);
            //    itemsPropObject = itemsPropObject.Trim('"');
            //    itemsProp newObject = JsonConvert.DeserializeObject<itemsProp>(itemsPropObject, new JsonSerializerSettings { DateParseHandling = DateParseHandling.None });
            //    if (newObject.updateUserId == 0 || newObject.updateUserId == null)
            //    {
            //        Nullable<int> id = null;
            //        newObject.updateUserId = id;
            //    }
            //    if (newObject.createUserId == 0 || newObject.createUserId == null)
            //    {
            //        Nullable<int> id = null;
            //        newObject.createUserId = id;
            //    }
            //    try
            //    {
            //        using (incposdbEntities entity = new incposdbEntities())
            //        {
            //            var itemPropEntity = entity.Set<itemsProp>();
            //            if (newObject.itemPropId == 0)
            //            {
            //                newObject.createDate = DateTime.Now;
            //                newObject.updateDate = DateTime.Now;
            //                newObject.updateUserId = newObject.createUserId;

            //                itemPropEntity.Add(newObject);
            //                message = "Property Is Added To Item Successfully";
            //            }
            //            else
            //            {
            //                var tmpLocation = entity.itemsProp.Where(p => p.itemPropId == newObject.itemPropId).FirstOrDefault();
            //                tmpLocation.propertyItemId = newObject.propertyItemId;
            //                tmpLocation.updateDate = DateTime.Now;
            //                tmpLocation.updateUserId = newObject.updateUserId;

            //                message = "Property Is Updated Successfully";
            //            }
            //            entity.SaveChanges();
            //        }
            //    }
            //    catch
            //    {
            //        message = "an error ocurred";
            //    }
            //}
            //return message;
        }