Exemple #1
0
 public static Post BuildAnalyzingPost(Consultant consultant, Expert expert)
 {
     return new Post
                {
                    Author = consultant.User,
                    Type = PostType.Analyzing,
                    Content = string.Format(Resources.Thread.AnalyzingPostContent, expert.PublicName)
                };
 }
Exemple #2
0
 public static Post BuildReservedPost(Consultant consultant, Expert expert)
 {
     return new Post
                {
                    Author = consultant.User,
                    Type = PostType.Reserved,
                    Content =
                        string.Format(Resources.Thread.ThreadReservedQuestionPost, expert.PublicName)
                };
 }
Exemple #3
0
        public static MvcHtmlString ProfileBigAvatar(this HtmlHelper htmlHelper, Expert expert)
        {
            if (!expert.HasPicture)
                return htmlHelper.DefaultPicture300x300();

            return htmlHelper.ProfilePicture300x300(expert.Id);
        }
Exemple #4
0
 public static decimal CalculateUserValue(decimal expertValue, Expert expert)
 {
     return Decimal.Round(expertValue/GetExpertProvision(expert.Provision), 2);
 }
Exemple #5
0
 public static decimal CalculateValueBasedOnExpertLevel(decimal value, Expert expert)
 {
     return Decimal.Round(value * GetExpertProvision(expert.Provision), 2, MidpointRounding.AwayFromZero);
 }
Exemple #6
0
 public static decimal CalculatePotentialExpertValue(this Thread thread, Expert expert)
 {
     var baseValue = GetExpertProvision(expert.Provision) * thread.Value;
     return Decimal.Round(baseValue, 2, MidpointRounding.AwayFromZero) + thread.AdditionalExpertProvisionValue;
 }
Exemple #7
0
 public static void ChangePostToAnswered(Post post, Expert expert)
 {
     post.Type = PostType.Answered;
     post.Content = string.Format(Resources.Thread.AnsweredPostContent, expert.PublicName);
 }
        private void GenerateBDDTestingData()
        {
            //generating users
            var userSalt = CryptoHelper.CreateSalt();

            var user = new User
            {
                Email = "*****@*****.**",
                IsActivated = true,
                Password = "******",
                PasswordSalt = userSalt,
                BankAccountNumber = "654510157739999994584019961664"
            };

            Repository.User.Add(user);
            Repository.User.AddEmailConfigurationDefaultValue(user);

            var moderator = new Moderator
            {
                PublicName = "Szalony Moderator",

                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "116910157739999994584019961664"
                }
            };

            Repository.User.Add(moderator.User);
            Repository.Moderator.Add(moderator);
            Repository.User.AddEmailConfigurationDefaultValue(moderator.User);

            var expert1 = new Expert
            {
                FirstName = "test-name",
                LastName = "test-surname",
                PublicName = "test-expert",
                PhoneNumber = "671707525",
                VerificationStatus = ExpertVerificationStatus.Verified,
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "204510157739991764584019961664"
                }
            };

            foreach (var category in Repository.Category.All())
            {
                expert1.Categories.Add(category);
                expert1.CategoryAttributes.Add(new ExpertCategoryAttributeValues
                                                    {
                                                        Category = category,
                                                        ExpertReason = category.Name + " dfuq am i doing here"}
                                                    );
            }

            expert1.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "test-desc",
                Position = "test-position"
            });

            Repository.User.Add(expert1.User);
            Repository.Expert.Add(expert1);
            Repository.User.AddEmailConfigurationDefaultValue(expert1.User);
            Repository.Expert.AssignProvisionToExpert(expert1, ProvisionExpert.Novice);

            Repository.Partner.Create(expert1.User);

            var expert2 = new Expert
            {
                FirstName = "test-name2",
                LastName = "test-surname2",
                PublicName = "test-expert2",
                PhoneNumber = "271707325",
                VerificationStatus = ExpertVerificationStatus.Verified,
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "404510157739991344584019961664"
                }
            };

            foreach (var category in Repository.Category.All())
            {
                expert2.Categories.Add(category);
                expert2.CategoryAttributes.Add(new ExpertCategoryAttributeValues
                {
                    Category = category,
                    ExpertReason = category.Name + " dfuq am i doing here 2"
                }
                                                    );
            }

            expert2.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "test-desc2",
                Position = "test-position2"
            });

            Repository.User.Add(expert2.User);
            Repository.Expert.Add(expert2);
            Repository.User.AddEmailConfigurationDefaultValue(expert2.User);
            Repository.Expert.AssignProvisionToExpert(expert2, ProvisionExpert.Novice);

            Repository.Partner.Create(expert2.User);

            //generating threads
            
            //zadane, opłacone pytanie ([email protected]) bez eksperta
            var thread1 = new Thread
                             {
                                 Priority = ThreadPriority.Medium,
                                 Verbosity = ThreadVerbosity.Low,
                                 State = ThreadState.Unoccupied,
                                 SanitizationStatus = ThreadSanitizationStatus.NotSanitized,
                                 Value = 5.00m,
                                 IsPaid = true,
                                 Author = user,
                                 Posts = new List<Post>{new Post
                                                            {
                                                                Content = "Pytanie testowe bez eksperta",
                                                                CreationDate = DateTime.Now.AddDays(-2),
                                                                LastModificationDate = DateTime.Now.AddDays(-2),
                                                                Type = PostType.Question,
                                                                Author = user
                                                            }
                                 },
                                 Category = Repository.Category.Find(c => c.Name == "Nauka")
                             };

            thread1.PriceProposals.Add(new PriceProposal
                                           {
                                               Comment = "Proponuje wyższą cenę",
                                               CreationDate = DateTime.Now.AddDays(-1),
                                               LastModificationDate = DateTime.Now.AddDays(-1),
                                               Expert = expert2,
                                               SurchargeValue = 10,
                                               VerificationStatus = PriceProposalVerificationStatus.Verified
                                           });

            Repository.Thread.Add(thread1);

            thread1.CreationDate = DateTime.Now.AddDays(-2);
            Repository.Thread.Update(thread1);

            //zadane, opłacone pytanie z autorem ([email protected]) z ekspertem ([email protected])
            var thread2 = new Thread
                              {
                                  Priority = ThreadPriority.Medium,
                                  Verbosity = ThreadVerbosity.Low,
                                  State = ThreadState.Occupied,
                                  SanitizationStatus = ThreadSanitizationStatus.NotSanitized,
                                  Value = 5.00m,
                                  IsPaid = true,
                                  Author = user,
                                  Expert = expert1,
                                  Posts = new List<Post>
                                              {
                                                  new Post
                                                      {
                                                          Content = "Pytanie testowe z ekspertem",
                                                          Type = PostType.Question,
                                                          Author = user
                                                      },
                                                  new Post
                                                      {
                                                          Content = "Odpowiedź testowa",
                                                          Type = PostType.Answer,
                                                          Author = expert1.User
                                                      }
                                              },
                                  Category = Repository.Category.Find(c => c.Name == "Nauka")
                              };

            Repository.Thread.Add(thread2);

            // zadane, nieopłacone pytanie
            var thread3 = new Thread
                              {
                                  Priority = ThreadPriority.Medium,
                                  Verbosity = ThreadVerbosity.High,
                                  State = ThreadState.Unoccupied,
                                  SanitizationStatus = ThreadSanitizationStatus.NotSanitized,
                                  Value = 20.00m,
                                  IsPaid = false,
                                  Author = user,
                                  Posts = new List<Post>
                                              {
                                                  new Post
                                                      {
                                                          Content = "Nieopłacone pytanie testowe",
                                                          Type = PostType.Question,
                                                          Author = user
                                                      }
                                              },
                                  Category = Repository.Category.Find(c => c.Name == "Nauka")
                              };

            Repository.Thread.Add(thread3);

            var thread4 = new Thread
                              {
                                  Priority = ThreadPriority.Low,
                                  Verbosity = ThreadVerbosity.Medium,
                                  State = ThreadState.Closed,
                                  SanitizationStatus = ThreadSanitizationStatus.NotSanitized,
                                  Value = 10.00m,
                                  IsPaid = true,
                                  Author = user,
                                  Posts = new List<Post>
                                              {
                                                  new Post
                                                      {
                                                          Content = "Zamknięte pytanie testowe",
                                                          Type = PostType.Question,
                                                          Author = user
                                                      },
                                                  new Post
                                                      {
                                                          Content = "Odpowiedź testowa",
                                                          Type = PostType.Answer,
                                                          Author = expert1.User
                                                      }
                                              },
                                  Category = Repository.Category.Find(c => c.Name == "Nauka")
                              };

            Repository.Thread.Add(thread4);

            //zamkniete i oczyszczone pytanie
            var thread5 = new Thread
                              {
                                  Priority = ThreadPriority.Low,
                                  Verbosity = ThreadVerbosity.Medium,
                                  State = ThreadState.Closed,
                                  SanitizationStatus = ThreadSanitizationStatus.Sanitized,
                                  Value = 10.00m,
                                  IsPaid = true,
                                  Author = user,
                                  Expert = expert1,
                                  Posts = new List<Post>
                                              {
                                                  new Post
                                                      {
                                                          Content = "Zamknięte pytanie testowe sanitized",
                                                          Type = PostType.Question,
                                                          Author = user
                                                      },
                                                  new Post
                                                      {
                                                          Content = "Odpowiedź testowa sanitized",
                                                          Type = PostType.Answer,
                                                          Author = expert1.User
                                                      }
                                              },
                                  Category = Repository.Category.Find(c => c.Name == "Nauka")
                              };
            Repository.Thread.Add(thread5);

            /* generating SEO keywords */
            var seoKeyword1 = new SEOKeyword
                                 {
                                     Category = Repository.Category.Find(c => c.Name == "Nauka"),
                                     Phrase = "ekspert",
                                     Type = SEOKeywordType.Expert,
                                     Status = SEOKeywordStatus.Processed,
                                     Source = SEOKeywordSource.Automatic
                                 };
            Repository.SEOKeyword.Add(seoKeyword1);

            var seoKeyword2 = new SEOKeyword
            {
                Category = Repository.Category.Find(c => c.Name == "Nauka"),
                Phrase = "fraza",
                Type = SEOKeywordType.Phrase,
                Status = SEOKeywordStatus.Processed,
                Source = SEOKeywordSource.Automatic
            };
            Repository.SEOKeyword.Add(seoKeyword2);

            var seoKeyword3 = new SEOKeyword
            {
                Category = Repository.Category.Find(c => c.Name == "Nauka"),
                Phrase = "pytanie",
                Type = SEOKeywordType.Question,
                Status = SEOKeywordStatus.Processed,
                Source = SEOKeywordSource.Automatic
            };
            Repository.SEOKeyword.Add(seoKeyword3);
        }
        private void GenerateUsers()
        {
            var userSalt = CryptoHelper.CreateSalt();
            
            //Asknuts user

            var asknutsConsultant = new Consultant
            {
                PublicName = "Konsultantka Asknuts",

                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                }
            };

            Repository.User.Add(asknutsConsultant.User);
            Repository.Consultant.Add(asknutsConsultant);
            Repository.User.AddEmailConfigurationDefaultValue(asknutsConsultant.User);

            //Experts to specific categories

            var lawExpert = new Expert
            {
                FirstName = "Piotr",
                LastName = "Michalski",
                PublicName = "Piotr Michalski",
                PhoneNumber = "671707525",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Prawo i podatki"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "201960157739011764584019961664"
                }
            };

            lawExpert.Categories.Add(Repository.Category.Get(1));
            Repository.Expert.AssignProvisionToExpert(lawExpert, ProvisionExpert.Novice);
            lawExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Po­sia­dam sze­ro­kie do­świad­cze­nie w za­kre­sie pra­wa po­dat­ko­we­go, w szcze­gól­no­ści w za­kre­sie po­stę­po­wa­nia po­dat­ko­we­go oraz są­do­wo­–ad­mi­ni­stra­cyj­ne­go. Z po­wo­dze­niem re­pre­zen­to­wa­łem klien­tów w spra­wach po­dat­ko­wych przed or­ga­na­mi skar­bo­wy­mi i są­da­mi ad­mi­ni­stra­cyj­ny­mi.",
                Position = "Doradca podatkowy"
            });

            Repository.User.Add(lawExpert.User);
            Repository.Expert.Add(lawExpert);
            Repository.User.AddEmailConfigurationDefaultValue(lawExpert.User);

            //

            var businessExpert = new Expert
            {
                FirstName = "Gabriela",
                LastName = "Woźniak",
                PublicName = "Gabriela Woźniak",
                PhoneNumber = "518266333",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Biznes i finanse"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "901970157739911764582019961264"
                }
            };

            businessExpert.Categories.Add(Repository.Category.Get(2));
            Repository.Expert.AssignProvisionToExpert(businessExpert, ProvisionExpert.Intermediate);
            businessExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "­­Cześć! Ukończyłam kierunek Finanse na Uniwersytecie Ekonomicznym w Katowicach. Od tego czasu pracuję i zdobywam doświadczenie w różnych bankach. Obecnie rozwijam się i pracuje w ING Bank Śląski. Jeżeli masz jakiekolwiek pytania z dziedziny finansów/inwestycji lub szerokopojętego biznesu to pisz, a ja postaram się na nie odpowiedzieć.",
                Position = "Konsultant finansowy"
            });

            Repository.User.Add(businessExpert.User);
            Repository.Expert.Add(businessExpert);
            Repository.User.AddEmailConfigurationDefaultValue(businessExpert.User);

            //

            var animalsExperts = new Expert
            {
                FirstName = "Natasza",
                LastName = "Wysocka",
                PublicName = "Natasza Wysocka",
                PhoneNumber = "538484862",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Zwierzęta i weterynaria"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "301273157741911764582019961262"
                }
            };

            animalsExperts.Categories.Add(Repository.Category.Get(3));
            Repository.Expert.AssignProvisionToExpert(animalsExperts, ProvisionExpert.Intermediate);
            animalsExperts.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "­­Ponad 15 lat pracuję w branży weterynaryjnej. Moje bogate doświadczenie zdobyłam pracując w licznych schroniskach i przychodniach weterynaryjnych. Skończyłam kierunek zootechniki na SGGW w Warszawie.",
                Position = "Weterynarz"
            });

            Repository.User.Add(animalsExperts.User);
            Repository.Expert.Add(animalsExperts);
            Repository.User.AddEmailConfigurationDefaultValue(animalsExperts.User);

            //

            var travelsExpert = new Expert
            {
                FirstName = "Radosław",
                LastName = "Jasiński",
                PublicName = "Radosław Jasiński",
                PhoneNumber = "528412362",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Podróże"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "92223234741911654582019961902"
                }
            };

            travelsExpert.Categories.Add(Repository.Category.Get(4));
            Repository.Expert.AssignProvisionToExpert(travelsExpert, ProvisionExpert.Intermediate);
            travelsExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "­Od 10 lat zajmuję się profesjonalną organizacją ekstrymalnych wypraw turystycznych w różne rejony świata, od deszczowych lasów Amazonii po wysokie góry pasa Himalajów.",
                Position = ""
            });

            Repository.User.Add(travelsExpert.User);
            Repository.Expert.Add(travelsExpert);
            Repository.User.AddEmailConfigurationDefaultValue(travelsExpert.User);

            //

            var entertainmentExpert = new Expert
            {
                FirstName = "Zbigniew",
                LastName = "Pawlak",
                PublicName = "Zbigniew Pawlak",
                PhoneNumber = "514087935",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Rozrywka i rekreacja"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "35223234741964524582019961931"
                }
            };

            entertainmentExpert.Categories.Add(Repository.Category.Get(5));
            Repository.Expert.AssignProvisionToExpert(entertainmentExpert, ProvisionExpert.Novice);
            entertainmentExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Jestem kinomanem od dzieciństwa. Razem z przyjacielem prowadzę serwis filmowy w którym od ponad 5 lat zamieszczane są recenzje, opinie oraz krytyka filmowa. Kino, szczególnie amerykańskie z lat 80 to moja pasja.",
                Position = ""
            });

            Repository.User.Add(entertainmentExpert.User);
            Repository.Expert.Add(entertainmentExpert);
            Repository.User.AddEmailConfigurationDefaultValue(entertainmentExpert.User);

            //

            var cookeryExpert = new Expert
            {
                FirstName = "Zdzisław",
                LastName = "Jabłoński",
                PublicName = "Zdzisław Jabłoński",
                PhoneNumber = "531040758",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Sztuka kulinarna"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "96233234742654524582019961931"
                }
            };

            cookeryExpert.Categories.Add(Repository.Category.Get(6));
            Repository.Expert.AssignProvisionToExpert(cookeryExpert, ProvisionExpert.Novice);
            cookeryExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Obecnie pracuję jako szef kuchnii w Warszawskiej sieci restauracji. Skończyłem studia na kierunku Gastronomia i sztuka kulinarna. Pracę w zawodzie zaacząłem już na studiach co pozwoliło mi na zdobycie cennego doświadczenia.",
                Position = "Szef kuchnii"
            });

            Repository.User.Add(cookeryExpert.User);
            Repository.Expert.Add(cookeryExpert);
            Repository.User.AddEmailConfigurationDefaultValue(cookeryExpert.User);

            //

            var childrenExpert = new Expert
            {
                FirstName = "Weronika",
                LastName = "Piotrowska",
                PublicName = "Weronika Piotrowska",
                PhoneNumber = "532754932",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Dzieci"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "12393234742654524582019964561"
                }
            };

            childrenExpert.Categories.Add(Repository.Category.Get(7));
            Repository.Expert.AssignProvisionToExpert(childrenExpert, ProvisionExpert.Novice);
            childrenExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Skończyłam studia doktorackie na kierunku Pedagogika na Uniwersytecie Warszawskim. Moje powołanie do pracy z dziećmi odkryłam w szkole średniej, gdzie organizowane były różne akcje charytatywne. Obecnie pracuje jako wykładowca na tej samej uczelni.",
                Position = "Pedagog"
            });

            Repository.User.Add(childrenExpert.User);
            Repository.Expert.Add(childrenExpert);
            Repository.User.AddEmailConfigurationDefaultValue(childrenExpert.User);

            //

            var eventsExpert = new Expert
            {
                FirstName = "Stefania",
                LastName = "Kaczmarek",
                PublicName = "Stefania Kaczmarek",
                PhoneNumber = "535529051",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Wydarzenia i ceremonie"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "65953234742654524124519964561"
                }
            };

            eventsExpert.Categories.Add(Repository.Category.Get(8));
            Repository.Expert.AssignProvisionToExpert(eventsExpert, ProvisionExpert.Novice);
            eventsExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Prowadzę własną firmę organizującą rozmaite uroczystości (np. Wesela/Komunie/Koncerty). Posiadam 10 letnie doświadczenie w organizowaniu róznych imprez.",
                Position = ""
            });

            Repository.User.Add(eventsExpert.User);
            Repository.Expert.Add(eventsExpert);
            Repository.User.AddEmailConfigurationDefaultValue(eventsExpert.User);

            //

            var aboutMeExpert = new Expert
            {
                FirstName = "Klara",
                LastName = "Gąska",
                PublicName = "Klara Gąska",
                PhoneNumber = "455451051",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Ja i o mnie"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "65953234742654524124519964561"
                }
            };

            aboutMeExpert.Categories.Add(Repository.Category.Get(9));
            Repository.Expert.AssignProvisionToExpert(aboutMeExpert, ProvisionExpert.Experienced);
            aboutMeExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Praca z ludźmi to moja pasja. Po ukończonych studiach na kierunki Psychologii postanowiłam założyć własną firmę. Od ponad 12 lat zajmuję się rozwiązywaniem ludzkich problemów o podłożu psychologicznym i rozwojowym.",
                Position = "Psycholog"
            });

            Repository.User.Add(aboutMeExpert.User);
            Repository.Expert.Add(aboutMeExpert);
            Repository.User.AddEmailConfigurationDefaultValue(aboutMeExpert.User);

            //

            var loveExpert = new Expert
            {
                FirstName = "Bogumiła",
                LastName = "Nowakowska",
                PublicName = "Bogumiła Nowakowska",
                PhoneNumber = "965251454",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Miłość i relacje"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "11959655742654524124519964561"
                }
            };

            loveExpert.Categories.Add(Repository.Category.Get(10));
            Repository.Expert.AssignProvisionToExpert(loveExpert, ProvisionExpert.Novice);
            loveExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Od lat interesują mnie relacje międzyludzkie, dlatego po ukończeniu socjologii postanowiłam poświecić się temu powołaniu. Jeżeli masz jakiekolwiek pytania na temat relacji międzyludzkich i problemów o naturze socjalnej to śmiało pytaj!",
                Position = "Socjolog"
            });

            Repository.User.Add(loveExpert.User);
            Repository.Expert.Add(loveExpert);
            Repository.User.AddEmailConfigurationDefaultValue(loveExpert.User);

            //

            var scienceExpert = new Expert
            {
                FirstName = "Michał",
                LastName = "Kowalczyk",
                PublicName = "Michał Kowalczyk",
                PhoneNumber = "662251454",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Nauka"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "33359655742654524914519964561"
                }
            };

            scienceExpert.Categories.Add(Repository.Category.Get(11));
            Repository.Expert.AssignProvisionToExpert(scienceExpert, ProvisionExpert.Intermediate);
            scienceExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "",
                Position = "Nauczyciel Matematyki"
            });

            Repository.User.Add(scienceExpert.User);
            Repository.Expert.Add(scienceExpert);
            Repository.User.AddEmailConfigurationDefaultValue(scienceExpert.User);

            //

            var internetExpert = new Expert
            {
                FirstName = "Jacek",
                LastName = "Małatuński",
                PublicName = "Jacek Małatuński",
                PhoneNumber = "222251454",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Komputery i internet"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "33359655742654524914519964561"
                }
            };

            internetExpert.Categories.Add(Repository.Category.Get(12));
            Repository.Expert.AssignProvisionToExpert(internetExpert, ProvisionExpert.Intermediate);
            internetExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "",
                Position = "Informatyk"
            });

            Repository.User.Add(internetExpert.User);
            Repository.Expert.Add(internetExpert);
            Repository.User.AddEmailConfigurationDefaultValue(internetExpert.User);

            //

            var houseExpert = new Expert
            {
                FirstName = "Damian",
                LastName = "Izomorski",
                PublicName = "Damian Izomorski",
                PhoneNumber = "599951454",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Dom"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "33359655742622124914519964561"
                }
            };

            houseExpert.Categories.Add(Repository.Category.Get(13));
            Repository.Expert.AssignProvisionToExpert(houseExpert, ProvisionExpert.Intermediate);
            houseExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Ukończyłem studia na kierunku Architektury Wnętrz. Projektowaniem domów i wnętrz zajmuję się od 15 lat.",
                Position = "Projektant"
            });

            Repository.User.Add(houseExpert.User);
            Repository.Expert.Add(houseExpert);
            Repository.User.AddEmailConfigurationDefaultValue(houseExpert.User);

            //

            var equipmentExpert = new Expert
            {
                FirstName = "Szymon",
                LastName = "Czarnecki",
                PublicName = "Szymon Czarnecki",
                PhoneNumber = "599988864",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Sprzęt i naprawa"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "99563123452622124914519964561"
                }
            };

            equipmentExpert.Categories.Add(Repository.Category.Get(14));
            Repository.Expert.AssignProvisionToExpert(equipmentExpert, ProvisionExpert.Intermediate);
            equipmentExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Pracuję w serwisie napraw sprzętu znanej firmy. Od 5 lat zajume się ich naprawą.",
                Position = ""
            });

            Repository.User.Add(equipmentExpert.User);
            Repository.Expert.Add(equipmentExpert);
            Repository.User.AddEmailConfigurationDefaultValue(equipmentExpert.User);

            //

            var gardenExpert = new Expert
            {
                FirstName = "Dawid",
                LastName = "Czerwiński",
                PublicName = "Dawid Czerwiński",
                PhoneNumber = "512399464",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Ogród"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "99563123452622124914519961221"
                }
            };

            gardenExpert.Categories.Add(Repository.Category.Get(15));
            Repository.Expert.AssignProvisionToExpert(gardenExpert, ProvisionExpert.Intermediate);
            gardenExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Projektowanie ogrodów to moja pasja od 10 lat. Poprawny dobór roślin, kwiatów i drzew to jeden z najważniejszych czynników przy budowie doskonałego ogrodu. Potrafię doradzić lub nawet zaprojektować cały ogród dla państwa.",
                Position = ""
            });

            Repository.User.Add(gardenExpert.User);
            Repository.Expert.Add(gardenExpert);
            Repository.User.AddEmailConfigurationDefaultValue(gardenExpert.User);

            //

            var artExpert = new Expert
            {
                FirstName = "Władysław",
                LastName = "Dąbrowski",
                PublicName = "Władysław Dąbrowski",
                PhoneNumber = "555965784",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Sztuka i kultura"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "99125952452622124914519961221"
                }
            };

            artExpert.Categories.Add(Repository.Category.Get(16));
            Repository.Expert.AssignProvisionToExpert(artExpert, ProvisionExpert.Intermediate);
            artExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Moją pasją od ponad 10 lat są kultury wschodu. W szczególności interesuję się kulturami azjatyckimi.",
                Position = ""
            });

            Repository.User.Add(artExpert.User);
            Repository.Expert.Add(artExpert);
            Repository.User.AddEmailConfigurationDefaultValue(artExpert.User);

            //

            var healthExpert = new Expert
            {
                FirstName = "Mieczysław",
                LastName = "Szymanski",
                PublicName = "Mieczysław Szymanski",
                PhoneNumber = "568585784",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Zdrowie i medycyna"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "55542952452622124914519961221"
                }
            };

            healthExpert.Categories.Add(Repository.Category.Get(17));
            Repository.Expert.AssignProvisionToExpert(healthExpert, ProvisionExpert.Intermediate);
            healthExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Ukończyłem stomatologię na Uniwerystecie Medycznym w Poznaniu. Po zdobyciu 20-letniego doświadczenia w publicznych klinikach stomatologicznych, założyłem własną klinikę.",
                Position = "Stomatolog"
            });

            Repository.User.Add(healthExpert.User);
            Repository.Expert.Add(healthExpert);
            Repository.User.AddEmailConfigurationDefaultValue(healthExpert.User);

            //

            var autoExpert = new Expert
            {
                FirstName = "Jarosław",
                LastName = "Król",
                PublicName = "Jarosław Król",
                PhoneNumber = "561245784",
                VerificationStatus = ExpertVerificationStatus.Verified,
                VerificationDetails = @"Kompetencje eksperta z dziedziny ""Motoryzacja"" zostały zweryfikowane.",
                User = new User
                {
                    Email = "*****@*****.**",
                    IsActivated = true,
                    Password = "******",
                    PasswordSalt = userSalt,
                    BankAccountNumber = "55124578452622124914519961221"
                }
            };

            autoExpert.Categories.Add(Repository.Category.Get(18));
            Repository.Expert.AssignProvisionToExpert(autoExpert, ProvisionExpert.Intermediate);
            autoExpert.Microprofiles.Add(new ExpertMicroprofile
            {
                Description = "Prowadzę własny warsztat samochodowy od 8 lat. Mechanikę ukończyłem na Politechnice Gliwickiej",
                Position = "Właściciel warsztatu samochodowego"
            });

            Repository.User.Add(autoExpert.User);
            Repository.Expert.Add(autoExpert);
            Repository.User.AddEmailConfigurationDefaultValue(autoExpert.User);

        }