示例#1
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));
        }
示例#2
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));
        }
示例#3
0
        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);
        }