public async Task <ActionResult> Create(SupplierModel model)
        {
            if (!_permissionService.Authorize(PermissionProvider.SupplierManagement))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                if (_supplierService.CheckNameHasExisted(model.Name).Result)
                {
                    return(Content("Supplier Name has existed."));
                }

                var supplier = new Supplier()
                {
                    Name             = model.Name,
                    Note             = model.Note,
                    VendorCode       = model.VendorCode,
                    VendorPrefixCode = model.VendorPrefixCode,
                    DisplayOrder     = model.DisplayOrder,
                    VendorContact    = model.VendorContact,
                    LocationTypeId   = model.LocationType.Id
                };

                try
                {
                    await _supplierService.InsertAsync(supplier);
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message));
                }

                return(Json(new { status = "success" }));
            }

            // If we got this far, something failed, redisplay form
            return(Content(GetErrorMessageFromModelState()));
        }