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)); } }