Exemple #1
0
        private int Save(string postData, SystemMessages sysMsg, bool checkRequired)
        {
            int id = 0;
            if (!String.IsNullOrWhiteSpace(postData))
            {
                System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
                Dictionary<string, object> jsonData = jss.Deserialize<Dictionary<string, object>>(postData) as Dictionary<string, object>;

                string dataId = Convert.ToString(jsonData["dataId"]);
                string commonCategoryName = Convert.ToString(jsonData["commonCategoryName"]);
                string basicInfoCategoryName = Convert.ToString(jsonData["basicInfoCategoryName"]);
                string processFlowCategoryName = Convert.ToString(jsonData["processFlowCategoryName"]);
                string bomCategoryName = Convert.ToString(jsonData["bomCategoryName"]);
                string edmCategoryName = Convert.ToString(jsonData["edmCategoryName"]);
                string specialCategoryName = Convert.ToString(jsonData["specialCategoryName"]);

                Int32.TryParse(dataId, out id);
                Dictionary<string, object> data = jsonData["data"] as Dictionary<string, object>;
                Dictionary<string, object> yieldData = jsonData["yieldData"] as Dictionary<string, object>;

                CostingInputDetail ciDetail = new CostingInputDetail();

                ciDetail.CommonCategory = new FieldCategory(commonCategoryName);
                ciDetail.BasicInfoCategory = new FieldCategory(basicInfoCategoryName);
                ciDetail.ProcessFlowCategory = new FieldCategory(processFlowCategoryName);
                ciDetail.BOMCategory = new FieldCategory(bomCategoryName);
                ciDetail.EDMCategories = FieldCategory.GetCategoryByName(edmCategoryName);
                ciDetail.SpecialCategory = FieldCategory.GetCategoryByName(specialCategoryName);
                ciDetail.YieldData = yieldData;
                ciDetail.FillData(data);
                ciDetail.CheckDataType(sysMsg);

                if (checkRequired)
                {
                    ciDetail.CheckRequired(sysMsg);
                }

                if (sysMsg.isPass)
                {
                    using (TScope ts = new TScope())
                    {
                        try
                        {
                            if (id > 0)
                            {
                                ciDetail.Update(id);
                            }
                            else
                            {
                                id = ciDetail.Add();
                            }
                        }
                        catch (Exception ex)
                        {
                            ts.Rollback();
                            sysMsg.isPass = false;
                            sysMsg.Messages.Add("Error", ex.Message);
                        }
                    }
                }
            }

            return id;
        }