[HttpPost] // Create
        public IActionResult Post(string values, string ProcessCode, string ProcessName)
        {
            var model       = new m_ProcessMaster();
            var _values     = JsonConvert.DeserializeObject <IDictionary>(values);
            var processcode = _values["ProcessCode"].ToString();
            var checkinsert = _context.m_ProcessMaster.Where(p => p.ProcessCode == processcode).ToList();

            if (checkinsert.Count > 0)
            {
                ModelState.AddModelError("ModelError", string.Format("This processCode have already.", model.ProcessCode));
                return(BadRequest(GetFullErrorMessage(ModelState)));
            }
            else
            {
                PopulateModel(model, _values);
                //if (!TryValidateModel(model))
                //    return BadRequest(GetFullErrorMessage(ModelState));


                model.SysemProcessFLag = "N";
                model.AllowPartialFlag = "N";
                model.SeqNo            = 99;
            }
            var result = _context.m_ProcessMaster.Add(model);

            _context.SaveChanges();
            return(Json(result.Entity.ProcessCode));
        }
        public IActionResult Delete(string key)
        {
            var check_SysemProcessFLag = _context.m_ProcessMaster.SingleOrDefault(w => w.ProcessCode == key);

            if (check_SysemProcessFLag.SysemProcessFLag == "Y")
            {
                var model = new m_ProcessMaster();
                ModelState.AddModelError("ModelError", string.Format("Unable to delete the process in which the SystemProcessFLag is 'Y'.", model.ProcessCode));
                return(BadRequest(GetFullErrorMessage(ModelState)));
            }
            else
            {
                var checkdelete = _context.WoRouting.Where(w => w.ProcessCode == key).ToList();
                if (checkdelete.Count > 0)
                {
                    var model = new m_ProcessMaster();
                    ModelState.AddModelError("ModelError", string.Format("This Processcode being used can not be deleted.", model.ProcessCode));
                    return(BadRequest(GetFullErrorMessage(ModelState)));
                }
                else
                {
                    var modeldelete = _context.m_ProcessMaster.FirstOrDefault(item => item.ProcessCode == key);
                    _context.m_ProcessMaster.Remove(modeldelete);
                    _context.SaveChanges();
                }
            }

            return(Ok());
        }
        private void PopulateModel(m_ProcessMaster model, IDictionary values)
        {
            string Process_Code      = nameof(m_ProcessMaster.ProcessCode);
            string Process_Name      = nameof(m_ProcessMaster.ProcessName);
            string Sysem_ProcessFLag = nameof(m_ProcessMaster.SysemProcessFLag);
            string Allow_PartialFlag = nameof(m_ProcessMaster.AllowPartialFlag);
            string Trans_Date        = nameof(m_ProcessMaster.TransDate);
            string Create_Date       = nameof(m_ProcessMaster.CreateDate);
            string Modify_By         = nameof(m_ProcessMaster.ModifyBy);
            string Seq_No            = nameof(m_ProcessMaster.SeqNo);
            string Process_UserDef1  = nameof(m_ProcessMaster.ProcessUserDef1);
            string Process_UserDef2  = nameof(m_ProcessMaster.ProcessUserDef2);

            if (values.Contains(Process_Code))
            {
                model.ProcessCode = Convert.ToString(values[Process_Code]);
            }
            if (values.Contains(Process_Name))
            {
                model.ProcessName = Convert.ToString(values[Process_Name]);
            }
            if (values.Contains(Sysem_ProcessFLag))
            {
                model.SysemProcessFLag = Convert.ToString(values[Sysem_ProcessFLag]);
            }

            if (values.Contains(Allow_PartialFlag))
            {
                model.AllowPartialFlag = Convert.ToString(values[Allow_PartialFlag]);
            }

            if (values.Contains(Trans_Date))
            {
                model.TransDate = Convert.ToDateTime(values[Trans_Date]);
            }

            if (values.Contains(Create_Date))
            {
                model.CreateDate = Convert.ToDateTime(values[Create_Date]);
            }

            if (values.Contains(Modify_By))
            {
                model.ModifyBy = Convert.ToString(values[Modify_By]);
            }

            if (values.Contains(Seq_No))
            {
                model.SeqNo = Convert.ToInt32(values[Seq_No]);
            }

            if (values.Contains(Process_UserDef1))
            {
                model.ProcessUserDef1 = Convert.ToString(values[Process_UserDef1]);
            }

            if (values.Contains(Process_UserDef2))
            {
                model.ProcessUserDef2 = Convert.ToString(values[Process_UserDef2]);
            }
        }