public async Task <IActionResult> Create(ThirdPartyViewModel viewModel)
        {
            var idNumber = viewModel.ThirdParty.IDNumber;

            try
            {
                if (ModelState.IsValid)
                {
                    ThirdParty thirdParty = new ThirdParty();
                    thirdParty    = viewModel.ThirdParty;
                    thirdParty.ID = Guid.NewGuid();
                    _context.Add(thirdParty);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Index", new { payeeclassId = viewModel.ThirdParty.PayeeClassID }));
                }
            }
            catch (DbUpdateException ex)
            {
                var errorMsg = ex.InnerException.Message.ToString();

                if (errorMsg.Contains("IX_ThirdParty_IDNumber"))
                {
                    viewModel.ErrMsg = $"Duplicate ID Number {idNumber} exists.";
                }
                else
                {
                    viewModel.ErrMsg = errorMsg;
                }

                ModelState.AddModelError(string.Empty, viewModel.ErrMsg);
            }

            return(View(viewModel));
        }
        public async Task <IActionResult> Edit(ThirdPartyViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ThirdParty thirdParty = viewModel.ThirdParty;
                    _context.Update(thirdParty);
                    await _context.SaveChangesAsync();

                    var FullName    = (thirdParty.FirstName == null) ? thirdParty.LastName : thirdParty.FirstName + ' ' + thirdParty.LastName;
                    var payeeParams = new object[] { thirdParty.ID, FullName };
                    await _context.Database.ExecuteSqlCommandAsync(
                        "UPDATE Payee SET Name = {0} WHERE PayeeItemID = {1}",
                        parameters : payeeParams);

                    return(RedirectToAction("Index", new { payeeclassId = viewModel.ThirdParty.PayeeClassID }));
                }
                catch (DbUpdateException ex)
                {
                    var errorMsg = ex.InnerException.Message.ToString();

                    viewModel.ErrMsg = errorMsg;
                    ModelState.AddModelError(string.Empty, viewModel.ErrMsg);
                }
            }
            return(View(viewModel));
        }
        // GET: ThirdParties/Edit/5
        public async Task <IActionResult> Edit(Guid Id)
        {
            ThirdPartyViewModel viewModel = new ThirdPartyViewModel
            {
                ThirdParty = await _context.ThirdParties.SingleOrDefaultAsync(m => m.ID == Id)
            };

            return(View(viewModel));
        }
        // GET: ThirdParties/Create
        public IActionResult Create(int payeeclassId)
        {
            ThirdParty thirdParty = new ThirdParty
            {
                PayeeClassID = payeeclassId
            };

            ThirdPartyViewModel viewModel = new ThirdPartyViewModel
            {
                ThirdParty = thirdParty
            };

            return(View(viewModel));
        }
        public JsonResult GetThirdPartyDetails([FromBody] JObject requestParams)
        {
            if (requestParams == null)
            {
                return(Json(null));
            }

            int    type     = (requestParams["type"] == null || string.Compare((string)requestParams["type"], "") == 0) ? -1 : (int)requestParams["type"];
            string entityId = requestParams["entityId"] == null ? "" : (string)requestParams["entityId"];

            if (type == -1)
            {
                return(Json(null));
            }

            if (entityId == "")
            {
                return(Json(null));
            }

            ThirdPartyViewModel result = DBNAV2017GuiasTransporte.GetThirdPartyDetails(_config.NAVDatabaseName, _config.NAVCompanyName, type, entityId);

            return(Json(result));
        }