Пример #1
0
        private void UpdatePaperKeywords(string[] selectedOptions, PaperInfo paperInfoToUpdate)
        {
            if (selectedOptions == null)
            {
                paperInfoToUpdate.PaperKeywords = new List <PaperKeyword>();
                return;
            }

            var selectedOptionsHS = new HashSet <string>(selectedOptions);
            var papKey            = new HashSet <int>(paperInfoToUpdate.PaperKeywords.Select(b => b.KeywordID));

            foreach (var s in _context.Keywords)
            {
                if (selectedOptionsHS.Contains(s.ID.ToString()))
                {
                    if (!papKey.Contains(s.ID))
                    {
                        paperInfoToUpdate.PaperKeywords.Add(new PaperKeyword
                        {
                            KeywordID   = s.ID,
                            PaperInfoID = paperInfoToUpdate.ID
                        });
                    }
                }
                else
                {
                    if (papKey.Contains(s.ID))
                    {
                        PaperKeyword specToRemove = paperInfoToUpdate.PaperKeywords.SingleOrDefault(d => d.KeywordID == s.ID);
                        _context.Remove(specToRemove);
                    }
                }
            }
        }
Пример #2
0
        public async Task <IActionResult> Create([Bind("PaperId,TitleENG,TitleORG,Authors,Abstract,OrgName,LanguageId,PaperKeywords")] ViewModels.PaperPaperKeyworsViewModel paperPaperKeyword, IFormFile file)
        {
            var userId = _userManager.GetUserId(HttpContext.User);

            var user = _context.ApplicationUser
                       .Include(ap => ap.Users)
                       .FirstOrDefault(ap => ap.Id == userId);

            foreach (var userType in user.Users)
            {
                if (userType.GetType().ToString() == "ConFutureNce.Models.Author")
                {
                    if (ModelState.IsValid & file != null)
                    {
                        var paper = new Paper
                        {
                            Abstract   = paperPaperKeyword.Abstract,
                            TitleENG   = paperPaperKeyword.TitleENG,
                            TitleORG   = paperPaperKeyword.TitleORG,
                            Authors    = paperPaperKeyword.Authors,
                            OrgName    = paperPaperKeyword.OrgName,
                            LanguageId = paperPaperKeyword.LanguageId
                        };

                        var userTypeId = user.Users.First().UserTypeId;
                        paper.AuthorId = userTypeId;
                        if (paperPaperKeyword.PaperKeywords != null)
                        {
                            var paperKeywordsTableWithRepeats = paperPaperKeyword.PaperKeywords.Split(",");
                            for (int i = 0; i < paperKeywordsTableWithRepeats.Length; i++)
                            {
                                paperKeywordsTableWithRepeats[i] = paperKeywordsTableWithRepeats[i].Trim();
                            }
                            paperKeywordsTableWithRepeats = paperKeywordsTableWithRepeats.Where(x => !string.IsNullOrEmpty(x)).ToArray();
                            var paperKeywordsTable  = paperKeywordsTableWithRepeats.Distinct().ToArray();
                            List <PaperKeyword> ppk = new List <PaperKeyword>();

                            foreach (string keyword in paperKeywordsTable)
                            {
                                var paperKeywords = new PaperKeyword
                                {
                                    KeyWord = keyword,
                                    Paper   = paper
                                };
                                ppk.Add(paperKeywords);
                            }
                            paper.PaperKeywords = ppk;
                        }
                        using (var memoryStream = new MemoryStream())
                        {
                            await file.CopyToAsync(memoryStream);

                            paper.PaperFile = memoryStream.ToArray();
                        }
                        paper.SubmissionDate = DateTime.Now;
                        paper.Status         = 0;
                        _context.Add(paper);
                        await _context.SaveChangesAsync();

                        return(RedirectToAction("Index", "Payments", new PaymentViewModel
                        {
                            UserName = user.Fullname,
                            BillingAddress = user.Address,
                            PaperId = paper.PaperId
                        }));
                    }
                    ICollection <Language> languageList = new List <Language>();
                    languageList            = (from language in _context.Language select language).ToList();
                    ViewBag.ListofLanguages = languageList;
                    return(View(paperPaperKeyword));
                }
            }

            return(RedirectToAction("Index"));
        }
Пример #3
0
        public void InitContext()
        {
            if (context != null)
            {
                return;
            }
            // UserManager initialization
            var userStore = new Mock <IUserStore <ApplicationUser> >();

            userManager = new UserManager <ApplicationUser>(userStore.Object, null, null, null, null, null, null, null, null);
            // DB in memory initialization
            var option = new DbContextOptionsBuilder <ConFutureNceContext>().UseInMemoryDatabase("db").Options;

            context = new ConFutureNceContext(option);
            // DB data creation if ApplicationUser table is empty
            if (context.ApplicationUser.Any())
            {
                return;
            }

            #region DB content

            var languages = new Language[]
            {
                new Language {
                    LanguageName = "Afrikanns"
                },
                new Language {
                    LanguageName = "Albanian"
                },
                new Language {
                    LanguageName = "Arabic"
                },
                new Language {
                    LanguageName = "Armenian"
                },
                new Language {
                    LanguageName = "Basque"
                },
                new Language {
                    LanguageName = "Bengali"
                },
                new Language {
                    LanguageName = "Bulgarian"
                },
                new Language {
                    LanguageName = "Catalan"
                },
                new Language {
                    LanguageName = "Cambodian"
                },
                new Language {
                    LanguageName = "Chinese (Mandarin)"
                },
                new Language {
                    LanguageName = "Croation"
                },
                new Language {
                    LanguageName = "Czech"
                },
                new Language {
                    LanguageName = "Danish"
                },
                new Language {
                    LanguageName = "Dutch"
                },
                new Language {
                    LanguageName = "English"
                },
                new Language {
                    LanguageName = "Estonian"
                },
                new Language {
                    LanguageName = "Fiji"
                },
                new Language {
                    LanguageName = "Finnish"
                },
                new Language {
                    LanguageName = "French"
                },
                new Language {
                    LanguageName = "Georgian"
                },
                new Language {
                    LanguageName = "German"
                },
                new Language {
                    LanguageName = "Greek"
                },
                new Language {
                    LanguageName = "Gujarati"
                },
                new Language {
                    LanguageName = "Hebrew"
                },
                new Language {
                    LanguageName = "Hindi"
                },
                new Language {
                    LanguageName = "Hungarian"
                },
                new Language {
                    LanguageName = "Icelandic"
                },
                new Language {
                    LanguageName = "Indonesian"
                },
                new Language {
                    LanguageName = "Irish"
                },
                new Language {
                    LanguageName = "Italian"
                },
                new Language {
                    LanguageName = "Japanese"
                },
                new Language {
                    LanguageName = "Javanese"
                },
                new Language {
                    LanguageName = "Korean"
                },
                new Language {
                    LanguageName = "Latin"
                },
                new Language {
                    LanguageName = "Latvian"
                },
                new Language {
                    LanguageName = "Lithuanian"
                },
                new Language {
                    LanguageName = "Macedonian"
                },
                new Language {
                    LanguageName = "Malay"
                },
                new Language {
                    LanguageName = "Malayalam"
                },
                new Language {
                    LanguageName = "Maltese"
                },
                new Language {
                    LanguageName = "Maori"
                },
                new Language {
                    LanguageName = "Marathi"
                },
                new Language {
                    LanguageName = "Mongolian"
                },
                new Language {
                    LanguageName = "Nepali"
                },
                new Language {
                    LanguageName = "Norwegian"
                },
                new Language {
                    LanguageName = "Persian"
                },
                new Language {
                    LanguageName = "Polish"
                },
                new Language {
                    LanguageName = "Portuguese"
                },
                new Language {
                    LanguageName = "Punjabi"
                },
                new Language {
                    LanguageName = "Quechua"
                },
                new Language {
                    LanguageName = "Romanian"
                },
                new Language {
                    LanguageName = "Russian"
                },
                new Language {
                    LanguageName = "Samoan"
                },
                new Language {
                    LanguageName = "Serbian"
                },
                new Language {
                    LanguageName = "Slovak"
                },
                new Language {
                    LanguageName = "Slovenian"
                },
                new Language {
                    LanguageName = "Spanish"
                },
                new Language {
                    LanguageName = "Swahili"
                },
                new Language {
                    LanguageName = "Swedish "
                },
                new Language {
                    LanguageName = "Tamil"
                },
                new Language {
                    LanguageName = "Tatar"
                },
                new Language {
                    LanguageName = "Telugu"
                },
                new Language {
                    LanguageName = "Thai"
                },
                new Language {
                    LanguageName = "Tibetan"
                },
                new Language {
                    LanguageName = "Tonga"
                },
                new Language {
                    LanguageName = "Turkish"
                },
                new Language {
                    LanguageName = "Ukranian"
                },
                new Language {
                    LanguageName = "Urdu"
                },
                new Language {
                    LanguageName = "Uzbek"
                },
                new Language {
                    LanguageName = "Vietnamese"
                },
                new Language {
                    LanguageName = "Welsh"
                },
                new Language {
                    LanguageName = "Xhosa"
                }
            };
            foreach (Language l in languages)
            {
                context.Language.Add(l);
            }
            context.SaveChanges();

            // 4 Applicaton Users in each UserType
            var users = new ApplicationUser[]
            {
                new ApplicationUser
                {
                    Name           = "Author", Email = "*****@*****.**", Address = "Plac Grunwaldzki 23, Wroc³aw, Polska", ConferenceName = "Great Conference",
                    EmailConfirmed = true, UserName = "******"
                },
                new ApplicationUser
                {
                    Name           = "Author2", Email = "*****@*****.**", Address = "Plac Grunwaldzki 23, Wroc³aw, Polska", ConferenceName = "Great Conference",
                    EmailConfirmed = true, UserName = "******"
                },
                new ApplicationUser
                {
                    Name           = "Reviewer", Email = "*****@*****.**", Address = "Koœciuszki 28, Wroc³aw, Polska", ConferenceName = "Great Conference",
                    EmailConfirmed = true, UserName = "******"
                },
                new ApplicationUser
                {
                    Name           = "Reviewer2", Email = "*****@*****.**", Address = "Koœciuszki 28, Wroc³aw, Polska", ConferenceName = "Great Conference",
                    EmailConfirmed = true, UserName = "******"
                },
                new ApplicationUser
                {
                    Name = "ProgrammeCommitteeMember", Email = "*****@*****.**", Address = "Kochanowskiego 21, Bogatynia, Polska", ConferenceName = "Great Conference", EmailConfirmed = true, UserName = "******"
                }, new ApplicationUser
                {
                    Name           = "Organizer", Email = "*****@*****.**", Address = "D³uga 28, Gdañsk, Polska", ConferenceName = "Great Conference",
                    EmailConfirmed = true, UserName = "******"
                }
            };
            foreach (ApplicationUser u in users)
            {
                context.ApplicationUser.Add(u);
            }
            context.SaveChanges();

            // UserType creation
            // 1 ApplicationUser = 1 UserType

            // 1 organizers
            var organizers = new Organizer[]
            {
                new Organizer
                {
                    ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Organizer").Id,
                    EmployeePosition  = "Master Organizer"
                }
            };
            foreach (var organizer in organizers)
            {
                context.Organizer.Add(organizer);
            }
            context.SaveChanges();
            // 1 programmeCommitteeMembers
            var programmeCommitteeMembers = new ProgrammeCommitteeMember[]
            {
                new ProgrammeCommitteeMember
                {
                    ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "ProgrammeCommitteeMember").Id,
                    EmployeePosition  = "Slave Programme Committee Member"
                }
            };
            foreach (var programmeCommitteeMember in programmeCommitteeMembers)
            {
                context.ProgrammeCommitteeMember.Add(programmeCommitteeMember);
            }
            context.SaveChanges();
            // 1 author
            var authors = new Author[]
            {
                new Author
                {
                    ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Author").Id,
                    ScTitle           = "MSc",
                    OrgName           = "Wroc³aw University of Science and Technology"
                },
                new Author
                {
                    ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Author2").Id,
                    ScTitle           = "MSc",
                    OrgName           = "Wroc³aw University of Science and Technology"
                }
            };
            foreach (Author a in authors)
            {
                context.Author.Add(a);
            }
            context.SaveChanges();
            // 1 reviewer
            var reviewers = new Reviewer[]
            {
                new Reviewer
                {
                    ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Reviewer").Id,
                    ScTitle           = "Ph.D.",
                    OrgName           = "Wroc³aw University of Science and Technology",
                    Language1Id       = 47,
                    Language2Id       = 15
                },
                new Reviewer
                {
                    ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Reviewer2").Id,
                    ScTitle           = "Ph.D.",
                    OrgName           = "Wroc³aw University of Science and Technology",
                    Language1Id       = 47,
                    Language2Id       = 15
                }
            };
            foreach (Reviewer r in reviewers)
            {
                context.Reviewer.Add(r);
            }
            context.SaveChanges();

            var papers = new Paper[]
            {
                new Paper
                {
                    TitleENG   = "Test1",
                    TitleORG   = "Teœcik1",
                    Abstract   = "taki tam sobie test enuma",
                    Authors    = "Marek Granowicz",
                    LanguageId = 47,
                    OrgName    = "PWr",
                    Status     = Paper.ProcessStatus.Reviewed,
                    AuthorId   = context.Author.First().UserTypeId,
                    ReviewerId = context.Reviewer.First().UserTypeId
                },
                new Paper
                {
                    TitleENG       = "New Big Bang Theory",
                    TitleORG       = "Nowa teoria Wielkiego Wybuchu",
                    Authors        = "Wocjciech Pêciak, Robert Lewandowski",
                    Abstract       = "Skrót treœci - abstract",
                    OrgName        = "WAT",
                    SubmissionDate = DateTime.Now,
                    Status         = Paper.ProcessStatus.UnderReview,
                    LanguageId     = 15,
                    AuthorId       = context.Author.First().UserTypeId
                },
                new Paper
                {
                    TitleENG   = "Test1",
                    TitleORG   = "Teœcik1",
                    Abstract   = "taki tam sobie test enuma",
                    Authors    = "Marek Granowicz",
                    LanguageId = 47,
                    OrgName    = "PWr",
                    Status     = Paper.ProcessStatus.UnderReview,
                    AuthorId   = context.Author.First().UserTypeId,
                    ReviewerId = context.Reviewer.First().UserTypeId
                },
                new Paper
                {
                    TitleENG   = "Test2",
                    TitleORG   = "Teœcik2",
                    Abstract   = "taki tam sobie test enuma",
                    Authors    = "Marek Granowicz",
                    LanguageId = 47,
                    OrgName    = "PWr",
                    Status     = 0,
                    AuthorId   = context.Author.First().UserTypeId
                },
                new Paper
                {
                    TitleENG   = "Test3",
                    TitleORG   = "Teœcik3",
                    Abstract   = "taki tam sobie test enuma",
                    Authors    = "Marek Granowicz",
                    LanguageId = 47,
                    OrgName    = "PWr",
                    Status     = 0,
                    AuthorId   = context.Author.First().UserTypeId
                }
            };
            foreach (Paper p in papers)
            {
                context.Paper.Add(p);
            }
            context.SaveChanges();

            var keywords = new PaperKeyword[]
            {
                new PaperKeyword
                {
                    KeyWord = "physics",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId
                },
                new PaperKeyword
                {
                    KeyWord = "frog",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId
                },
                new PaperKeyword
                {
                    KeyWord = "wood",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId
                },
                new PaperKeyword
                {
                    KeyWord = "rock",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId
                },
                new PaperKeyword
                {
                    KeyWord = "music",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId
                },
                new PaperKeyword
                {
                    KeyWord = "lake",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId
                },
                new PaperKeyword
                {
                    KeyWord = "mutant",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId
                },
                new PaperKeyword
                {
                    KeyWord = "leaf",
                    PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId
                },
            };
            foreach (var keyword in keywords)
            {
                context.PaperKeyword.Add(keyword);
            }
            context.SaveChanges();
            // Make payment for each paper
            foreach (var paper in papers)
            {
                context.Payment.Add(new Payment
                {
                    IsDone  = true,
                    PaperId = paper.PaperId
                });
            }
            context.SaveChanges();

            var reviews = new Review[]
            {
                new Review
                {
                    Problems        = "What was the problem?",
                    WhyProblems     = "Why it was a problem?",
                    Solution        = "What is a proposed solution?",
                    Achievements    = "What is outcome?",
                    NotMentioned    = "Gaps?",
                    Grade           = "On scale 0 to 10.",
                    GeneralComments = "It was lovely day.",
                    Date            = DateTime.Now,
                    PaperId         = context.Paper.First(p => p.Status == Paper.ProcessStatus.Reviewed).PaperId
                }
            };
            foreach (var review in reviews)
            {
                context.Review.Add(review);
            }
            context.SaveChanges();

            #endregion
        }