コード例 #1
0
        public void SdkTranQuery()
        {
            var config = Config.NewSM2MockConfig();

            if (config.appInfo.CAType != EmCAType.Unmanaged)
            {
                Console.WriteLine("DApp in Key Trust mode cannot call this API");
                return;
            }
            List <string> args = new List <string>();

            args.Add("test20220526");
            var request = new TransRequest(config, "user20220525")
            {
                Args        = args,
                ChaincodeId = "cc_app0001202205241457194715844_01",
                ChannelId   = config.appInfo.ChannelId,
                Fcn         = "get"
            };

            if (string.IsNullOrEmpty(request.PrivateKey) || string.IsNullOrEmpty(request.EnrollmentCertificate))
            {
                Console.WriteLine("user info error");
                return;
            }
            var s = new NodeServer(config).Trans(request);

            Console.WriteLine(JsonConvert.SerializeObject(s));
        }
コード例 #2
0
        /// <summary>
        /// transaction processing under Key-Upload Mode
        /// </summary>
        /// <param name="config"></param>
        /// <param name="reqBody"></param>
        /// <returns></returns>
        public Tuple <bool, string, ReqChainCodeResBody> Trans(TransRequest reqBody)
        {
            try
            {
                NodeApiReqBody <TransReqBody> req = new NodeApiReqBody <TransReqBody>()
                {
                    header = new ReqHeader()
                    {
                        appCode  = config.appInfo.AppCode,
                        userCode = config.userCode
                    },
                    body = new TransReqBody()
                    {
                        transData = Transaction.CreateRequest(config, reqBody)
                    }
                };
                //Assemble the original string to sign
                var data = ReqMacExtends.TransReqMac(req);
                //sign data
                req.mac = sign.Sign(data);

                var res = SendHelper.SendPost <NodeApiResBody <ReqChainCodeResBody> >(config.reqUrl + TransUrl, JsonConvert.SerializeObject(req), config.httpsCert);
                if (res != null)
                {
                    //check the status codes in turn
                    if (res.header.code != 0)
                    {
                        return(new Tuple <bool, string, ReqChainCodeResBody>(false, res.header.msg, null));
                    }
                    //assemble the original string to sign
                    var datares = ResMacExtends.ReqChainCodeResMac(res);

                    //verify data
                    if (sign.Verify(res.mac, datares))
                    {
                        return(new Tuple <bool, string, ReqChainCodeResBody>(true, res.header.msg, res.body));
                    }
                    else
                    {
                        return(new Tuple <bool, string, ReqChainCodeResBody>(false, "failed to verify data", null));
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(new Tuple <bool, string, ReqChainCodeResBody>(false, "failed to process transactions under Key-Trust Mode", null));
        }
コード例 #3
0
        public void SdkTran()
        {
            var           config = Config.NewSM2MockConfig();
            List <string> args   = new List <string>();

            args.Add("{\"baseKey\":\"test202004212002\",\"baseValue\":\"this is string \"}");
            var request = new TransRequest(config, "test")
            {
                Args        = args,
                ChaincodeId = "cc_cl1851016378620200413194550_00",
                ChannelId   = config.appInfo.ChannelId,
                Fcn         = "set"
            };
            var s = new NodeServer(config).Trans(request);

            Console.WriteLine(JsonConvert.SerializeObject(s));
        }
コード例 #4
0
        public ActionResult SearchLoanIssueRequest(string search)
        {
            search = search.ToUpper();
            var result = from temp in repository.InvTransRequestRepository.Get(filter: o => o.RequestType == "LNIR", orderBy: q => q.OrderByDescending(d => d.RequestDate))
                         where ((temp.RequestNo.ToUpper().StartsWith(search) || temp.RequestNo.ToUpper() == search))
                         select new { temp.RequestID, temp.RequestNo, temp.ReturnMethod, temp.RequestDate, temp.RecordStatus };
            List <TransRequest> lst = new List <TransRequest>();

            foreach (var item in result)
            {
                TransRequest ob = new TransRequest();
                ob.RequestID    = item.RequestID;
                ob.RequestNo    = item.RequestNo;
                ob.ReturnMethod = item.ReturnMethod;
                ob.RequestDate  = Convert.ToDateTime(item.RequestDate).ToString("dd/MM/yyyy");
                ob.RecordStatus = item.RecordStatus;
                lst.Add(ob);
            }
            var data = from temp in lst select new { temp.RequestID, temp.RequestNo, temp.ReturnMethod, temp.RequestDate, temp.RecordStatus };

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
コード例 #5
0
        public ActionResult GetLoanReceiveRequestByID(long RequestID)
        {
            INV_TransRequest data = repository.InvTransRequestRepository.GetByID(RequestID);
            TransRequest     ob   = new TransRequest();

            ob.RequestID   = Convert.ToInt64(data.RequestID);
            ob.RequestNo   = data.RequestNo;
            ob.RequestDate = Convert.ToDateTime(data.RequestDate).ToString("dd/MM/yyyy");
            ob.RequestType = data.RequestType;
            ob.RequestFrom = data.RequestFrom;
            ob.RequestTo   = data.RequestTo;
            if (ob.RequestType == "LNIR")
            {
                //  ob.RequestFromName = repository.StoreRepository.GetByID(Convert.ToInt32(data.RequestTo)).StoreName;// data.RequestFrom;
                ob.RequestToName = repository.StoreRepository.GetByID(Convert.ToInt32(data.RequestTo)).StoreName;

                if (data.FromSource.Equals("SUP") || data.FromSource.Equals("LAG"))
                {
                    ob.RequestFromName = repository.SysSupplierRepository.GetByID(Convert.ToInt32(data.RequestFrom)).SupplierName;
                }
                else if (data.FromSource == "STR")
                {
                    ob.RequestFromName = repository.StoreRepository.GetByID(Convert.ToInt32(data.RequestFrom)).StoreName;// data.RequestFrom;
                }
                else
                {
                    ob.RequestFromName = "";
                }
                ob.FromSource = data.FromSource;
            }
            else
            {
                ob.RequestFromName = repository.StoreRepository.GetByID(Convert.ToInt32(data.RequestFrom)).StoreName;// data.RequestFrom;
                if (data.ToSource.Equals("SUP") || data.ToSource.Equals("LAG"))
                {
                    ob.RequestToName = repository.SysSupplierRepository.GetByID(Convert.ToInt32(data.RequestTo)).SupplierName;
                }
                else if (data.ToSource.Equals("STR"))
                {
                    ob.RequestToName = repository.StoreRepository.GetByID(Convert.ToInt32(data.RequestTo)).StoreName;// data.RequestFrom;
                }
                else
                {
                    ob.RequestToName = "";
                }
            }
            ob.ReturnMethod       = data.ReturnMethod;
            ob.ExpectetReturnTime = Convert.ToByte(data.ExpectetReturnTime).ToString();
            ob.CheckComments      = data.CheckComments;
            ob.ApproveComments    = data.ApproveComments;
            ob.RecordStatus       = data.RecordStatus;
            ob.ToSource           = data.ToSource;
            var reqItemData = repository.InvTransRequestItemRepository.Get(filter: o => o.RequestID == ob.RequestID);

            ob.ChemicalSelectedList = new List <TransRequestItem>();
            foreach (var item in reqItemData)
            {
                TransRequestItem obItem = new TransRequestItem();
                obItem.TransRequestItemID = item.TransRequestItemID;
                obItem.ItemID             = Convert.ToInt32(item.ItemID);
                if (obItem.ItemID > 0)
                {
                    obItem.ItemName = repository.SysChemicalItemRepository.GetByID(obItem.ItemID).ItemName;
                }
                if (Convert.ToInt32(item.PackSize) > 0)
                {
                    obItem.PackSize = repository.SysSizeRepository.GetByID(Convert.ToInt32(item.PackSize)).SizeName;
                }

                obItem.SizeID = item.PackSize.ToString();
                if (Convert.ToInt32(item.SizeUnit) > 0)
                {
                    obItem.SizeUnit = repository.SysUnitRepository.GetByID(Convert.ToInt32(item.SizeUnit)).UnitName;
                }

                obItem.SizeUnitID    = item.SizeUnit.ToString();
                obItem.PackQty       = Convert.ToInt32(item.PackQty);
                obItem.RefItemID     = Convert.ToInt32(item.RefItemID);
                obItem.RefSupplierID = Convert.ToInt32(item.RefSupplierID);
                obItem.SupplierID    = Convert.ToInt32(item.RefSupplierID);
                if (item.RefSupplierID != null)
                {
                    obItem.RefSupplierName = repository.SysSupplierRepository.GetByID(Convert.ToInt32(item.RefSupplierID)).SupplierName;
                }

                obItem.ReturnMethod = item.ReturnMethod;
                obItem.ReferenceQty = item.TransQty == null ? 0 : (decimal)item.TransQty;
                decimal d = item.TransUnit == null ? 0 : Convert.ToInt32(item.TransUnit);
                if (d > 0)
                {
                    obItem.ReferenceUnit = repository.SysUnitRepository.GetByID(d).UnitName;
                }
                else
                {
                    obItem.ReferenceUnit = "";
                }
                obItem.ReferenceUnitID = item.ReferenceUnit.ToString();
                ob.ChemicalSelectedList.Add(obItem);
            }
            return(Json(ob, JsonRequestBehavior.AllowGet));
        }
コード例 #6
0
        public ActionResult GetLoanIssueRequestList()
        {
            var result = from temp in repository.InvTransRequestRepository.Get(filter: o => o.RequestType == "LNIR")
                         select new { temp.RequestID, temp.RequestNo, temp.ReturnMethod, temp.RequestDate, temp.RecordStatus, temp.RequestFrom, temp.RequestTo, temp.ToSource, temp.FromSource };

            var sup = repository.SysSupplierRepository.Get(filter: ob => ob.SupplierCategory == "Chemical" && ob.IsActive == true && ob.IsDelete == false).Select(ob => new { ob.SupplierName, ob.SupplierID });
            var str = repository.StoreRepository.Get(filter: o => o.IsActive == true && o.IsDelete == false && o.StoreCategory == "Chemical").Select(ob => new { ob.StoreID, ob.StoreName });
            int id = 0; int reqToID = 0;
            List <TransRequest> lst = new List <TransRequest>();

            foreach (var item in result)
            {
                TransRequest ob = new TransRequest();
                ob.RequestID = item.RequestID;
                ob.RequestNo = item.RequestNo;
                if (item.ReturnMethod.Equals("DTD"))
                {
                    ob.ReturnMethod = "Doller to Doller";
                }
                else if (item.ReturnMethod.Equals("EOI"))
                {
                    ob.ReturnMethod = "Exchange Other Item";
                }
                else if (item.ReturnMethod.Equals("ESI"))
                {
                    ob.ReturnMethod = "Exchange Same Item";
                }
                else
                {
                    ob.ReturnMethod = ob.ReturnMethod;
                }
                ob.RequestDate = Convert.ToDateTime(item.RequestDate).ToString("dd/MM/yyyy");


                id = item.RequestFrom == null ? 0 : Convert.ToInt32(item.RequestFrom);

                if (!string.IsNullOrEmpty(item.FromSource))
                {
                    if (item.FromSource.Equals("SUP") || item.FromSource.Equals("LAG"))
                    {
                        ob.RequestFrom     = (from t in sup where t.SupplierID == id select t.SupplierID).FirstOrDefault().ToString();
                        ob.RequestFromName = (from t in sup where t.SupplierID == id select t.SupplierName).FirstOrDefault();

                        //ob.RequestTo = (from t in sup where t.SupplierID == id select t.SupplierID).FirstOrDefault().ToString();
                        //ob.RequestToName = (from t in sup where t.SupplierID == id select t.SupplierName).FirstOrDefault();
                    }
                    else if (item.FromSource.Equals("STR"))
                    {
                        ob.RequestFrom     = (from t in str where t.StoreID == id select t.StoreID).FirstOrDefault().ToString();
                        ob.RequestFromName = (from t in str where t.StoreID == id select t.StoreName).FirstOrDefault();
                    }
                    else
                    {
                        ob.RequestFrom     = "";
                        ob.RequestFromName = "";
                    }
                }

                reqToID          = item.RequestTo == null ? 0 : Convert.ToInt32(item.RequestTo);
                ob.RequestTo     = reqToID.ToString();
                ob.RequestToName = (from t in str where t.StoreID == reqToID select t.StoreName).FirstOrDefault();



                if (item.RecordStatus.Equals("NCF"))
                {
                    ob.RecordStatus = "Not Confirmed";
                }
                else if (item.RecordStatus.Equals("CNF"))
                {
                    ob.RecordStatus = "Confirmed";
                }
                else if (item.RecordStatus.Equals("CHK"))
                {
                    ob.RecordStatus = "Checked";
                }
                else
                {
                    ob.RecordStatus = item.RecordStatus;
                }
                lst.Add(ob);
            }
            var data = (from temp in lst select new { temp.RequestID, temp.RequestNo, temp.ReturnMethod, temp.RequestFrom, temp.RequestFromName, temp.RequestTo, temp.RequestToName, temp.RequestDate, temp.RecordStatus, temp.ToSource }).OrderByDescending(ob => ob.RequestID);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
コード例 #7
0
        public ActionResult Save(TransRequest dataSet)
        {
            try
            {
                //######################################
                // Session["UserID"] = 1;
                if (dataSet.RequestID == 0)
                {
                    INV_TransRequest ob = new INV_TransRequest();
                    if (dataSet.RequestType == "LNIR")
                    {
                        ob.RequestNo  = DalCommon.GetPreDefineNextCodeByUrl("LoanRequest/LoanIssueRequest");
                        ob.FromSource = dataSet.ToSource;
                        //ob.ToSource = "STR";
                    }
                    else if (dataSet.RequestType == "LNRR")
                    {
                        ob.RequestNo = DalCommon.GetPreDefineNextCodeByUrl("LoanRequest/Index");
                        //ob.FromSource = "STR";
                        ob.ToSource = dataSet.ToSource;
                    }
                    else
                    {
                    }

                    ob.RequestDate        = DalCommon.SetDate(dataSet.RequestDate);
                    ob.RequestType        = dataSet.RequestType;
                    ob.RequestFrom        = dataSet.RequestFrom.ToString();
                    ob.RequestTo          = dataSet.RequestTo.ToString();
                    ob.ReturnMethod       = dataSet.ReturnMethod;
                    ob.ExpectetReturnTime = Convert.ToByte(dataSet.ExpectetReturnTime);
                    ob.RecordStatus       = "NCF";
                    ob.SetOn      = DateTime.Now;
                    ob.SetBy      = Convert.ToInt32(Session["UserID"]);
                    ob.ModifiedBy = Convert.ToInt32(Session["UserID"]);
                    ob.ModifiedOn = DateTime.Now;

                    ob.IPAddress = GetIPAddress.LocalIPAddress();
                    repository.InvTransRequestRepository.Insert(ob);

                    INV_TransRequestRef obRef = new INV_TransRequestRef();
                    obRef.TransRequestRefNo = ob.RequestNo;
                    obRef.RequestID         = ob.RequestID;
                    //obRef.RefRequestID = ob.RequestID;
                    obRef.ReturnMethod = dataSet.ReturnMethod;
                    obRef.SetOn        = DateTime.Now;
                    obRef.SetBy        = Convert.ToInt32(Session["UserID"]);
                    obRef.ModifiedBy   = Convert.ToInt32(Session["UserID"]);
                    obRef.ModifiedOn   = DateTime.Now;
                    obRef.IPAddress    = GetIPAddress.LocalIPAddress();
                    repository.InvTransRequestRefRepository.Insert(obRef);

                    if (dataSet.ChemicalSelectedList != null)
                    {
                        foreach (var item in dataSet.ChemicalSelectedList)
                        {
                            INV_TransRequestItem obReqItem = new INV_TransRequestItem();
                            obReqItem.RequestID         = ob.RequestID;
                            obReqItem.ReturnMethod      = dataSet.ReturnMethod;
                            obReqItem.TransRequestRefID = obRef.TransRequestRefID;
                            if (item.ItemID > 0)
                            {
                                obReqItem.ItemID = Convert.ToInt32(item.ItemID);
                            }
                            if (Convert.ToByte(item.PackSize) > 0)
                            {
                                obReqItem.PackSize = Convert.ToByte(item.PackSize);
                            }

                            obReqItem.PackQty = Convert.ToInt32(item.PackQty);
                            if (Convert.ToByte(item.SizeUnit) > 0)
                            {
                                obReqItem.SizeUnit = Convert.ToByte(item.SizeUnit);
                            }
                            if (obReqItem.PackQty != null && item.PackSize != null)
                            {
                                obReqItem.TransQty = obReqItem.PackQty * ((Convert.ToByte(repository.SysSizeRepository.GetByID(Convert.ToInt32(item.PackSize)).SizeName)));
                            }
                            if (Convert.ToByte(item.ReferenceUnit) > 0)
                            {
                                obReqItem.TransUnit = Convert.ToByte(item.ReferenceUnit);
                            }

                            if (item.RefSupplierID > 0)
                            {
                                obReqItem.RefSupplierID = Convert.ToInt32(item.RefSupplierID);
                            }

                            obReqItem.SetBy      = Convert.ToInt32(Session["UserID"]);
                            obReqItem.SetOn      = DateTime.Now;
                            obReqItem.ModifiedBy = Convert.ToInt32(Session["UserID"]);
                            obReqItem.ModifiedOn = DateTime.Now;
                            obReqItem.IPAddress  = GetIPAddress.LocalIPAddress();
                            repository.InvTransRequestItemRepository.Insert(obReqItem);
                        }
                    }
                    try
                    {
                        repository.Save();
                        _vmMsg.ReturnCode = ob.RequestNo;
                        _vmMsg.ReturnId   = repository.InvTransRequestRepository.Get().Last().RequestID;
                        _vmMsg.Type       = Enums.MessageType.Success;
                        _vmMsg.Msg        = "Saved Successfully.";
                    }
                    catch (Exception ex)
                    {
                        _vmMsg.Type = Enums.MessageType.Error;
                        _vmMsg.Msg  = "Saved Faild.";
                    }
                }
                else    // Update
                {
                    INV_TransRequest ob = repository.InvTransRequestRepository.GetByID(dataSet.RequestID);
                    ob.RequestDate        = DalCommon.SetDate(dataSet.RequestDate);
                    ob.RequestFrom        = dataSet.RequestFrom.ToString();
                    ob.RequestTo          = dataSet.RequestTo.ToString();
                    ob.ReturnMethod       = dataSet.ReturnMethod;
                    ob.ExpectetReturnTime = Convert.ToByte(dataSet.ExpectetReturnTime);
                    ob.ModifiedOn         = DateTime.Now;
                    ob.ModifiedBy         = Convert.ToInt32(Session["UserID"]);
                    ob.FromSource         = "STR";
                    if (ob.RequestType == "LNIR")
                    {
                        ob.FromSource = dataSet.ToSource;
                    }
                    else if (ob.RequestType == "LNRR")
                    {
                        ob.ToSource = dataSet.ToSource;
                    }
                    else
                    {
                    }
                    //ob.ToSource = dataSet.ToSource;
                    ob.IPAddress = GetIPAddress.LocalIPAddress();
                    repository.InvTransRequestRepository.Update(ob);

                    INV_TransRequestRef obRef = repository.InvTransRequestRefRepository.Get(filter: o => o.RequestID == dataSet.RequestID).FirstOrDefault();
                    obRef.ReturnMethod = dataSet.ReturnMethod;
                    obRef.ModifiedBy   = Convert.ToInt32(Session["UserID"]);
                    obRef.ModifiedOn   = DateTime.Now;
                    obRef.IPAddress    = GetIPAddress.LocalIPAddress();
                    repository.InvTransRequestRefRepository.Update(obRef);
                    if (dataSet.ChemicalSelectedList != null)
                    {
                        foreach (var item in dataSet.ChemicalSelectedList)
                        {
                            if (item.TransRequestItemID == 0)
                            {
                                INV_TransRequestItem obReqItem = new INV_TransRequestItem();
                                obReqItem.RequestID         = ob.RequestID;
                                obReqItem.TransRequestRefID = obRef.TransRequestRefID;
                                obReqItem.ReturnMethod      = dataSet.ReturnMethod;
                                if (Convert.ToInt32(item.ItemID) > 0)
                                {
                                    obReqItem.ItemID = Convert.ToInt32(item.ItemID);
                                }
                                if (Convert.ToByte(item.PackSize) > 0)
                                {
                                    obReqItem.PackSize = Convert.ToByte(item.PackSize);
                                }
                                else
                                {
                                    obReqItem.PackSize = 0;
                                }
                                obReqItem.PackQty = Convert.ToInt32(item.PackQty);
                                if (Convert.ToByte(item.SizeUnit) > 0)
                                {
                                    obReqItem.SizeUnit = Convert.ToByte(item.SizeUnit);
                                }

                                if (obReqItem.PackQty > 0 && item.PackSize != null)
                                {
                                    obReqItem.TransQty = obReqItem.PackQty * ((Convert.ToByte(repository.SysSizeRepository.GetByID(Convert.ToInt32(item.PackSize)).SizeName)));//Convert.ToDecimal(item.ReferenceQty);
                                }
                                else
                                {
                                    obReqItem.TransQty = Convert.ToDecimal(item.ReferenceQty);
                                }

                                if (Convert.ToByte(item.ReferenceUnit) > 0)
                                {
                                    obReqItem.TransUnit = Convert.ToByte(item.ReferenceUnit);
                                }
                                if (Convert.ToInt32(item.RefSupplierID) > 0)
                                {
                                    obReqItem.RefSupplierID = Convert.ToInt32(item.RefSupplierID);
                                }
                                obReqItem.SetBy      = Convert.ToInt32(Session["UserID"]);
                                obReqItem.SetOn      = DateTime.Now;
                                obReqItem.ModifiedBy = Convert.ToInt32(Session["UserID"]);
                                obReqItem.ModifiedOn = DateTime.Now;
                                obReqItem.IPAddress  = GetIPAddress.LocalIPAddress();
                                repository.InvTransRequestItemRepository.Insert(obReqItem);
                            }
                            else
                            {
                                INV_TransRequestItem obReqItem = repository.InvTransRequestItemRepository.GetByID(item.TransRequestItemID);
                                if (Convert.ToInt32(item.ItemID) > 0)
                                {
                                    obReqItem.ItemID = Convert.ToInt32(item.ItemID);
                                }
                                if (Convert.ToByte(item.PackSize) > 0)
                                {
                                    obReqItem.PackSize = Convert.ToByte(item.PackSize);
                                }
                                else
                                {
                                    obReqItem.PackSize = 0;
                                }
                                obReqItem.PackQty      = Convert.ToInt32(item.PackQty);
                                obReqItem.ReturnMethod = dataSet.ReturnMethod;

                                if (Convert.ToByte(item.SizeUnit) > 0)
                                {
                                    obReqItem.SizeUnit = Convert.ToByte(item.SizeUnit);
                                }
                                if (obReqItem.PackQty > 0 && item.PackSize != null)
                                {
                                    obReqItem.TransQty = obReqItem.PackQty * (Convert.ToByte(repository.SysSizeRepository.GetByID(Convert.ToInt32(item.PackSize)).SizeName));    //Convert.ToDecimal(item.ReferenceQty);
                                }
                                else
                                {
                                    obReqItem.TransQty = Convert.ToDecimal(item.ReferenceQty);
                                }
                                if (Convert.ToByte(item.ReferenceUnit) > 0)
                                {
                                    obReqItem.TransUnit = Convert.ToByte(item.ReferenceUnit);
                                }

                                if (Convert.ToInt32(item.RefSupplierID) > 0)
                                {
                                    obReqItem.RefSupplierID = Convert.ToInt32(item.RefSupplierID);
                                }
                                obReqItem.ModifiedBy = Convert.ToInt32(Session["UserID"]);
                                obReqItem.ModifiedOn = DateTime.Now;
                                obReqItem.IPAddress  = GetIPAddress.LocalIPAddress();
                                repository.InvTransRequestItemRepository.Update(obReqItem);
                            }
                        }
                    }

                    try
                    {
                        repository.Save();
                        _vmMsg.ReturnCode = ob.RequestNo;
                        _vmMsg.ReturnId   = dataSet.RequestID;
                        _vmMsg.Type       = Enums.MessageType.Success;
                        _vmMsg.Msg        = "Updated Successfully.";
                    }
                    catch (Exception x)
                    {
                        _vmMsg.Type = Enums.MessageType.Error;
                        _vmMsg.Msg  = "Saved Faild.";
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                StringBuilder sb = new StringBuilder();
                foreach (var eve in e.EntityValidationErrors)
                {
                    sb.AppendLine(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                                eve.Entry.Entity.GetType().Name,
                                                eve.Entry.State));
                    foreach (var ve in eve.ValidationErrors)
                    {
                        sb.AppendLine(string.Format("- Property: \"{0}\", Error: \"{1}\"",
                                                    ve.PropertyName,
                                                    ve.ErrorMessage));
                    }
                }
                throw new DbEntityValidationException(sb.ToString(), e);
            }
            return(Json(new { msg = _vmMsg }));
        }