//Data Creator Classes

        public static GetWebsiteDataResponseModel GetBaseClassData(GetPageDataRequest pageDataRequest)
        {
            string websiteId = pageDataRequest.WebsiteId;
            string userId    = pageDataRequest.UserId;

            string          filePath  = pageDataRequest.SourcePath.Split('?')[0];
            ObjectReference refObject = GetMetadataReferenceObject(pageDataRequest.ProjectId, filePath, pageDataRequest.SchemaName, websiteId, userId);

            if (refObject == null)
            {
                throw new ArgumentNullException(nameof(refObject));
            }

            if (_kitsuneSchemaServer == null || _kitsuneServer == null)
            {
                InitializeConnection();
            }

            var dataResult = new List <object>();

            try
            {
                string       baseClassName  = refObject.name.ToLower();
                var          collectionName = GenerateBaseClassName(baseClassName);
                var          collection     = _kitsuneSchemaDatabase.GetCollection <BsonDocument>(collectionName);
                string       filter         = String.Format("{{userid : '{0}', websiteid : '{1}', isarchived : false}}", userId, websiteId);
                var          result         = collection.Find(filter).FirstOrDefault();
                BsonDocument resultDocument = new BsonDocument();
                if (result != null)
                {
                    GetResultDocument(baseClassName, websiteId, null, result, refObject.properties, resultDocument, pageDataRequest.CurrentPageNumber);
                    resultDocument.Remove(COLLECTION_KEY_ID);
                    dataResult.Add(BsonSerializer.Deserialize <object>(resultDocument));
                }
                var response = new GetWebsiteDataResponseModel
                {
                    Data = dataResult
                };
                return(response);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public IActionResult GetPageData([FromRoute] string schemaname, [FromQuery] string websiteId, [FromQuery] string projectId, [FromQuery] string filePath, [FromQuery] string currentPageNumber)
        {
            try
            {
                var requestModel = new GetPageDataRequest
                {
                    ProjectId         = projectId,
                    SourcePath        = filePath,
                    WebsiteId         = websiteId,
                    SchemaName        = schemaname,
                    CurrentPageNumber = currentPageNumber
                };

                var userId = AuthHelper.AuthorizeRequest(Request);
                if (string.IsNullOrEmpty(userId))
                {
                    return(new CommonActionResult(CommonAPIResponse.UnAuthorized()));
                }
                else
                {
                    requestModel.UserId = userId;
                }

                var validationResult = requestModel.Validate();
                if (validationResult.Any())
                {
                    return(BadRequest(validationResult));
                }

                var result = MongoConnector.GetBaseClassData(requestModel);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }