コード例 #1
0
        public static List <Model.QnA> GenerateQnA(string quizId, string courseId, string lessonName, string username)
        {
            var result = new List <Model.QnA>();

            try
            {
                IDataProvider data   = new MongoDataProvider();
                var           course = data.Get <DAL.Course>("_id", courseId);

                var quiz = data.Get <DAL.Quiz>("_id", quizId);

                Model.QnA source = null;
                if (quiz.Type == "Upisivanje")
                {
                    source = new Model.QnAUpisivanje();
                }
                else if (quiz.Type == "Izbor")
                {
                    source = new Model.QnAIzbor();
                }
                else if (quiz.Type == "VišestrukiIzbor")
                {
                    source = new Model.QnAVisestruki();
                }
                else
                {
                    result = null;
                }
                return(source.GenerateQnA(course, username, lessonName, quiz));
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #2
0
ファイル: UnitTest1.cs プロジェクト: MadamMidori/NekoUchi
        public void GetDALUser()
        {
            IDataProvider data = new MongoDataProvider();

            Model.User ModelUser = data.Get <DAL.User>("Email", "*****@*****.**");
            Assert.AreEqual(ModelUser.Email, "*****@*****.**");
        }
コード例 #3
0
        public void GetFromMongoTest()
        {
            var parser = new FilterParser();

            var result = parser.Parse(this.jobj);
//            var result = parser.Parse(jobj0);
//            var result = parser.Parse(jobj1);
//            var result = parser.Parse(jobj2);
//            var result = parser.Parse(jobj3);

            var builder = new MongoFilterBuilder <BsonDocument>();

            var text = result.GetQueryLanguageString();

            result.ConvertIdToMasterId();

            var mongoDataProvider = new MongoDataProvider("mongodb://demo.mongo1.domination.win:27017/masterdb_db9e00fa_1e68_4663_9bc2_93c7d7794b17");
            var collection        = mongoDataProvider.GetCollection <BsonDocument>("transactions");

            var documentsFinder = builder.RenderQuery(result, collection);

            var documents = documentsFinder.ToList();


            var q = new QueryLanguageBuilder().RenderQuery(result);
        }
コード例 #4
0
ファイル: BasicTests.cs プロジェクト: bychkovav/microtools
        public void MongoFilterBuilderTest()
        {
            // var query = @"$jobj.job().ee.Pickup<>().ae.notes<general>()._Add(vx.dataAdded = 'xxx', md()._add(vx.text = 'zzz'))";
//            var query = @"$jobj.job(ae.instructions<driver>() && hd.tags(vx.name = 'jahahah') && ae.instructions<driver>().ae.comments<early>(vx.isRead = 'true'))";
            // var query = @"$jobj.job(ae.instructions<driver>().ae.comments<early>(vx.isRead = 'true') && ae.instructions<driver>().md.company<shipper>(vx.name = 'GE Transportation'))";
            //var query = @"$jobj.user(vx.firstName = 'New' && (id = 'f90d36be-7d10-4ed1-9753-5ea7ea87ea46' || vx.lastName = 'Name1'))";
            var query   = @"$jobj.user(vmd.user<driver>.vx.text = 'xxx')";
            var builder = new MongoFilterBuilder <BsonDocument>();


//            var mongoDataProvider = new MongoDataProvider("mongodb://dmz.mongo1.test.domination.win:27017/main");
            var mongoDataProvider = new MongoDataProvider("mongodb://demo.mongo1.domination.win:27017/masterdb_d00ffca1_07ad_4c0a_a984_89f6a7a75d15");
            var collection        = mongoDataProvider.GetCollection <BsonDocument>("transactions");

            var documentsFinder = builder.Build(query, collection);

            var documents = documentsFinder.ToList();

            JsonConvert.DefaultSettings = () =>
            {
                var defaultSettings = new JsonSerializerSettings();
//                defaultSettings.Converters.Add(new ObjectIdConverter());
                defaultSettings.Converters.Add(new BsonObjectIdConverter());
//                defaultSettings.Converters.Add(new DotInNamesConverter());
                return(defaultSettings);
            };


            var y = JsonConvert.DeserializeObject <JObject>(documents[0].ToJson());


            Console.WriteLine(documents);
        }
コード例 #5
0
 public ProductController(IProductRepository productRepository, IUnitOfWork uow, MongoDataProvider mongoDataProvider)
 {
     _productRepository = productRepository;
     _uow = uow;
     _mongoDataProvider            = mongoDataProvider;
     _mongoDataProvider.Collection = "Event2";
 }
コード例 #6
0
ファイル: Integration.cs プロジェクト: namesecured/MapReduce
        public void Should_connects_to_the_server()
        {
            var mongoDataProvider = new MongoDataProvider();

            mongoDataProvider.Connect();
            mongoDataProvider.Disconnect();
        }
コード例 #7
0
        public void Test()
        {
            var mongoProvider = new MongoDataProvider("mongodb://dmz.mongo1.test.domination.win:27017/test");
            var coll          = mongoProvider.GetCollection <BsonDocument>("testCollection");

            coll.InsertOne(new BsonDocument());
        }
コード例 #8
0
ファイル: UnitTest1.cs プロジェクト: MadamMidori/NekoUchi
        public void GetAllCourses()
        {
            IDataProvider data = new MongoDataProvider();
            var           enumerableCourses = BLL.Course.GetAllCourses();

            Assert.AreEqual(enumerableCourses.ModelCourses.Count, 1);
        }
コード例 #9
0
ファイル: AuthLogic.cs プロジェクト: MadamMidori/NekoUchi
        public static string CheckToken(string token)
        {
            IDataProvider data = new MongoDataProvider();
            // Fetch session from DB
            var session = data.Get <Session>("Id", token);

            // if there is any, check TTE
            if (session != null && session.Id != "")
            {
                // if TTE is alright, return email of the current user
                if (session.TTE > DateTime.Now)
                {
                    return(session.Email);
                }
                else
                {
                    DeleteToken(token);
                    return("");
                }
            }
            else
            {
                return("");
            }
        }
コード例 #10
0
ファイル: AuthLogic.cs プロジェクト: MadamMidori/NekoUchi
        public string Register()
        {
            // Setup user
            var user = new User();

            try
            {
                // Generate password hash first
                string salt = Randoms.GenerateSalt(8);
                string hash = Hasher.GetHash(Password, salt);
                user.ModelUser                  = new Model.User();
                user.ModelUser.Email            = Email;
                user.ModelUser.Password         = hash;
                user.ModelUser.Basil            = salt;
                user.ModelUser.RegistrationDate = DateTime.Now;
                user.ModelUser.Role             = Constants.Roles.User;
                IDataProvider data = new MongoDataProvider();
                if (data.Create(user.ModelUser) == null)
                {
                    throw new Exception();
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            // Get a session token
            string sessionToken = GetToken(user.ModelUser.Email);

            // if everything passed well
            return(sessionToken);
        }
コード例 #11
0
    public void Setup()
    {
        IConfigurationRoot configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).
                                           AddJsonFile("appsettings.json").Build();

        configuration.GetSection(nameof(DatabaseSettings)).Bind(settings);

        _provider = new MongoDataProvider(settings);
    }
コード例 #12
0
ファイル: UnitTest1.cs プロジェクト: MadamMidori/NekoUchi
        public void GetUsersCourses()
        {
            string        email  = "*****@*****.**";
            IDataProvider data   = new MongoDataProvider();
            var           course = BLL.Course.GetUsersCourses(email);

            foreach (var enumCourse in course.ModelCourses)
            {
                Assert.AreEqual(enumCourse.Author, email);
            }
        }
コード例 #13
0
ファイル: UnitTest1.cs プロジェクト: MadamMidori/NekoUchi
        public void CheckAny()
        {
            IDataProvider data              = new MongoDataProvider();
            var           course            = new BLL.Course();
            var           enumerableCourses = data.GetMultipleUsingAny <DAL.Course>("Subscribed", "*****@*****.**");

            course.ModelCourses = new List <Model.Course>();
            foreach (var enumerableCourse in enumerableCourses)
            {
                course.ModelCourses.Add(enumerableCourse);
            }
        }
コード例 #14
0
ファイル: AuthLogic.cs プロジェクト: MadamMidori/NekoUchi
        public static bool DeleteToken(string token)
        {
            IDataProvider data = new MongoDataProvider();

            try
            {
                return(data.Delete <Session>("Id", token));
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #15
0
        public SvcTemplateService(MongoDataProvider mongoDataProvider)
        {
            this.mongoDataProvider = mongoDataProvider;
            var options = new CreateIndexOptions()
            {
                Unique = true
            };
            var field           = new StringFieldDefinition <SvcTemplateEntity>(nameof(SvcTemplateEntity.SvcTemplateId));
            var indexDefinition = new IndexKeysDefinitionBuilder <SvcTemplateEntity>().Ascending(field);

            this.mongoDataProvider.SvcTemplateDb.GetCollection <SvcTemplateEntity>(SvcTemplateCollection).Indexes
            .CreateOne(indexDefinition, options);
        }
コード例 #16
0
        public CompanyService(MongoDataProvider mongoDataProvider)
        {
            this.mongoDataProvider = mongoDataProvider;
            var options = new CreateIndexOptions()
            {
                Unique = true
            };
            var field           = new StringFieldDefinition <CompanyEntity>(nameof(CompanyEntity.Identifier));
            var indexDefinition = new IndexKeysDefinitionBuilder <CompanyEntity>().Ascending(field);

            this.mongoDataProvider.CompanyDb.GetCollection <CompanyEntity>(CompanyCollection).Indexes
            .CreateOne(indexDefinition, options);
        }
コード例 #17
0
ファイル: Course.cs プロジェクト: MadamMidori/NekoUchi
 public static Course GetCourse(string id)
 {
     try
     {
         var           course = new Course();
         IDataProvider data   = new MongoDataProvider();
         course.ModelCourse = data.Get <DAL.Course>("_id", id);
         return(course);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #18
0
ファイル: Word.cs プロジェクト: MadamMidori/NekoUchi
 public static Word GetWord(string wordId)
 {
     try
     {
         IDataProvider data = new MongoDataProvider();
         var           word = new Word();
         word.ModelWord = data.Get <DAL.Word>("_id", wordId);
         return(word);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #19
0
 public static User Get(string email)
 {
     try
     {
         IDataProvider data = new MongoDataProvider();
         var           user = new User();
         user.ModelUser = data.Get <DAL.User>("Email", email);
         return(user);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #20
0
 public static bool SaveQnAs(List <Model.QnA> qnas)
 {
     try
     {
         IDataProvider data = new MongoDataProvider();
         if (data.CreateMany(qnas) == null)
         {
             return(false);
         }
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
コード例 #21
0
ファイル: Course.cs プロジェクト: MadamMidori/NekoUchi
        public static bool SubscribeUserToCourse(string userMail, string courseId)
        {
            try
            {
                var           course = new Course();
                IDataProvider data   = new MongoDataProvider();
                course.ModelCourse = data.Get <DAL.Course>("_id", courseId);

                // Obrati pozornost na to da ne želiš da ti se korisnik može subscribeat 2x
                if (course.ModelCourse.Subscribed.Contains(userMail))
                {
                    return(true);
                }
                return(DAL.Course.SubscribeUser(userMail, courseId));
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #22
0
ファイル: UnitTest1.cs プロジェクト: MadamMidori/NekoUchi
        public void CreateCourse()
        {
            var dalCourse = new DAL.Course();

            dalCourse.Author      = "*****@*****.**";
            dalCourse.Description = "Lorem ipsum dolor sit amet";
            dalCourse.Lessons     = new List <Model.Lesson>();
            dalCourse.Name        = "Hello world!";
            dalCourse.Statistics  = new Model.CourseStatistics();
            dalCourse.Subscribed  = new List <string>();

            IDataProvider data = new MongoDataProvider();

            dalCourse = data.Create(dalCourse);
            dalCourse.Identification = dalCourse._id.ToString();

            var modelCourse = new Model.Course();

            modelCourse = dalCourse;
        }
コード例 #23
0
ファイル: Course.cs プロジェクト: MadamMidori/NekoUchi
 public static Course GetSubscribedCourses(string email)
 {
     try
     {
         IDataProvider data              = new MongoDataProvider();
         var           course            = new Course();
         var           enumerableCourses = data.GetMultipleUsingAny <DAL.Course>("Subscribed", email);
         course.ModelCourses = new List <Model.Course>();
         foreach (var enumerableCourse in enumerableCourses)
         {
             enumerableCourse.Identification = enumerableCourse._id.ToString();
             course.ModelCourses.Add(enumerableCourse);
         }
         return(course);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #24
0
ファイル: Course.cs プロジェクト: MadamMidori/NekoUchi
        public static bool UnsubscribeUserFromCourse(string userMail, string courseId)
        {
            try
            {
                var           course = new Course();
                IDataProvider data   = new MongoDataProvider();
                course.ModelCourse = data.Get <DAL.Course>("_id", courseId);

                // Ne bi trebao biti slučaj, ali ako korisnik nije subscribean onda je sve ok
                if (!course.ModelCourse.Subscribed.Contains(userMail))
                {
                    return(true);
                }
                return(DAL.Course.UnsubscribeUser(userMail, courseId));
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #25
0
 public static List <Quiz> GetAllGenericQuizzes()
 {
     try
     {
         var           result  = new List <Quiz>();
         IDataProvider data    = new MongoDataProvider();
         var           quizzes = data.GetMultiple <DAL.Quiz>("", "");
         foreach (var quiz in quizzes)
         {
             var bllQuiz = new Quiz();
             bllQuiz.Identification = quiz._id.ToString();
             bllQuiz.ModelQuiz      = quiz;
             result.Add(bllQuiz);
         }
         return(result);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #26
0
ファイル: AuthLogic.cs プロジェクト: MadamMidori/NekoUchi
        public string Login()
        {
            IDataProvider data = new MongoDataProvider();
            // Get the user info
            var user = data.Get <DAL.User>("Email", Email);

            // Now hashing the given password and compare hashes
            string hash = Hasher.GetHash(Password, user.Basil);

            // Correct - setup token
            if (user.Password == hash)
            {
                string sessionToken = GetToken(user.Email);
                return(sessionToken);
            }
            // False - return error
            else
            {
                return("");
            }
        }
コード例 #27
0
ファイル: Word.cs プロジェクト: MadamMidori/NekoUchi
 public static List <Word> GetAllWords()
 {
     try
     {
         IDataProvider data            = new MongoDataProvider();
         var           enumerableWords = data.GetMultiple <DAL.Word>("", "");
         var           words           = new List <Word>();
         foreach (var enumerableWord in enumerableWords)
         {
             var word = new Word();
             word.Identification = enumerableWord._id.ToString();
             word.ModelWord      = enumerableWord;
             words.Add(word);
         }
         return(words);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #28
0
ファイル: BasicTests.cs プロジェクト: bychkovav/microtools
        public void JsonModificationTests()
        {
            var json = @"{ 'z.z' : 1 }";


            var jobj = JsonConvert.DeserializeObject <JObject>(json);



            var ss = new JsonSerializerSettings();
//            ss.Converters.Add(new DotInNamesConverter());
            var mJobj = JsonConvert.SerializeObject(jobj, ss);

            var bson = BsonDocument.Parse(mJobj);

            var mongoDataProvider = new MongoDataProvider("mongodb://dmz.mongo1.test.domination.win:27017/test");
            var collection        = mongoDataProvider.GetCollection <BsonDocument>("test");

            collection.InsertOne(bson);

            //            var ser = JsonConvert.SerializeObject(), Formatting.Indented, new JsonSerializerSettings {ContractResolver = new ShouldSerializeContractResolver()});
        }
コード例 #29
0
ファイル: Course.cs プロジェクト: MadamMidori/NekoUchi
        public static bool AddLessonToCourse(string courseId, Model.Lesson lesson)
        {
            try
            {
                var           course = new Course();
                IDataProvider data   = new MongoDataProvider();
                course.ModelCourse = data.Get <DAL.Course>("_id", courseId);

                // ne smiju biti 2 lekcije istog imena
                foreach (var courseLesson in course.ModelCourse.Lessons)
                {
                    if (courseLesson.Name == lesson.Name)
                    {
                        throw new Exception("AlreadyExists");
                    }
                }

                return(DAL.Course.AddLesson(lesson, courseId));
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #30
0
ファイル: Integration.cs プロジェクト: namesecured/MapReduce
 public void Should_connects_to_the_server()
 {
     var mongoDataProvider = new MongoDataProvider();
     mongoDataProvider.Connect();
     mongoDataProvider.Disconnect();
 }
コード例 #31
0
ファイル: UnitTest1.cs プロジェクト: MushuPlatypus/ChatZapp
 public void NotNullCollections()
 {
     var provider = MongoDataProvider.Get("MessageBoard");
     var test     = provider.GetCollection("MessageBoard");
 }
コード例 #32
0
 public void Setup()
 {
     _provider  = new MongoDataProvider(@"mongodb://localhost:27017/master");
 }