public IActionResult GetPreview(string projectId, [FromQuery] string sourcePath, [FromQuery] string dataset, [FromQuery] string userEmail)
        {
            try
            {
                if (string.IsNullOrEmpty(projectId) || string.IsNullOrEmpty(sourcePath) || string.IsNullOrEmpty(dataset) || string.IsNullOrEmpty(userEmail))
                {
                    return(BadRequest("Invalid request parameters"));
                }

                var projectDetailsRequestModel = new GetProjectDetailsRequestModel
                {
                    ProjectId        = projectId,
                    ExcludeResources = false,
                    UserEmail        = userEmail
                };
                var projectDetails = MongoConnector.GetProjectDetails(projectDetailsRequestModel);
                var requestModel   = new GetResourceDetailsRequestModel
                {
                    ProjectId  = projectId,
                    SourcePath = sourcePath,
                    UserEmail  = userEmail
                };

                var resourceDetails = MongoConnector.GetResourceDetails(requestModel);
                var userId          = MongoConnector.GetUserIdFromUserEmail(new GetUserIdRequestModel {
                    UserEmail = userEmail
                });

                var languageEntity = MongoConnector.GetLanguageEntity(new GetLanguageEntityRequestModel
                {
                    EntityId = projectDetails.SchemaId,
                });
                var partialModel = new GetPartialPagesDetailsRequestModel
                {
                    ProjectId = projectId,
                    UserEmail = userEmail
                };

                GetPartialPagesDetailsResponseModel partialPages = MongoConnector.GetPartialPagesDetails(partialModel);

                languageEntity = new KLanguageBase().GetKitsuneLanguage(userEmail, projectId, projectDetails, languageEntity, userId.Id);

                //Compile and get the call the single page preview api
                var result = _service.GetPreviewAsync(userEmail, projectId, resourceDetails, projectDetails, languageEntity, partialPages, dataset, userId.Id);

                if (result != null)
                {
                    return(Ok(result));
                }
                return(BadRequest("Unable to get the preview"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public IActionResult GetPageDetails(string projectId, [FromQuery] string sourcepath, [FromQuery] string user)
        {
            try
            {
                var requestModel = new GetResourceDetailsRequestModel
                {
                    ProjectId  = projectId,
                    SourcePath = sourcepath,
                    UserEmail  = user
                };
                var validationResult = requestModel.Validate();
                if (validationResult.Any())
                {
                    return(BadRequest(validationResult));
                }

                return(Ok(MongoConnector.GetResourceDetails(requestModel)));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }