Пример #1
0
        public static ItemBase ItemFactory(EJsonDataObjectType jsonDataObjectType, string data)
        {
            switch (jsonDataObjectType)
            {
            case EJsonDataObjectType.User: return(new ItemUser(new JavaScriptSerializer().Deserialize <UserData>(data)));

            case EJsonDataObjectType.Subjects: return(new ItemSubject(new JavaScriptSerializer().Deserialize <SubjectData>(data)));

            case EJsonDataObjectType.Assignments: return(new ItemAssignment(new JavaScriptSerializer().Deserialize <AssignmentData>(data)));

            case EJsonDataObjectType.ReviewStatistics: return(new ItemReviewStatistics(new JavaScriptSerializer().Deserialize <ReviewStatisticData>(data)));

            case EJsonDataObjectType.StudyMaterials: return(new ItemStudyMaterial(new JavaScriptSerializer().Deserialize <StudyMaterialData>(data)));

            case EJsonDataObjectType.Summary: return(new ItemSummary(new JavaScriptSerializer().Deserialize <SummaryData>(data)));

            case EJsonDataObjectType.Reviews: return(new ItemReview(new JavaScriptSerializer().Deserialize <ReviewData>(data)));

            case EJsonDataObjectType.LevelProgressions: return(new ItemLevelProgression(new JavaScriptSerializer().Deserialize <LevelProgressionData>(data)));

            case EJsonDataObjectType.Resets: return(new ItemReset(new JavaScriptSerializer().Deserialize <ResetData>(data)));

            default: throw new ArgumentOutOfRangeException(nameof(jsonDataObjectType), jsonDataObjectType, null);
            }
        }
Пример #2
0
        public ItemCollection MakeCollectionRequest(EJsonDataObjectType jsonDataObjectType)
        {
            string endPoint = this.GetEndPoint(jsonDataObjectType);
            string data     = this.MakeRequest("https://www.wanikani.com/api/v2/" + endPoint);

            return(data == string.Empty ? default(ItemCollection) : ItemCollection.CollectionFactory(jsonDataObjectType, data));
        }
Пример #3
0
        public ItemBase MakeResourceRequest(EJsonDataObjectType jsonDataObjectType)
        {
            string endPoint = this.GetEndPoint(jsonDataObjectType);
            string data     = this.MakeRequest("https://www.wanikani.com/api/v2/" + endPoint);

            return(data == string.Empty ? default(ItemBase) : ItemBase.ItemFactory(jsonDataObjectType, data));
        }
Пример #4
0
        private string GetEndPoint(EJsonDataObjectType jsonDataObjectType)
        {
            switch (jsonDataObjectType)
            {
            case EJsonDataObjectType.User: return(RequestEndPoint.User);

            case EJsonDataObjectType.Subjects: return(RequestEndPoint.Subjects);

            case EJsonDataObjectType.Assignments: return(RequestEndPoint.Assignments);

            case EJsonDataObjectType.ReviewStatistics: return(RequestEndPoint.ReviewStatistics);

            case EJsonDataObjectType.StudyMaterials: return(RequestEndPoint.StudyMaterials);

            case EJsonDataObjectType.Summary: return(RequestEndPoint.Summary);

            case EJsonDataObjectType.Reviews: return(RequestEndPoint.Reviews);

            case EJsonDataObjectType.LevelProgressions: return(RequestEndPoint.LevelProgressions);

            case EJsonDataObjectType.Resets: return(RequestEndPoint.Resets);

            default: throw new ArgumentOutOfRangeException(nameof(jsonDataObjectType), jsonDataObjectType, null);
            }
        }
Пример #5
0
        public static ItemCollection CollectionFactory(EJsonDataObjectType jsonDataObjectType, string data)
        {
            switch (jsonDataObjectType)
            {
            case EJsonDataObjectType.Subjects: return(new ItemCollection(new JavaScriptSerializer().Deserialize <SubjectCollectionData>(data), jsonDataObjectType));

            case EJsonDataObjectType.Assignments: return(new ItemCollection(new JavaScriptSerializer().Deserialize <AssignmentCollectionData>(data), jsonDataObjectType));

            case EJsonDataObjectType.ReviewStatistics: return(new ItemCollection(new JavaScriptSerializer().Deserialize <ReviewStatisticCollectionData>(data), jsonDataObjectType));

            case EJsonDataObjectType.StudyMaterials: return(new ItemCollection(new JavaScriptSerializer().Deserialize <StudyMaterialCollectionData>(data), jsonDataObjectType));

            case EJsonDataObjectType.Reviews: return(new ItemCollection(new JavaScriptSerializer().Deserialize <ReviewCollectionData>(data), jsonDataObjectType));

            case EJsonDataObjectType.LevelProgressions: return(new ItemCollection(new JavaScriptSerializer().Deserialize <LevelProgressionCollectionData>(data), jsonDataObjectType));

            case EJsonDataObjectType.Resets: return(new ItemCollection(new JavaScriptSerializer().Deserialize <ResetCollectionData>(data), jsonDataObjectType));

            default: throw new ArgumentOutOfRangeException(nameof(jsonDataObjectType), jsonDataObjectType, null);
            }
        }
Пример #6
0
        public ItemCollection(CollectionData collection, EJsonDataObjectType jsonDataObjectType)
        {
            this.collection = collection;

            switch (jsonDataObjectType)
            {
            case EJsonDataObjectType.Subjects: {
                SubjectCollectionData subjectCollection = (SubjectCollectionData)collection;
                this.datas = new ItemBase[subjectCollection.data.Length];
                for (int i = 0; i < this.datas.Length; ++i)
                {
                    this.datas[i] = new ItemSubject(subjectCollection.data[i]);
                }
            } break;

            case EJsonDataObjectType.Assignments: {
                AssignmentCollectionData assignmentCollection = (AssignmentCollectionData)collection;
                this.datas = new ItemBase[assignmentCollection.data.Length];
                for (int i = 0; i < this.datas.Length; ++i)
                {
                    this.datas[i] = new ItemAssignment(assignmentCollection.data[i]);
                }
            } break;

            case EJsonDataObjectType.ReviewStatistics: {
                ReviewStatisticCollectionData reviewStatisticCollection = (ReviewStatisticCollectionData)collection;
                this.datas = new ItemBase[reviewStatisticCollection.data.Length];
                for (int i = 0; i < this.datas.Length; ++i)
                {
                    this.datas[i] = new ItemReviewStatistics(reviewStatisticCollection.data[i]);
                }
            } break;

            case EJsonDataObjectType.StudyMaterials: {
                StudyMaterialCollectionData studyMaterialCollection = (StudyMaterialCollectionData)collection;
                this.datas = new ItemBase[studyMaterialCollection.data.Length];
                for (int i = 0; i < this.datas.Length; ++i)
                {
                    this.datas[i] = new ItemStudyMaterial(studyMaterialCollection.data[i]);
                }
            } break;

            case EJsonDataObjectType.Reviews: {
                ReviewCollectionData reviewCollection = (ReviewCollectionData)collection;
                this.datas = new ItemBase[reviewCollection.data.Length];
                for (int i = 0; i < this.datas.Length; ++i)
                {
                    this.datas[i] = new ItemReview(reviewCollection.data[i]);
                }
            } break;

            case EJsonDataObjectType.LevelProgressions: {
                LevelProgressionCollectionData levelProgressionCollection = (LevelProgressionCollectionData)collection;
                this.datas = new ItemBase[levelProgressionCollection.data.Length];
                for (int i = 0; i < this.datas.Length; ++i)
                {
                    this.datas[i] = new ItemLevelProgression(levelProgressionCollection.data[i]);
                }
            } break;

            case EJsonDataObjectType.Resets: {
                ResetCollectionData resetCollection = (ResetCollectionData)collection;
                this.datas = new ItemBase[resetCollection.data.Length];
                for (int i = 0; i < this.datas.Length; ++i)
                {
                    this.datas[i] = new ItemReset(resetCollection.data[i]);
                }
            } break;

            default: throw new ArgumentOutOfRangeException(nameof(jsonDataObjectType), jsonDataObjectType, null);
            }
        }
Пример #7
0
 public T MakeResourceRequest <T>(EJsonDataObjectType jsonDataObjectType) where T : ItemBase
 {
     return((T)this.MakeResourceRequest(jsonDataObjectType));
 }
Пример #8
0
        public ItemBase MakeFullUrlResourceRequest(string url, EJsonDataObjectType jsonDataObjectType)
        {
            string data = this.MakeRequest(url);

            return(data == string.Empty ? default(ItemBase) : ItemBase.ItemFactory(jsonDataObjectType, data));
        }
Пример #9
0
 public T MakeFullUrlResourceRequest <T>(string url, EJsonDataObjectType jsonDataObjectType) where T : ItemBase
 {
     return((T)this.MakeFullUrlResourceRequest(url, jsonDataObjectType));
 }
Пример #10
0
        public ItemCollection MakeFullUrlCollectionRequest(string url, EJsonDataObjectType jsonDataObjectType)
        {
            string data = this.MakeRequest(url);

            return(data == string.Empty ? default(ItemCollection) : ItemCollection.CollectionFactory(jsonDataObjectType, data));
        }