private bool validateForm(CurrencyObj obj, out string errorMsg)
        {
            var sb       = new StringBuilder();
            var errCount = 0;
            var exist    = repoCurr.AllEager(f => f.ISO_CODE == obj.ISO_CODE).FirstOrDefault();

            if (exist != null)
            {
                sb.AppendLine("Currency Code (Alpha-Numeric) Already Exist");
                errCount++;
            }
            var exist2 = repoCurr.AllEager(f => f.CURRENCY_CODE == obj.CURRENCY_CODE).FirstOrDefault();

            if (exist2 != null)
            {
                sb.AppendLine("Currency Code (Numeric) Already Exist");
                errCount++;
            }
            if (errCount > 0)
            {
                errorMsg = sb.ToString();
                return(true);
            }
            errorMsg = sb.ToString();
            return(false);
        }
        public ActionResult Add(CurrencyObj model, string m)
        {
            if (model.ITBID == 0)
            {
                ViewBag.ButtonText = "Save";
            }
            else
            {
                ViewBag.ButtonText = "Update";
            }
            try
            {
                menuId         = SmartUtil.GetMenuId(m);
                ViewBag.MenuId = HttpUtility.UrlDecode(m);

                var errorMsg = "";
                if (ModelState.IsValid)
                {
                    if (model.ITBID > 0)
                    {
                        //using (var txscope = new TransactionScope(TransactionScopeOption.RequiresNew))
                        //{
                        var BType = new SM_CURRENCYTEMP()
                        {
                            ISO_CODE      = model.ISO_CODE,
                            CURRENCY_CODE = model.CURRENCY_CODE,
                            CURRENCY_NAME = model.CURRENCY_NAME,
                            STATUS        = open,
                            RECORDID      = model.ITBID,
                            USERID        = User.Identity.Name,
                            CREATEDATE    = DateTime.Now
                        };
                        repoCurrTemp.Insert(BType);
                        if (uow.Save(User.Identity.Name) > 0)
                        {
                            SM_AUTHLIST auth = new SM_AUTHLIST()
                            {
                                CREATEDATE = DateTime.Now,
                                EVENTTYPE  = model.STATUS == active ? eventEdit : model.STATUS,
                                MENUID     = menuId,
                                //MENUNAME = "",
                                RECORDID = BType.ITBID,
                                STATUS   = open,
                                // TABLENAME = "ADMIN_DEPARTMENT",
                                URL               = Request.FilePath,
                                USERID            = User.Identity.Name,
                                INSTITUTION_ITBID = institutionId,
                                POSTTYPE          = Single
                            };
                            repoAuth.Insert(auth);
                            var rst = uow.Save(User.Identity.Name) > 0 ? true : false;
                            if (rst)
                            {
                                EmailerNotification.SendForAuthorization(menuId, fullName, deptCode, institutionId, "Currency Record");
                                TempData["msg"] = "Record Updated SuccessFully...Authorization Pending.";
                                //return Json(new { RespCode = 0, RespMessage = "Record Created SuccessFully...Authorization Pending." });
                                return(RedirectToAction("Index", "Currency", new { m = m }));
                                //return Json(new { RespCode = 0, RespMessage = "Record Updated SuccessFully...Authorization Pending." });
                            }
                            else
                            {
                                ViewBag.Message = "Problem Updating Record.";
                                //return Json(new { RespCode = 0, RespMessage = "Record Created SuccessFully...Authorization Pending." });
                                return(View("Add", new { m = m, id = model.ITBID }));
                                //return Json(new { RespCode = 1, RespMessage = "Problem Updating Record." });
                            }
                        }

                        //    var ret = _repo.PostRole(model, 1);
                        //if (ret != null && ret.RespCode == 0)
                        //{
                        //    model.RoleId = int.Parse(ret.OutputKey.ToString());
                        //    return Json(new { data = model, RespCode = 0, RespMessage = "Record Created Successfully" });
                        //}
                    }
                    else
                    {
                        var errMsg = "";
                        if (validateForm(model, out errMsg))
                        {
                            ViewBag.Message = errMsg; // "Carscheme already Exist.";
                            return(View("Add", model));
                        }
                        ;
                        var BType = new SM_CURRENCYTEMP()
                        {
                            CURRENCY_CODE = model.CURRENCY_CODE,
                            CURRENCY_NAME = model.CURRENCY_NAME,
                            ISO_CODE      = model.ISO_CODE,
                            STATUS        = open,
                            RECORDID      = model.ITBID,
                            USERID        = User.Identity.Name,
                            CREATEDATE    = DateTime.Now
                        };
                        repoCurrTemp.Insert(BType);
                        if (uow.Save(User.Identity.Name) > 0)
                        {
                            //var controller =  ControllerContext.Controller..ToString();
                            SM_AUTHLIST auth = new SM_AUTHLIST()
                            {
                                CREATEDATE = DateTime.Now,
                                EVENTTYPE  = eventInsert,
                                MENUID     = menuId,
                                //MENUNAME = "",
                                RECORDID = BType.ITBID,
                                STATUS   = open,
                                // TABLENAME = "ADMIN_DEPARTMENT",
                                URL               = Request.FilePath,
                                USERID            = User.Identity.Name,
                                INSTITUTION_ITBID = institutionId,
                                POSTTYPE          = Single
                            };
                            repoAuth.Insert(auth);
                            var rst = uow.Save(User.Identity.Name) > 0 ? true : false;
                            if (rst)
                            {
                                //newR = 1;
                                EmailerNotification.SendForAuthorization(menuId, fullName, deptCode, institutionId, "Currency Record");
                                TempData["msg"] = "Record Created SuccessFully...Authorization Pending.";
                                //return Json(new { RespCode = 0, RespMessage = "Record Created SuccessFully...Authorization Pending." });
                                return(RedirectToAction("Index", new { m = m }));

                                //return Json(new { RespCode = 0, RespMessage = "Record Created SuccessFully...Authorization Pending." });
                            }
                            else
                            {
                                ViewBag.Message = "Problem Updating Record.";
                                //return Json(new { RespCode = 0, RespMessage = "Record Created SuccessFully...Authorization Pending." });
                                return(View("Add", model));

                                // return Json(new { RespCode = 1, RespMessage = "Problem Creating Record." });
                            }
                        }
                    }
                }
                // If we got this far, something failed, redisplay form
                //return Json(new { RespCode = 1, RespMessage = errorMsg });
                ViewBag.Message = errorMsg;
                return(View("Add", model));
            }
            catch (SqlException ex)
            {
                ViewBag.Message = "Problem Updating Record.";
                //return Json(new { RespCode = 0, RespMessage = "Record Created SuccessFully...Authorization Pending." });
                return(View("Add", model));

                //return Json(new { RespCode = 1, RespMessage = ex.Message });
            }
            catch (Exception ex)
            {
                ViewBag.Message = "Problem Updating Record.";
                //return Json(new { RespCode = 0, RespMessage = "Record Created SuccessFully...Authorization Pending." });
                return(View("Add", model));
                //return Json(new { RespCode = 1, RespMessage = ex.Message });
            }
        }