public string Update(/*string reqType*/)
        {
            DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>();

            InventoryDbContext inventoryDBContext = new InventoryDbContext(connString);


            try
            {
                //string str = Request.Form.Keys.First<string>();
                string str     = this.ReadPostData();
                string reqType = this.ReadQueryStringData("reqType");
                if (!String.IsNullOrEmpty(str))
                {
                    if (reqType == "UpdateVendors")
                    {
                        VendorMasterModel vendor = DanpheJSONConvert.DeserializeObject <VendorMasterModel>(str);
                        inventoryDBContext.Vendors.Attach(vendor);
                        inventoryDBContext.Entry(vendor).State = EntityState.Modified;
                        inventoryDBContext.Entry(vendor).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(vendor).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = vendor;
                        responseData.Status  = "OK";
                    }
                    else if (reqType == "UpdateInventoryTerms")
                    {
                        InventoryTermsModel termsconditions = DanpheJSONConvert.DeserializeObject <InventoryTermsModel>(str);
                        inventoryDBContext.InventoryTerms.Attach(termsconditions);
                        inventoryDBContext.Entry(termsconditions).State = EntityState.Modified;
                        inventoryDBContext.Entry(termsconditions).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(termsconditions).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = termsconditions;
                        responseData.Status  = "OK";
                    }

                    if (reqType == "UpdateItemCategory")
                    {
                        ItemCategoryMasterModel itemcategoryModel = DanpheJSONConvert.DeserializeObject <ItemCategoryMasterModel>(str);
                        inventoryDBContext.ItemCategoryMaster.Attach(itemcategoryModel);
                        inventoryDBContext.Entry(itemcategoryModel).State = EntityState.Modified;
                        inventoryDBContext.Entry(itemcategoryModel).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(itemcategoryModel).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = itemcategoryModel;
                        responseData.Status  = "OK";
                    }
                    if (reqType == "UpdateItemSubCategory")
                    {
                        ItemSubCategoryMasterModel itemsubcategoryModel = DanpheJSONConvert.DeserializeObject <ItemSubCategoryMasterModel>(str);
                        inventoryDBContext.ItemSubCategoryMaster.Attach(itemsubcategoryModel);
                        inventoryDBContext.Entry(itemsubcategoryModel).State = EntityState.Modified;
                        inventoryDBContext.Entry(itemsubcategoryModel).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(itemsubcategoryModel).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = itemsubcategoryModel;
                        responseData.Status  = "OK";
                    }
                    if (reqType == "UpdateUnitOfMeasurement")
                    {
                        UnitOfMeasurementMasterModel unitofmeasurementModel = DanpheJSONConvert.DeserializeObject <UnitOfMeasurementMasterModel>(str);
                        inventoryDBContext.UnitOfMeasurementMaster.Attach(unitofmeasurementModel);
                        inventoryDBContext.Entry(unitofmeasurementModel).State = EntityState.Modified;
                        inventoryDBContext.Entry(unitofmeasurementModel).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(unitofmeasurementModel).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = unitofmeasurementModel;
                        responseData.Status  = "OK";
                    }
                    if (reqType == "UpdatePackagingType")
                    {
                        PackagingTypeMasterModel packagingtypeModel = DanpheJSONConvert.DeserializeObject <PackagingTypeMasterModel>(str);
                        inventoryDBContext.PackagingTypeMaster.Attach(packagingtypeModel);
                        inventoryDBContext.Entry(packagingtypeModel).State = EntityState.Modified;
                        inventoryDBContext.Entry(packagingtypeModel).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(packagingtypeModel).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = packagingtypeModel;
                        responseData.Status  = "OK";
                    }
                    if (reqType == "UpdateAccountHead")
                    {
                        AccountHeadMasterModel accountheadModel = DanpheJSONConvert.DeserializeObject <AccountHeadMasterModel>(str);
                        inventoryDBContext.AccountHeadMaster.Attach(accountheadModel);
                        inventoryDBContext.Entry(accountheadModel).State = EntityState.Modified;
                        inventoryDBContext.Entry(accountheadModel).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(accountheadModel).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = accountheadModel;
                        responseData.Status  = "OK";
                    }
                    if (reqType == "UpdateItem")
                    {
                        ItemMasterModel itemModel = DanpheJSONConvert.DeserializeObject <ItemMasterModel>(str);
                        inventoryDBContext.Items.Attach(itemModel);
                        inventoryDBContext.Entry(itemModel).State = EntityState.Modified;
                        inventoryDBContext.Entry(itemModel).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(itemModel).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = itemModel;
                        responseData.Status  = "OK";
                    }
                    if (reqType == "UpdateCurrency")
                    {
                        CurrencyMasterModel currencyModel = DanpheJSONConvert.DeserializeObject <CurrencyMasterModel>(str);
                        inventoryDBContext.CurrencyMaster.Attach(currencyModel);
                        inventoryDBContext.Entry(currencyModel).State = EntityState.Modified;
                        inventoryDBContext.Entry(currencyModel).Property(x => x.CreatedOn).IsModified = false;
                        inventoryDBContext.Entry(currencyModel).Property(x => x.CreatedBy).IsModified = false;

                        inventoryDBContext.SaveChanges();
                        responseData.Results = currencyModel;
                        responseData.Status  = "OK";
                    }
                }
            }
            catch (Exception ex)
            {
                responseData.Status       = "Failed";
                responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString();
            }
            return(DanpheJSONConvert.SerializeObject(responseData, true));
        }
        public string Post()
        {
            //if reqtype=employee, then use masterdbcontext.employee.add  and so on for others.

            DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>(); //type 'object' since we have variable return types

            responseData.Status = "OK";                                                   //by default status would be OK, hence assigning at the top

            InventoryDbContext inventoryDBContext = new InventoryDbContext(connString);



            try
            {
                //string str = Request.Form.Keys.First<string>();
                string str        = this.ReadPostData();
                string reqType    = this.ReadQueryStringData("reqType");
                string vendorName = this.ReadQueryStringData("vendorName");
                int    itemId     = ToInt(this.ReadQueryStringData("itemId"));
                if (reqType == "AddVendors")
                {
                    VendorMasterModel vendorModel = DanpheJSONConvert.DeserializeObject <VendorMasterModel>(str);
                    vendorModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.Vendors.Add(vendorModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = vendorModel;
                    responseData.Status  = "OK";
                }

                else if (reqType == "AddItemCategory")
                {
                    ItemCategoryMasterModel itemcategoryModel = DanpheJSONConvert.DeserializeObject <ItemCategoryMasterModel>(str);
                    itemcategoryModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.ItemCategoryMaster.Add(itemcategoryModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = itemcategoryModel;
                    responseData.Status  = "OK";
                }
                else if (reqType == "AddItemSubCategory")
                {
                    ItemSubCategoryMasterModel itemsubcategoryModel = DanpheJSONConvert.DeserializeObject <ItemSubCategoryMasterModel>(str);
                    itemsubcategoryModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.ItemSubCategoryMaster.Add(itemsubcategoryModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = itemsubcategoryModel;
                    responseData.Status  = "OK";
                }
                //posting to inventory terms & conditions
                else if (reqType == "PostInventoryTerms")
                {
                    InventoryTermsModel termsconditions = DanpheJSONConvert.DeserializeObject <InventoryTermsModel>(str);
                    termsconditions.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.InventoryTerms.Add(termsconditions);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = termsconditions;
                    responseData.Status  = "OK";
                }

                else if (reqType == "AddUnitOfMeasurement")
                {
                    UnitOfMeasurementMasterModel unitofmeasurementModel = DanpheJSONConvert.DeserializeObject <UnitOfMeasurementMasterModel>(str);
                    unitofmeasurementModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.UnitOfMeasurementMaster.Add(unitofmeasurementModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = unitofmeasurementModel;
                    responseData.Status  = "OK";
                }
                else if (reqType == "AddPackagingType")
                {
                    PackagingTypeMasterModel packagingtypeModel = DanpheJSONConvert.DeserializeObject <PackagingTypeMasterModel>(str);
                    packagingtypeModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.PackagingTypeMaster.Add(packagingtypeModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = packagingtypeModel;
                    responseData.Status  = "OK";
                }
                else if (reqType == "AddAccountHead")
                {
                    AccountHeadMasterModel accountheadModel = DanpheJSONConvert.DeserializeObject <AccountHeadMasterModel>(str);
                    accountheadModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.AccountHeadMaster.Add(accountheadModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = accountheadModel;
                    responseData.Status  = "OK";
                }
                else if (reqType == "AddItem")
                {
                    ItemMasterModel itemModel = DanpheJSONConvert.DeserializeObject <ItemMasterModel>(str);
                    itemModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.Items.Add(itemModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = itemModel;
                    responseData.Status  = "OK";
                }
                else if (reqType == "AddCurrency")
                {
                    CurrencyMasterModel currencyModel = DanpheJSONConvert.DeserializeObject <CurrencyMasterModel>(str);
                    currencyModel.CreatedOn = System.DateTime.Now;
                    inventoryDBContext.CurrencyMaster.Add(currencyModel);
                    inventoryDBContext.SaveChanges();
                    responseData.Results = currencyModel;
                    responseData.Status  = "OK";
                }
            }
            catch (Exception ex)
            {
                responseData.Status       = "Failed";
                responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString();
            }


            return(DanpheJSONConvert.SerializeObject(responseData, true));
        }