public IActionResult CreateMenu([FromBody] MenuItem menuItem)
        {
            try
            {
                var stopwatch = StopwatchLogger.Start(_log);
                _log.Info("Called MenuController CreateMenu");

                if (menuItem != null && menuItem.ReferenceEntityId != null)
                {
                    if (menuItem.MenuTypeId == 1)
                    {
                        menuItem.ReferenceEntityId = _iMetadataManager.GetEntityContextByEntityName(menuItem.ReferenceEntityId, false);
                    }
                    else if (menuItem.MenuTypeId == 2)
                    {
                        menuItem.ReferenceEntityId = _iMetadataManager.GetEntityContextByEntityName(menuItem.ReferenceEntityId, true);
                    }
                }

                using (TransactionScope ts = new TransactionScope()) {
                    //create menu
                    var retVal = _iMenuManager.CreateMenu(menuItem, UserId, TenantCode);
                    _iMenuManager.ClearMenuCache(TenantCode);

                    //create resource
                    //get language key value
                    string langKey   = "";
                    string langValue = "";
                    var    retLan    = _resourceManager.GetDefaultLanguageByTenant(TenantCode);
                    if (retLan != null && retLan.Key != null)
                    {
                        langKey = Convert.ToString(retLan.Key);
                    }
                    if (retLan != null && retLan.Text != null)
                    {
                        langValue = Convert.ToString(retLan.Text);
                    }

                    //check resource by key
                    var retRes = _resourceManager.GetResourcesByKey(TenantCode, menuItem.Menucode);
                    if (retRes.Count == 0)
                    {
                        string msg = "";
                        _resourceManager.Create(TenantCode, new Entities.EntityCore.Model.Resource.Resource(menuItem.Menucode, menuItem.Name, langKey, langValue, menuItem.ReferenceEntityId, false), UserId, ref msg);
                    }

                    ts.Complete();

                    stopwatch.StopAndLog("CreateMenu method of MenuController");
                    return(Ok(retVal));
                }
            }
            catch (Exception ex)
            {
                _log.Error(ExceptionFormatter.SerializeToString(ex));
                return(StatusCode((int)HttpStatusCode.InternalServerError, ApiConstant.CustomErrorMessage));
            }
        }