public ActionResult <string> Put(Guid guid, [FromBody] UserConfigLanguage_Post model) { if (guid == Guid.Empty) { return(BadRequest("guid can not be empty")); } if (!ModelState.IsValid) { return(BadRequest("model is incorrect due to:" + Environment.NewLine + GetModelStateErrors(ModelState))); } try { //find entity concerned with guid var user_language = context.UserConfiguredLanguages.FirstOrDefault(ul => ul.Guid == guid); if (user_language == null) { return(NotFound($"unknown user configured language of guid: {guid}")); } //modify the entity fields //get the levels var speak_level = context.NiveauxParles.FirstOrDefault(np => np.Guid == model.speak_level_guid); if (speak_level == null) { return(BadRequest("speak_level not recognized !")); } var write_level = context.NiveauxEcrits.FirstOrDefault(ne => ne.Guid == model.write_level_guid); if (write_level == null) { return(BadRequest("write_level not recognized !")); } var understand_level = context.NiveauxComprehensions.FirstOrDefault(nc => nc.Guid == model.understand_level_guid); if (understand_level == null) { return(BadRequest("understand_level not recognized !")); } user_language.NiveauParleGuid = model.speak_level_guid; user_language.NiveauEcritGuid = model.write_level_guid; user_language.NiveauComprehensionGuid = model.understand_level_guid; user_language.NiveauParle = speak_level; user_language.NiveauEcrit = write_level; user_language.NiveauComprehension = understand_level; //update entity context.Entry(user_language).State = EntityState.Modified; context.SaveChanges(); return(Ok(new UserConfigLanguage_Get() { guid = user_language.Guid, isAppLanguage = user_language.IsApplicationUserLanguage, isCompulsoryLanguage = user_language.LanguageConcerned.IsCompulsoryToTheApplication, language_name = user_language.LanguageConcerned.Name, level_speak_name = user_language.NiveauParle.Name, level_write_name = user_language.NiveauEcrit.Name, level_understand_name = user_language.NiveauComprehension.Name })); } catch (Exception e) { Console.WriteLine(e); return(StatusCode(417, "Error: " + e.Message + " " + Environment.NewLine + e.Source)); } }
public ActionResult <string> Post([FromBody] UserConfigLanguage_Post model) { if (!ModelState.IsValid) { return(BadRequest("model is incorrect due to:" + Environment.NewLine + GetModelStateErrors(ModelState))); } //create a userlanguage configuration instance //get language concerned try { var language = context.Languages.FirstOrDefault(l => l.Guid == model.language_guid); if (language == null) { return(BadRequest("language not recognized !")); } //level concerned var level_write = context.NiveauxEcrits.FirstOrDefault(ne => ne.Guid == model.write_level_guid); if (level_write == null) { return(BadRequest("write_level not recognized !")); } var level_speak = context.NiveauxParles.FirstOrDefault(np => np.Guid == model.speak_level_guid); if (level_speak == null) { return(BadRequest("speak_level not recognized !")); } var level_understand = context.NiveauxComprehensions.FirstOrDefault(nc => nc.Guid == model.understand_level_guid); if (level_understand == null) { return(BadRequest("understand_level not recognized !")); } //create user configured language var userLanguageConfig = new UserConfiguredLanguage() { Guid = Guid.NewGuid(), DateCreated = DateTime.Now, LastModifiedDate = DateTime.Now, LanguageGuid = language.Guid, LanguageConcerned = language, NiveauParleGuid = level_speak.Guid, NiveauEcritGuid = level_write.Guid, NiveauComprehensionGuid = level_understand.Guid, NiveauParle = level_speak, NiveauEcrit = level_write, NiveauComprehension = level_understand }; //save configured language context.UserConfiguredLanguages.Add(userLanguageConfig); context.SaveChanges(); return(Created($"{Url.Action("Get")}/{userLanguageConfig.Guid}", new UserConfigLanguage_Get() { guid = userLanguageConfig.Guid, isAppLanguage = userLanguageConfig.IsApplicationUserLanguage, isCompulsoryLanguage = userLanguageConfig.LanguageConcerned.IsCompulsoryToTheApplication, language_name = language.Name, level_speak_name = level_speak.Name, level_write_name = level_write.Name, level_understand_name = level_understand.Name })); } catch (Exception e) { Console.WriteLine(e); return(StatusCode(417, "Error: " + e.Message + " " + Environment.NewLine + e.Source)); } }