public JsonResult CreateEntity(List <KeyValue> keyValues) { try { var id = Guid.NewGuid(); var name = keyValues.FirstOrDefault(x => x.Key == "Name")?.Value; var displayName = keyValues.FirstOrDefault(x => x.Key == "DisplayName")?.Value; var pluralName = keyValues.FirstOrDefault(x => x.Key == "PluralName")?.Value; var fieldTypes = FieldTypeService.QueryFieldTypes(); #region Create entity record var returnValue = SharedService.ExecutePostSqlStoredProcedure("[eduq].[Entity_create]", new List <SqlParameter> { new SqlParameter("@id", id), new SqlParameter("@name", (name.ToLower())), new SqlParameter("@displayName", displayName), new SqlParameter("@pluralName", pluralName), new SqlParameter("@stateId", 1) }); if (returnValue != 1) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } var newlyCreatedEntity = EntityService.QueryEntityById(id); if (newlyCreatedEntity == null) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion #region Create sql table var returnValueCreateSqlTable = SqlService.CreateSqlTable(name); if (!returnValueCreateSqlTable) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion /*Create Fields*/ #region Id Field /*Id*/ var fieldId = Guid.NewGuid(); var fieldName = "Id"; var fieldDisplayName = "Id"; var fieldDescription = ""; var fieldDefaultValue = ""; var fieldEntityId = id; var GuidFieldType = FieldTypeService.QueryFieldTypeByName("Guid"); var GuidFieldTypeId = (int)GuidFieldType.FirstOrDefault(x => x.Key == "Id").Value; var GuidFieldTypeSqlDataType = GuidFieldType.FirstOrDefault(x => x.Key == "SqlDataTypeName").Value.ToString(); var fieldStateId = 1; var returnValueCreateField = FieldService.CreateField(fieldId, fieldName, fieldDisplayName, fieldDescription, fieldDefaultValue, fieldEntityId, GuidFieldTypeId, true, fieldStateId); if (returnValueCreateField == Guid.Empty) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion #region Name Field /*Name*/ fieldId = Guid.NewGuid(); fieldName = "Name"; fieldDisplayName = "Name"; fieldDescription = ""; fieldDefaultValue = ""; fieldEntityId = id; var texteFieldType = FieldTypeService.QueryFieldTypeByName("Texte"); var texteFieldTypeId = (int)texteFieldType.FirstOrDefault(x => x.Key == "Id").Value; fieldStateId = 1; returnValueCreateField = FieldService.CreateField(fieldId, fieldName, fieldDisplayName, fieldDescription, fieldDefaultValue, fieldEntityId, texteFieldTypeId, true, fieldStateId); if (returnValueCreateField == Guid.Empty) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion #region CreatedOn Field /*CreatedOn*/ fieldId = Guid.NewGuid(); fieldName = "CreatedOn"; fieldDisplayName = "Date de Création"; fieldDescription = ""; fieldDefaultValue = ""; fieldEntityId = id; var dateTimeFieldType = FieldTypeService.QueryFieldTypeByName("Date et Heure"); var dateTimeFieldTypeId = (int)dateTimeFieldType.FirstOrDefault(x => x.Key == "Id").Value; fieldStateId = 1; returnValueCreateField = FieldService.CreateField(fieldId, fieldName, fieldDisplayName, fieldDescription, fieldDefaultValue, fieldEntityId, dateTimeFieldTypeId, true, fieldStateId); if (returnValueCreateField == Guid.Empty) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion #region CreatedById Field /*CreatedId*/ fieldId = Guid.NewGuid(); fieldName = "CreatedById"; fieldDisplayName = "Créer par"; fieldDescription = ""; fieldDefaultValue = ""; fieldEntityId = id; var lookupFieldType = FieldTypeService.QueryFieldTypeByName("Recherche"); var lookupFieldTypeId = (int)lookupFieldType.FirstOrDefault(x => x.Key == "Id").Value; fieldStateId = 1; returnValueCreateField = FieldService.CreateField(fieldId, fieldName, fieldDisplayName, fieldDescription, fieldDefaultValue, fieldEntityId, lookupFieldTypeId, true, fieldStateId); if (returnValueCreateField == Guid.Empty) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion #region ModifiedOn /*ModifiedOn*/ fieldId = Guid.NewGuid(); fieldName = "ModifiedOn"; fieldDisplayName = "Date de modification"; fieldDescription = ""; fieldDefaultValue = ""; fieldEntityId = id; fieldStateId = 1; returnValueCreateField = FieldService.CreateField(fieldId, fieldName, fieldDisplayName, fieldDescription, fieldDefaultValue, fieldEntityId, dateTimeFieldTypeId, true, fieldStateId); if (returnValueCreateField == Guid.Empty) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion #region ModifiedById Field /*ModifiedById*/ fieldId = Guid.NewGuid(); fieldName = "ModifiedById"; fieldDisplayName = "Modifié par"; fieldDescription = ""; fieldDefaultValue = ""; fieldEntityId = id; lookupFieldType = FieldTypeService.QueryFieldTypeByName("Recherche"); lookupFieldTypeId = (int)lookupFieldType.FirstOrDefault(x => x.Key == "Id").Value; fieldStateId = 1; returnValueCreateField = FieldService.CreateField(fieldId, fieldName, fieldDisplayName, fieldDescription, fieldDefaultValue, fieldEntityId, lookupFieldTypeId, true, fieldStateId); if (returnValueCreateField == Guid.Empty) { return(Json(new { message = "Une erreur s'est produise pendant la creation de l'entité!", type = "error" }, JsonRequestBehavior.AllowGet)); } #endregion return(Json(new { message = id, type = "success" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(ex.Message, JsonRequestBehavior.AllowGet)); } }