Example #1
0
        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));
        }
Example #2
0
        private async Task <Outgoing> PostDelete(Incoming incoming)
        {
            switch (incoming.search.remove.type)
            {
            case "activeprojects":
                ActiveProject activeProject = _repo.ActiveProjects.FindByCondition(p => p.ActiveProjectId == incoming.search.remove.id).SingleOrDefault();
                if (activeProject == null)
                {
                    return(await PostError("PostRemove(): activeProject id does not exist"));
                }
                _repo.ActiveProjects.Delete(activeProject);
                break;

            case "badphrases":
                BadPhrase badPhrase = _repo.BadPhrases.FindByCondition(p => p.BadPhraseId == incoming.search.remove.id).SingleOrDefault();
                if (badPhrase == null)
                {
                    return(await PostError("PostRemove(): badPhrase id does not exist"));
                }
                _repo.BadPhrases.Delete(badPhrase);
                break;

            case "badwords":
                BadWord badWord = _repo.BadWords.FindByCondition(w => w.BadWordId == incoming.search.remove.id).SingleOrDefault();
                if (badWord == null)
                {
                    return(await PostError("PostRemove(): badWord id does not exist"));
                }
                _repo.BadWords.Delete(badWord);
                break;

            case "languages":
                Language language = _repo.Languages.FindByCondition(l => l.LanguageId == incoming.search.remove.id).SingleOrDefault();
                if (language == null)
                {
                    return(await PostError("PostRemove(): language id does not exist"));
                }
                _repo.Languages.Delete(language);
                break;

            case "nearconceptideas":            // NearConceptIdeas cannot be deleted.
                break;

            case "nearconcepts":
            case "nearconceptphrases":          // NearConceptPhrases can be deleted.  The linked NearConceptIdea is not deleted.
                NearConceptPhrase nearConceptPhrase = _repo.NearConceptPhrases.FindByCondition(p => p.NearConceptPhraseId == incoming.search.remove.id).SingleOrDefault();
                if (nearConceptPhrase == null)
                {
                    return(await PostError("PostRemove(): nearConceptPhrase id does not exist"));
                }
                _repo.NearConceptPhrases.Delete(nearConceptPhrase);
                break;

            case "platforms":
                Platform platform = _repo.Platforms.FindByCondition(p => p.PlatformId == incoming.search.remove.id).SingleOrDefault();
                if (platform == null)
                {
                    return(await PostError("PostRemove(): platform id does not exist"));
                }
                _repo.Platforms.Delete(platform);
                break;

            case "preferredlanguages":
                PreferredLanguage preferredLanguage = _repo.PreferredLanguages.FindByCondition(p => p.PreferredLanguageId == incoming.search.remove.id).SingleOrDefault();
                if (preferredLanguage == null)
                {
                    return(await PostError("PostRemove(): preferredLangauge id does not exist"));
                }
                _repo.PreferredLanguages.Delete(preferredLanguage);
                break;

            case "preferredsearches":
                PreferredSearch preferredSearch = _repo.PreferredSearches.FindByCondition(p => p.PreferredSearchId == incoming.search.remove.id).SingleOrDefault();
                if (preferredSearch == null)
                {
                    return(await PostError("PostRemove(): preferredSearch id does not exist"));
                }
                _repo.PreferredSearches.Delete(preferredSearch);
                break;

            case "rawsearches":
                RawSearch rawSearch = _repo.RawSearches.FindByCondition(s => s.RawSearchId == incoming.search.remove.id).SingleOrDefault();
                if (rawSearch == null)
                {
                    return(await PostError("PostRemove(): rawSearch id does not exist"));
                }
                _repo.RawSearches.Delete(rawSearch);
                break;

            case "settings":
                Setting setting = _repo.Settings.FindByCondition(s => s.SettingId == incoming.search.remove.id).SingleOrDefault();
                if (setting == null)
                {
                    return(await PostError("PostRemove(): setting id does not exist"));
                }
                _repo.Settings.Delete(setting);
                break;

            default:
                return(await PostError("something went wrong in delete"));
            }
            _repo.Save();
            incoming.search.request.type = incoming.search.remove.type;
            return(await PostGet(incoming));
        }
Example #3
0
        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));
        }