private async Task <Outgoing> PostAdd(Incoming incoming) { switch (incoming.search.add.type) { case "activeprojects": ActiveProject activeProject = new ActiveProject(); activeProject.ProjectType = incoming.search.add.name; activeProject.Day = incoming.search.add.day; _repo.ActiveProjects.Create(activeProject); break; case "badphrases": BadPhrase badPhrase = new BadPhrase(); badPhrase.Phrase = incoming.search.add.name; _repo.BadPhrases.Create(badPhrase); break; case "badwords": BadWord badWord = new BadWord(); badWord.Word = incoming.search.add.name; _repo.BadWords.Create(badWord); break; case "languages": Language language = new Language(); language.LanguageName = incoming.search.add.name; _repo.Languages.Create(language); break; case "nearconceptideas": // NearConceptIdeas can be added by themselves. { NearConceptIdea nearConceptIdea = new NearConceptIdea(); nearConceptIdea.ProperForm = incoming.search.add.name; nearConceptIdea.Day = incoming.search.add.day; _repo.NearConceptIdeas.Create(nearConceptIdea); break; } case "nearconcepts": case "nearconceptphrases": // NearConceptPhrases must be added with a NearConceptIdea. { NearConceptPhrase nearConceptPhrase = new NearConceptPhrase(); NearConceptIdea nearConceptIdea = _repo.NearConceptIdeas.FindByCondition(i => i.ProperForm == incoming.search.add.matchTo).SingleOrDefault(); if (nearConceptIdea == null) // add new nearConceptIdea; { nearConceptIdea = new NearConceptIdea(); nearConceptIdea.ProperForm = incoming.search.add.matchTo; nearConceptIdea.Day = incoming.search.add.day; _repo.NearConceptIdeas.Create(nearConceptIdea); _repo.Save(); // reload it to get the id. nearConceptIdea = _repo.NearConceptIdeas.FindByCondition(i => i.ProperForm == incoming.search.add.matchTo).SingleOrDefault(); } nearConceptPhrase.Phrase = incoming.search.add.name; nearConceptPhrase.ConceptId = nearConceptIdea.NearConceptIdeaId; _repo.NearConceptPhrases.Create(nearConceptPhrase); break; } case "platforms": Platform platform = new Platform(); platform.PlatformName = incoming.search.add.name; _repo.Platforms.Create(platform); break; case "preferredlanguages": PreferredLanguage preferredLanguage = new PreferredLanguage(); preferredLanguage.LanguageName = incoming.search.add.name; preferredLanguage.Day = incoming.search.add.day; _repo.PreferredLanguages.Create(preferredLanguage); break; case "preferredsearches": PreferredSearch preferredSearch = new PreferredSearch(); preferredSearch.SearchName = incoming.search.add.name; _repo.PreferredSearches.Create(preferredSearch); break; case "rawsearches": RawSearch rawSearch = new RawSearch(); rawSearch.StudentName = incoming.search.username; rawSearch.Search = incoming.search.add.name; _repo.RawSearches.Create(rawSearch); break; case "settings": Setting setting = new Setting(); setting.SettingName = incoming.search.add.name; setting.Set = incoming.search.isetting.set; _repo.Settings.Create(setting); break; default: return(await PostError("something went wrong in add")); } _repo.Save(); incoming.search.request.type = incoming.search.add.type; return(await PostGet(incoming)); }
private async Task <Outgoing> PostPut(Incoming incoming) { switch (incoming.search.edit.type) { case "activeprojects": ActiveProject activeProject = _repo.ActiveProjects.FindByCondition(p => p.ActiveProjectId == incoming.search.edit.id).SingleOrDefault(); if (activeProject == null) { return(await PostError("PostEdit(): activeProject id does not exist")); } activeProject.ProjectType = incoming.search.edit.newname; activeProject.Day = incoming.search.edit.day; _repo.ActiveProjects.Update(activeProject); break; case "badphrases": BadPhrase badPhrase = _repo.BadPhrases.FindByCondition(p => p.BadPhraseId == incoming.search.edit.id).SingleOrDefault(); if (badPhrase == null) { return(await PostError("PostEdit(): badPhrase id does not exist")); } badPhrase.Phrase = incoming.search.edit.newname; _repo.BadPhrases.Update(badPhrase); break; case "badwords": BadWord badWord = _repo.BadWords.FindByCondition(w => w.BadWordId == incoming.search.edit.id).SingleOrDefault(); if (badWord == null) { return(await PostError("PostEdit(): badWord id does not exist")); } badWord.Word = incoming.search.edit.newname; _repo.BadWords.Update(badWord); break; case "languages": Language language = _repo.Languages.FindByCondition(l => l.LanguageId == incoming.search.edit.id).SingleOrDefault(); if (language == null) { return(await PostError("PostEdit(): language id does not exist")); } language.LanguageName = incoming.search.edit.newname; _repo.Languages.Update(language); break; case "nearconceptideas": // NearConceptIdeas can be edited by themselves. { NearConceptIdea nearConceptIdea = _repo.NearConceptIdeas.FindByCondition(i => i.NearConceptIdeaId == incoming.search.edit.id).SingleOrDefault(); if (nearConceptIdea == null) { return(await PostError("PostEdit(): nearConceptIdea id does not exist")); } nearConceptIdea.ProperForm = incoming.search.edit.newname; nearConceptIdea.Day = incoming.search.edit.day; _repo.NearConceptIdeas.Update(nearConceptIdea); break; } case "nearconcepts": case "nearconceptphrases": // NearConceptPhrases must be edited with a NearConceptIdea. { NearConceptPhrase nearConceptPhrase = _repo.NearConceptPhrases.FindByCondition(p => p.NearConceptPhraseId == incoming.search.edit.id).SingleOrDefault(); if (nearConceptPhrase == null) { return(await PostError("PostEdit(): nearConceptPhrase id does not exist")); } // Doesn't make sense to edit the NearConceptIdea since it may be tied to other NearConceptPhrases. // If the edited NearConceptIdea doesn't already exist, it will be created. NearConceptIdea nearConceptIdea = _repo.NearConceptIdeas.FindByCondition(i => i.ProperForm == incoming.search.edit.matchto).SingleOrDefault(); if (nearConceptIdea == null) // add new nearConceptIdea; { nearConceptIdea = new NearConceptIdea(); nearConceptIdea.ProperForm = incoming.search.edit.matchto; nearConceptIdea.Day = incoming.search.edit.day; _repo.NearConceptIdeas.Create(nearConceptIdea); _repo.Save(); // reload it to get the id. nearConceptIdea = _repo.NearConceptIdeas.FindByCondition(i => i.ProperForm == incoming.search.edit.matchto).SingleOrDefault(); } nearConceptPhrase.Phrase = incoming.search.edit.newname; nearConceptPhrase.ConceptId = nearConceptIdea.NearConceptIdeaId; _repo.NearConceptPhrases.Update(nearConceptPhrase); break; } case "platforms": Platform platform = _repo.Platforms.FindByCondition(p => p.PlatformId == incoming.search.edit.id).SingleOrDefault(); if (platform == null) { return(await PostError("PostEdit(): platform id does not exist")); } platform.PlatformName = incoming.search.edit.newname; _repo.Platforms.Update(platform); break; case "preferredlanguages": PreferredLanguage preferredLanguage = _repo.PreferredLanguages.FindByCondition(p => p.PreferredLanguageId == incoming.search.edit.id).SingleOrDefault(); if (preferredLanguage == null) { return(await PostError("PostEdit(): preferredLangauge id does not exist")); } preferredLanguage.LanguageName = incoming.search.edit.newname; preferredLanguage.Day = incoming.search.edit.day; _repo.PreferredLanguages.Update(preferredLanguage); break; case "preferredsearches": PreferredSearch preferredSearch = _repo.PreferredSearches.FindByCondition(p => p.PreferredSearchId == incoming.search.edit.id).SingleOrDefault(); if (preferredSearch == null) { return(await PostError("PostEdit(): preferredSearch id does not exist")); } preferredSearch.SearchName = incoming.search.edit.newname; _repo.PreferredSearches.Update(preferredSearch); break; case "rawsearches": RawSearch rawSearch = _repo.RawSearches.FindByCondition(s => s.RawSearchId == incoming.search.edit.id).SingleOrDefault(); if (rawSearch == null) { return(await PostError("PostEdit(): rawSearch id does not exist")); } rawSearch.StudentName = incoming.search.username; rawSearch.Search = incoming.search.edit.newname; _repo.RawSearches.Update(rawSearch); break; case "settings": Setting setting = _repo.Settings.FindByCondition(s => s.SettingId == incoming.search.edit.id).SingleOrDefault(); if (setting == null) { return(await PostError("PostEdit(): setting id does not exist")); } setting.SettingName = incoming.search.edit.newname; setting.Set = incoming.search.isetting.set; _repo.Settings.Update(setting); break; default: return(await PostError("something went wrong in edit")); } _repo.Save(); incoming.search.request.type = incoming.search.edit.type; return(await PostGet(incoming)); }
private async Task <Outgoing> PostGet(Incoming incoming) { Outgoing outgoing = new Outgoing(); outgoing.responseType = incoming.search.request.type; switch (incoming.search.request.type) { case "activeprojects": outgoing.activeProjects = _repo.ActiveProjects.FindAll().ToList(); break; case "badphrases": outgoing.badPhrases = _repo.BadPhrases.FindAll().ToList(); break; case "badwords": outgoing.badWords = _repo.BadWords.FindAll().ToList(); break; case "languages": outgoing.languages = _repo.Languages.FindAll().ToList(); break; case "nearconceptideas": // returns NearConceptIdeas in NearConcept form. { List <NearConcept> nearConcepts = new List <NearConcept>(); List <NearConceptIdea> nearConceptIdeas = _repo.NearConceptIdeas.FindAll().ToList(); foreach (var idea in nearConceptIdeas) { NearConcept nearConcept = new NearConcept(); nearConcept.Phrase = null; nearConcept.ProperForm = idea.ProperForm; nearConcept.Day = idea.Day; nearConcepts.Add(nearConcept); } outgoing.nearConcepts = nearConcepts; } break; case "nearconcepts": case "nearconceptphrases": // NearConceptPhrases are returned with their NearConceptIdea. { List <NearConcept> nearConcepts = new List <NearConcept>(); var nearConceptPhrases = _repo.NearConceptPhrases.FindAll().ToList(); foreach (var phrase in nearConceptPhrases) { NearConceptIdea nearConceptIdea = _repo.NearConceptIdeas.FindByCondition(i => i.NearConceptIdeaId == phrase.ConceptId).SingleOrDefault(); NearConcept nearConcept = new NearConcept(); nearConcept.Phrase = phrase.Phrase; nearConcept.ProperForm = nearConceptIdea.ProperForm; nearConcept.Day = nearConceptIdea.Day; nearConcepts.Add(nearConcept); } outgoing.nearConcepts = nearConcepts; } break; case "platforms": outgoing.platforms = _repo.Platforms.FindAll().ToList(); break; case "preferredlanguages": outgoing.preferredLanguages = _repo.PreferredLanguages.FindAll().ToList(); break; case "preferredsearches": outgoing.preferredSearches = _repo.PreferredSearches.FindAll().ToList(); break; case "rawsearches": outgoing.rawSearches = _repo.RawSearches.FindAll().ToList(); break; case "settings": outgoing.settings = _repo.Settings.FindAll().ToList(); break; default: outgoing.responseType = "something went wrong in get"; break; } return(outgoing); }