Exemple #1
0
        private async Task <bool> SaveSystemMessages()
        {
            var ptBR   = Messages["pt-br"];
            var en     = Messages["en"];
            var es     = Messages["es"];
            var filter = new FilterDefinitionBuilder <SystemMessages>();
            var msgCol = IlevusDatabase.GetCollection <SystemMessages>(IlevusTableNames.SystemMessagesTable);

            var result = await msgCol.ReplaceOneAsync(filter.Where((msg) => msg.Id == ptBR.Id), ptBR);

            if (result.MatchedCount == 0)
            {
                return(false);
            }

            result = await msgCol.ReplaceOneAsync(filter.Where((msg) => msg.Id == en.Id), en);

            if (result.MatchedCount == 0)
            {
                return(false);
            }

            result = await msgCol.ReplaceOneAsync(filter.Where((msg) => msg.Id == es.Id), es);

            if (result.MatchedCount == 0)
            {
                return(false);
            }
            return(true);
        }
Exemple #2
0
        public async Task <bool> UpdateSystemConfig()
        {
            var configCollection = IlevusDatabase.GetCollection <SystemConfig>(IlevusTableNames.SystemConfigTable);
            var result           = await configCollection.ReplaceOneAsync(FilterDefinition <SystemConfig> .Empty, SystemConfiguration);

            if (result.MatchedCount > 0)
            {
                return(true);
            }
            return(false);
        }
Exemple #3
0
        public async Task <bool> UpdateDefinitionsConfigs()
        {
            try
            {
                var configCollection = IlevusDatabase.GetCollection <SystemDefinitions>(IlevusTableNames.SystemDefinitionsTable);
                var result           = await configCollection.ReplaceOneAsync(FilterDefinition <SystemDefinitions> .Empty, SystemDefinitions);

                if (result.MatchedCount > 0)
                {
                    return(true);
                }
                return(false);
            }
            catch (Exception er) {
                return(false);
            }
        }
Exemple #4
0
 public IMongoCollection <PaymentsCustomer> GetPaymentsCustomerCollection()
 {
     return(IlevusDatabase.GetCollection <PaymentsCustomer>(IlevusTableNames.CustomerPaymentsTable));
 }
Exemple #5
0
 public IMongoCollection <CoachingProcess> GetCoachingProcessCollection()
 {
     return(IlevusDatabase.GetCollection <CoachingProcess>(IlevusTableNames.CoachingProcessTable));
 }
Exemple #6
0
 public IMongoCollection <AdBalance> GetAdsBalanceCollection()
 {
     return(IlevusDatabase.GetCollection <AdBalance>(IlevusTableNames.AdsBalanceTable));
 }
Exemple #7
0
 public IMongoCollection <AdsReport> GetAdsReport()
 {
     return(IlevusDatabase.GetCollection <AdsReport>(IlevusTableNames.AdsReport));
 }
Exemple #8
0
        public void EnsureIndexes()
        {
            var ads               = GetAdsCollection();
            var conversations     = GetConversationsCollection();
            var coachingProcesses = GetCoachingProcessCollection();
            var meetings          = GetMeetingScheduleCollection();
            var pictures          = GetPicturesCollection();
            var subscriptions     = GetSubscriptionsCollection();
            var users             = IlevusDatabase.GetCollection <IlevusUser>("users");

            // Ad searching opts
            var adSearch = Builders <Ad> .IndexKeys.Combine(
                Builders <Ad> .IndexKeys.Text(ad => ad.Headline),
                Builders <Ad> .IndexKeys.Text(ad => ad.Keywords)
                );

            var adWeights = new BsonDocument();

            adWeights["Headline"] = 2;
            adWeights["Keywords"] = 3;
            var adOpts = new CreateIndexOptions <Ad>()
            {
                DefaultLanguage  = "portuguese",
                LanguageOverride = "AdLanguage",
                Name             = "AdSearchIndex",
                Weights          = adWeights
            };

            ads.Indexes.CreateOne(adSearch, adOpts);

            var checksum = Builders <IlevusPicture> .IndexKeys.Ascending(pic => pic.Checksum);

            var unique = new CreateIndexOptions {
                Unique = true,
            };

            pictures.Indexes.CreateOne(checksum, unique);

            var authors = Builders <ChatConversation> .IndexKeys.Combine(
                Builders <ChatConversation> .IndexKeys.Ascending(conversation => conversation.FirstUser),
                Builders <ChatConversation> .IndexKeys.Ascending(conversation => conversation.SecondUser)
                );

            var daySort = Builders <ChatConversation> .IndexKeys.Descending(conversation => conversation.Day);

            conversations.Indexes.CreateOne(authors);
            conversations.Indexes.CreateOne(daySort);

            var tableFilter = Builders <MeetingSchedule> .IndexKeys.Combine(
                Builders <MeetingSchedule> .IndexKeys.Ascending(meeting => meeting.UserId),
                Builders <MeetingSchedule> .IndexKeys.Ascending(meeting => meeting.Begin)
                );

            var begin = Builders <MeetingSchedule> .IndexKeys.Ascending(meeting => meeting.Begin);

            var userId = Builders <MeetingSchedule> .IndexKeys.Ascending(meeting => meeting.UserId);

            meetings.Indexes.CreateOne(tableFilter);
            meetings.Indexes.CreateOne(begin);
            meetings.Indexes.CreateOne(userId);


            var subUserId = Builders <IlevusSubscription> .IndexKeys.Ascending(sub => sub.UserId);

            var subStatus = Builders <IlevusSubscription> .IndexKeys.Combine(
                Builders <IlevusSubscription> .IndexKeys.Ascending(sub => sub.UserId),
                Builders <IlevusSubscription> .IndexKeys.Ascending(sub => sub.Status)
                );

            subscriptions.Indexes.CreateOne(subUserId);
            subscriptions.Indexes.CreateOne(subStatus);

            // User search indexes
            var text = Builders <IlevusUser> .IndexKeys.Combine(
                Builders <IlevusUser> .IndexKeys.Ascending(u => u.IsProfessional),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Email),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Name),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Surname),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Professional.City),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Professional.County),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Professional.Country),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Professional.Industry),
                Builders <IlevusUser> .IndexKeys.Text("Professional.Services.Name"),
                Builders <IlevusUser> .IndexKeys.Text(u => u.Professional.Specialties)
                );

            var weights = new BsonDocument();

            weights["Email"]   = 10;
            weights["Surname"] = 8;
            weights["Name"]    = 6;
            weights["Professional.Industry"]      = 6;
            weights["Professional.Services.Name"] = 6;
            weights["Professional.Specialties"]   = 6;
            weights["Professional.City"]          = 4;
            weights["Professional.County"]        = 2;
            weights["Professional.Country"]       = 1;
            var textOpts = new CreateIndexOptions <IlevusUser>()
            {
                DefaultLanguage  = "portuguese",
                LanguageOverride = "SearchLanguage",
                Name             = "UserSearchIndex",
                Weights          = weights
            };

            users.Indexes.CreateOne(text, textOpts);
        }
Exemple #9
0
 public IMongoCollection <Ad> GetAdsCollection()
 {
     return(IlevusDatabase.GetCollection <Ad>(IlevusTableNames.AdsTable));
 }
Exemple #10
0
 public IMongoCollection <IlevusSubscription> GetSubscriptionsCollection()
 {
     return(IlevusDatabase.GetCollection <IlevusSubscription>(IlevusTableNames.SubscriptionsTable));
 }
Exemple #11
0
        public void EnsureSystemConfig()
        {
            var configCollection = IlevusDatabase.GetCollection <SystemConfig>(IlevusTableNames.SystemConfigTable);
            var configs          = configCollection.Find(FilterDefinition <SystemConfig> .Empty).FirstOrDefault();

            if (configs == null)
            {
                ResourceSet pt_br = IlevusResources.Manager.GetResourceSet(new CultureInfo(CultureHelper.GetImplementedCulture("pt-br")), true, true);
                ResourceSet en    = IlevusResources.Manager.GetResourceSet(new CultureInfo(CultureHelper.GetImplementedCulture("en")), true, true);
                ResourceSet es    = IlevusResources.Manager.GetResourceSet(new CultureInfo(CultureHelper.GetImplementedCulture("es")), true, true);

                configs = new SystemConfig()
                {
                    AccountBlockingMessages = new SystemTranslatedEmail()
                    {
                        pt_br = new SystemEmail()
                        {
                            Subject  = pt_br.GetString("EmailAccountBlockSubject"),
                            Template = pt_br.GetString("EmailAccountBlockBody")
                        },
                        en = new SystemEmail()
                        {
                            Subject  = en.GetString("EmailAccountBlockSubject"),
                            Template = en.GetString("EmailAccountBlockBody")
                        },
                        es = new SystemEmail()
                        {
                            Subject  = es.GetString("EmailAccountBlockSubject"),
                            Template = es.GetString("EmailAccountBlockBody")
                        }
                    },
                    EmailValidationMessages = new SystemTranslatedEmail()
                    {
                        pt_br = new SystemEmail()
                        {
                            Subject  = pt_br.GetString("EmailConfirmEmailSubject"),
                            Template = pt_br.GetString("EmailConfirmEmailBody")
                        },
                        en = new SystemEmail()
                        {
                            Subject  = en.GetString("EmailConfirmEmailSubject"),
                            Template = en.GetString("EmailConfirmEmailBody")
                        },
                        es = new SystemEmail()
                        {
                            Subject  = es.GetString("EmailConfirmEmailSubject"),
                            Template = es.GetString("EmailConfirmEmailBody")
                        }
                    },
                    RecoverPasswordMessages = new SystemTranslatedEmail()
                    {
                        pt_br = new SystemEmail()
                        {
                            Subject  = pt_br.GetString("EmailRecoverPasswordSubject"),
                            Template = pt_br.GetString("EmailRecoverPasswordBody")
                        },
                        en = new SystemEmail()
                        {
                            Subject  = en.GetString("EmailRecoverPasswordSubject"),
                            Template = en.GetString("EmailRecoverPasswordBody")
                        },
                        es = new SystemEmail()
                        {
                            Subject  = es.GetString("EmailRecoverPasswordSubject"),
                            Template = es.GetString("EmailRecoverPasswordBody")
                        }
                    },
                    WelcomeMessages = new SystemTranslatedEmail()
                    {
                        pt_br = new SystemEmail()
                        {
                            Subject  = pt_br.GetString("EmailWelcomeSubject"),
                            Template = pt_br.GetString("EmailWelcomeBody")
                        },
                        en = new SystemEmail()
                        {
                            Subject  = en.GetString("EmailWelcomeSubject"),
                            Template = en.GetString("EmailWelcomeBody")
                        },
                        es = new SystemEmail()
                        {
                            Subject  = es.GetString("EmailWelcomeSubject"),
                            Template = es.GetString("EmailWelcomeBody")
                        }
                    },
                    SystemMessage = new SystemTranslatedEmail()
                    {
                        pt_br = new SystemEmail()
                        {
                            Subject  = pt_br.GetString("EmailWelcomeSubject"),
                            Template = pt_br.GetString("EmailWelcomeBody")
                        },
                        en = new SystemEmail()
                        {
                            Subject  = en.GetString("EmailWelcomeSubject"),
                            Template = en.GetString("EmailWelcomeBody")
                        },
                        es = new SystemEmail()
                        {
                            Subject  = es.GetString("EmailWelcomeSubject"),
                            Template = es.GetString("EmailWelcomeBody")
                        }
                    }
                };

                configCollection.InsertOne(configs);
            }
            SystemConfiguration = configs;


            var DefinitionCollection = IlevusDatabase.GetCollection <SystemDefinitions>(IlevusTableNames.SystemDefinitionsTable);
            var definitions          = DefinitionCollection.Find(FilterDefinition <SystemDefinitions> .Empty).FirstOrDefault();

            SystemDefinitions = (definitions != null) ? definitions : new SystemDefinitions();


            var msgCollection = IlevusDatabase.GetCollection <SystemMessages>(IlevusTableNames.SystemMessagesTable);

            Messages = new ConcurrentDictionary <string, SystemMessages>();
            var msgs = msgCollection.Find(FilterDefinition <SystemMessages> .Empty).ToList();

            foreach (var msg in msgs)
            {
                if (!Messages.Any(x => x.Key == msg.Language))
                {
                    Messages.Add(msg.Language, msg);
                }
            }

            var            lang = CultureHelper.GetImplementedCulture("pt-br");
            SystemMessages messages;

            try
            {
                messages = Messages[lang];
                if (messages.Messages.Any(x => x.Key == "TextFooterContent" && x.Value.Content == "???TextFooterContent???"))
                {
                    messages.Add("TextFooterContent", new SystemLabel {
                        Content = "/cms/ConteudoRodape-PtBr.html"
                    });
                }
            }
            catch (KeyNotFoundException ex)
            {
                messages = CreateMSystemMessages(lang, msgCollection);
                Messages.Add(lang, messages);
            }

            lang = CultureHelper.GetImplementedCulture("en");
            try
            {
                messages = Messages[lang];
                if (messages.Messages.Any(x => x.Key == "TextFooterContent" && x.Value.Content == "???TextFooterContent???"))
                {
                    messages.Add("TextFooterContent", new SystemLabel {
                        Content = "/cms/ConteudoRodape-EnUs.html"
                    });
                }
            }
            catch (KeyNotFoundException ex)
            {
                messages = CreateMSystemMessages(lang, msgCollection);
                Messages.Add(lang, messages);
            }

            lang = CultureHelper.GetImplementedCulture("es");
            try
            {
                messages = Messages[lang];
                if (messages.Messages.Any(x => x.Key == "TextFooterContent" && x.Value.Content == "???TextFooterContent???"))
                {
                    messages.Add("TextFooterContent", new SystemLabel {
                        Content = "/cms/ConteudoRodape-Es.html"
                    });
                }
            }
            catch (KeyNotFoundException ex)
            {
                messages = CreateMSystemMessages(lang, msgCollection);
                Messages.Add(lang, messages);
            }
        }
Exemple #12
0
 public IMongoCollection <IlevusUser> GetUsersCollection()
 {
     return(IlevusDatabase.GetCollection <IlevusUser>(IlevusTableNames.UsersTable));
 }
Exemple #13
0
 public IMongoCollection <ChatConversation> GetConversationsCollection()
 {
     return(IlevusDatabase.GetCollection <ChatConversation>(IlevusTableNames.ConversationsTable));
 }
Exemple #14
0
 public IMongoCollection <AdLogModeration> GetAdsLogCollection()
 {
     return(IlevusDatabase.GetCollection <AdLogModeration>(IlevusTableNames.AdsLogTable));
 }
Exemple #15
0
 public IMongoCollection <AssessmentModel> GeAssessmentsCollection()
 {
     return(IlevusDatabase.GetCollection <AssessmentModel>(IlevusTableNames.AssessmentsTable));
 }
Exemple #16
0
 public IMongoCollection <SiteMapLogModel> GetSiteMapLogCollection()
 {
     return(IlevusDatabase.GetCollection <SiteMapLogModel>(IlevusTableNames.SiteMapTable));
 }
Exemple #17
0
 public IMongoCollection <NotificationModel> GetNotificationsCollection()
 {
     return(IlevusDatabase.GetCollection <NotificationModel>(IlevusTableNames.NotificationsTable));
 }
Exemple #18
0
 public IMongoCollection <SystemMessages> GetSystemMessagesCollection()
 {
     return(IlevusDatabase.GetCollection <SystemMessages>(IlevusTableNames.SystemMessagesTable));
 }
Exemple #19
0
 public IMongoCollection <MeetingSchedule> GetMeetingScheduleCollection()
 {
     return(IlevusDatabase.GetCollection <MeetingSchedule>(IlevusTableNames.MeetingScheduleTable));
 }
Exemple #20
0
 public IMongoCollection <IlevusPicture> GetPicturesCollection()
 {
     return(IlevusDatabase.GetCollection <IlevusPicture>(IlevusTableNames.PicturesTable));
 }