Beispiel #1
0
        public async override void Run()
        {
            if (this.IsShuttingDown || this.Pause)
            {
                return;
            }

            var db = new SportsSystemDbContext();

            var participationService = new ParticipationService(db);

            var representativeUsers = await participationService.GetDeniedUsersNotification();



            //Prepare Postal classes to work outside of ASP.NET request
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines   = new ViewEngineCollection();

            engines.Add(new FileSystemRazorViewEngine(viewsPath));



            var emailService = new EmailService(engines);

            foreach (var competition in representativeUsers)
            {
                var email = new DeniedUsersNotifications
                {
                    ViewName        = "DeniedUsers",
                    From            = "*****@*****.**",
                    EndDate         = competition.EndDate,
                    CompetitionName = competition.CompetitionName,
                    Subject         = string.Format("رفع اشکالات مشخصات وارد شده {0}", competition.CompetitionName),
                    To                    = competition.Email,
                    FirstName             = competition.FirstName,
                    LastName              = competition.LastName,
                    University            = competition.University,
                    DeniedCompetitors     = competition.DeniedCompetitors,
                    DeniedTechnicalStaffs = competition.DeniedTechnicalStaffs
                };

                await emailService.SendAsync(email);
            }

            db.Dispose();
        }
        public async override void Run()
        {
            if (this.IsShuttingDown || this.Pause)
                return;

            var db = new SportsSystemDbContext();

            var participationService = new ParticipationService(db);

            var representativeUsers = await participationService.GetDeniedUsersNotification();



            //Prepare Postal classes to work outside of ASP.NET request
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));



            var emailService = new EmailService(engines);

            foreach (var competition in representativeUsers)
            {
                var email = new DeniedUsersNotifications
                {
                    ViewName = "DeniedUsers",
                    From = "*****@*****.**",
                    EndDate = competition.EndDate,
                    CompetitionName = competition.CompetitionName,
                    Subject = string.Format("رفع اشکالات مشخصات وارد شده {0}", competition.CompetitionName),
                    To = competition.Email,
                    FirstName = competition.FirstName,
                    LastName = competition.LastName,
                    University = competition.University,
                    DeniedCompetitors = competition.DeniedCompetitors,
                    DeniedTechnicalStaffs = competition.DeniedTechnicalStaffs
                };

                await emailService.SendAsync(email);
            }

            db.Dispose();
        }
Beispiel #3
0
        public async override void Run()
        {
            if (this.IsShuttingDown || this.Pause)
            {
                return;
            }


            using (var db = new SportsSystemDbContext())
            {
                //Prepare Postal classes to work outside of ASP.NET request
                var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));

                var engines = new ViewEngineCollection
                {
                    new FileSystemRazorViewEngine(viewsPath)
                };

                var emailService = new EmailService(engines);

                var competitionService = new CompetitionService(db);

                var readyCompetitions = await competitionService.GetReadyCompetitionsNotificationAsync();

                foreach (var readyCompetition in readyCompetitions)
                {
                    var email = new CompetitionNotificationEmail
                    {
                        ViewName        = "ReadyCompetition",
                        From            = "*****@*****.**",
                        StartDate       = readyCompetition.StartDate.Value,
                        EndDate         = readyCompetition.EndDate.Value,
                        CompetitionName = readyCompetition.CompetitionName,
                        Subject         = string.Format("فراخوان برای اعلام آمادگی در {0}", readyCompetition.CompetitionName),
                        SiteUrl         = IaunSportsSystemApp.GetSiteRootUrl()
                    };

                    foreach (var representativeUser in readyCompetition.RepresentativeUsers)
                    {
                        email.To         = representativeUser.Email;
                        email.FirstName  = representativeUser.FirstName;
                        email.LastName   = representativeUser.LastName;
                        email.University = representativeUser.University;
                        email.Password   = EncryptionHelper.Decrypt(representativeUser.Password, EncryptionHelper.Key);
                        await emailService.SendAsync(email);
                    }
                }


                var registerCompetitions = await competitionService.GetRegisterCompetitionsNotification();

                foreach (var registerCompetition in registerCompetitions)
                {
                    var email = new CompetitionNotificationEmail
                    {
                        ViewName        = "RegisterCompetition",
                        From            = "*****@*****.**",
                        StartDate       = registerCompetition.StartDate.Value,
                        EndDate         = registerCompetition.EndDate.Value,
                        CompetitionName = registerCompetition.CompetitionName,
                        Subject         = string.Format("فراخوان برای ثبت نام در {0}", registerCompetition.CompetitionName),
                        SiteUrl         = IaunSportsSystemApp.GetSiteRootUrl()
                    };

                    foreach (var representativeUser in registerCompetition.RepresentativeUsers)
                    {
                        email.To         = representativeUser.Email;
                        email.FirstName  = representativeUser.FirstName;
                        email.LastName   = representativeUser.LastName;
                        email.University = representativeUser.University;
                        email.Password   = EncryptionHelper.Decrypt(representativeUser.Password, EncryptionHelper.Key);
                        await emailService.SendAsync(email);
                    }
                }


                var printCardCompetitions = await competitionService.GetPrintCardCompetitionsNotification();

                foreach (var printCardCompetition in printCardCompetitions)
                {
                    var email = new CompetitionNotificationEmail
                    {
                        ViewName        = "PrintCardCompetition",
                        From            = "*****@*****.**",
                        StartDate       = printCardCompetition.StartDate.Value,
                        EndDate         = printCardCompetition.EndDate.Value,
                        CompetitionName = printCardCompetition.CompetitionName,
                        Subject         = string.Format("فراخوان برای چاپ کارت  {0}", printCardCompetition.CompetitionName),
                        SiteUrl         = IaunSportsSystemApp.GetSiteRootUrl()
                    };

                    foreach (var representativeUser in printCardCompetition.RepresentativeUsers)
                    {
                        email.To         = representativeUser.Email;
                        email.FirstName  = representativeUser.FirstName;
                        email.LastName   = representativeUser.LastName;
                        email.University = representativeUser.University;
                        email.Password   = EncryptionHelper.Decrypt(representativeUser.Password, EncryptionHelper.Key);
                        await emailService.SendAsync(email);
                    }
                }
            }
        }
Beispiel #4
0
        protected override void Seed(SportsSystemDbContext context)
        {
            context.Users.AddOrUpdate(
                u => u.Email,
                new User
            {
                Email     = "*****@*****.**",
                FirstName = "مدیر",
                LastName  = "فنی",
                Role      = Role.Admin,
                Password  = EncryptionHelper.Encrypt("123admin123", EncryptionHelper.Key)
            }
                );

            context.Universities.AddOrUpdate(u => u.Name,
                                             new University {
                Name = "واحد نجف آباد"
            },
                                             new University {
                Name = "واحد دولت آباد"
            },
                                             new University {
                Name = "استان اصفهان"
            },
                                             new University {
                Name = "استان تهران"
            }
                                             );

            context.Sports.AddOrUpdate(s => s.Name, new Sport
            {
                Name         = "کشتی",
                SportDetails = new List <SportDetail>
                {
                    new SportDetail {
                        Name = "60 کیلوگرم"
                    },
                    new SportDetail {
                        Name = "80 کیلوگرم"
                    }
                },
                SportCategories = new List <SportCategory>
                {
                    new SportCategory {
                        Name = "آزاد"
                    },
                    new SportCategory {
                        Name = "فرنگی"
                    }
                },
            });

            context.Sports.AddOrUpdate(s => s.Name, new Sport
            {
                Name = "فوتسال",
            });

            context.Sports.AddOrUpdate(s => s.Name, new Sport
            {
                Name            = "دوچرخه سواری",
                SportCategories = new List <SportCategory>
                {
                    new SportCategory {
                        Name = "1000 متر سرعت"
                    },
                    new SportCategory {
                        Name = "دور حذفی"
                    }
                },
            });

            context.Dorms.AddOrUpdate(d => d.Name,
                                      new Dorm {
                Name = "شهید بهشتی"
            },
                                      new Dorm {
                Name = "شهید مطهری"
            }
                                      );

            context.StudyFields.AddOrUpdate(s => s.Name,
                                            new StudyField {
                Name = "کامپیوتر"
            },
                                            new StudyField {
                Name = "برق"
            },
                                            new StudyField {
                Name = "عمران"
            }
                                            );

            context.StudyFieldDegrees.AddOrUpdate(sf => sf.Name,
                                                  new StudyFieldDegree {
                Name = "کارشناسی"
            },
                                                  new StudyFieldDegree {
                Name = "کارشناسی ارشد"
            },
                                                  new StudyFieldDegree {
                Name = "کاردانی"
            }
                                                  );

            context.TechnicalStaffRoles.AddOrUpdate(tr => tr.Name,
                                                    new TechnicalStaffRole {
                Name = "سرمربی"
            },
                                                    new TechnicalStaffRole {
                Name = "سرپرست"
            },
                                                    new TechnicalStaffRole {
                Name = "راننده", IsCommon = true
            }
                                                    );

            context.News.AddOrUpdate(n => n.Title,
                                     new News
            {
                Title       = "سامانه مسابقات افتتاح شد",
                CreatedDate = DateTime.Now.AddDays(-1),
                Body        = "سامانه ی خوبیه!"
            },
                                     new News
            {
                Title       = "قهرمان مسابقات فوتسال مشخص شد",
                CreatedDate = DateTime.Now,
                Body        = "تیم فوتسال!"
            });

            context.SlideShowItems.AddOrUpdate(s => s.Image,
                                               new SlideShowItem
            {
                Title = "دانشگاه آزاد اسلامی واحد نجف آباد",
                Image = "1.jpg",
                Order = 10,
            },
                                               new SlideShowItem
            {
                Image = "2.jpg",
                Order = 9
            });


            context.SaveChanges();


            context.RepresentativeUsers.AddOrUpdate(ru => ru.Email,
                                                    new RepresentativeUser
            {
                Email        = "*****@*****.**",
                FirstName    = "مهدی",
                LastName     = "سعیدی فر",
                MobileNumber = "09131234567",
                Password     = EncryptionHelper.Encrypt("123user123", EncryptionHelper.Key),
                NationalCode = "1234567890",
                UniversityId = context.Universities.First(u => u.Name == "واحد نجف آباد").Id,
                FatherName   = "علی"
            },
                                                    new RepresentativeUser
            {
                Email        = "*****@*****.**",
                FirstName    = "علی",
                LastName     = "احمدی",
                MobileNumber = "09131234567",
                Password     = EncryptionHelper.Encrypt("123user123", EncryptionHelper.Key),
                NationalCode = "1234567790",
                UniversityId = context.Universities.First(u => u.Name == "استان تهران").Id,
                FatherName   = "حسین"
            }
                                                    );

            context.SaveChanges();

            context.Competitions.AddOrUpdate(c => c.Name, new Competition
            {
                Name = "مسابقات فوتسال سراسری دانشگاه ها",
                IsPrintCardActive  = true,
                IsReadyActive      = true,
                IsRegisterActive   = true,
                ReadyStartDate     = new DateTime(2014, 1, 1),
                ReadyEndDate       = new DateTime(2017, 1, 1),
                RegisterStartDate  = new DateTime(2014, 1, 1),
                RegisterEndDate    = new DateTime(2017, 1, 1),
                PrintCardStartDate = new DateTime(2014, 1, 1),
                PrintCardEndDate   = new DateTime(2017, 1, 1),
                LogoImage          = "31883536-7021-4fd7-b4e0-3e35d1bee581.jpg",
                Rule = "لطفا قوانین مسابقات را رعایت کنید:",
                MaxCommonTechnicalStaffs = 5,
                Announcements            = new List <Announcement>
                {
                    new Announcement
                    {
                        CreatedDate = DateTime.Now.AddDays(-1),
                        WebsiteText = "متن اطلاعیه شماره 1",
                        Title       = "اطلاعیه شماره 1",
                    },
                    new Announcement
                    {
                        CreatedDate = DateTime.Now,
                        WebsiteText = "متن اطلاعیه شماره 2",
                        Title       = "اطلاعیه شماره 2",
                    }
                },
                PresentedSports = new List <CompetitionSport>
                {
                    new CompetitionSport
                    {
                        Gender            = Gender.Male,
                        Sport             = context.Sports.FirstOrDefault(s => s.Name == "فوتسال"),
                        Rule              = "قوانین فدراسیون را رعایت کنید",
                        MaxTechnicalStaff = 3,
                        MaxCompetitors    = 22,
                        HasRule           = true,
                        IsIndividual      = false,
                    }
                },
            });

            context.SaveChanges();

            context.CompetitionRepresentativeUsers.AddOrUpdate(c => new { c.RepresentativeUserId, c.CompetitionId },
                                                               new CompetitionRepresentativeUser
            {
                CompetitionId        = context.Competitions.First(c => c.Name == "مسابقات فوتسال سراسری دانشگاه ها").Id,
                RepresentativeUserId = context.RepresentativeUsers.First(r => r.Email == "*****@*****.**").Id
            });

            context.SaveChanges();



            var participation = new Participation
            {
                RepresentativeUserId = context.RepresentativeUsers.First(r => r.Email == "*****@*****.**").Id,
                IsApproved           = true,
                PresentedSportId     = context.PresentedSports.First(ps => ps.Sport.Name == "فوتسال").Id,
                TeamColors           = new List <TeamColor>
                {
                    new TeamColor {
                        Name = "آبی"
                    },
                    new TeamColor {
                        Name = "سفید"
                    }
                },
                Competitors = new List <Competitor>
                {
                    new Competitor
                    {
                        FirstName = "سینا",
                        LastName  = "مسعودی",
                        UserImage = "1.jpg",
                        AzmoonConfirmationImage = "afc642f4-8acf-48a7-b739-c3452b005770.JPG",
                        InsuranceImage          = "9554825a-1d3f-4af2-b068-4e3ca2bffbb6.jpg",
                        StudentCertificateImage = "1dee1ced-0834-4fd6-9bd6-13e01ee25661.jpg",
                        BirthDate          = new DateTime(1990, 2, 2),
                        IsApproved         = true,
                        Dorm               = context.Dorms.FirstOrDefault(d => d.Name == "شهید بهشتی"),
                        DormNumber         = "402",
                        FatherName         = "علی",
                        StudyFieldId       = context.StudyFields.First(s => s.Name == "برق").Id,
                        StudentNumber      = "123434545",
                        StudyFieldDegreeId = context.StudyFieldDegrees.First(s => s.Name == "کارشناسی").Id,
                        InsuranceEndDate   = new DateTime(2016, 2, 2),
                        InsuranceNumber    = "213325445645",
                        NationalCode       = "1234567890"
                    },
                    new Competitor
                    {
                        FirstName = "نوید",
                        LastName  = "عباسی",
                        UserImage = "2.jpg",
                        AzmoonConfirmationImage = "afc642f4-8acf-48a7-b739-c3452b005770.JPG",
                        InsuranceImage          = "9554825a-1d3f-4af2-b068-4e3ca2bffbb6.jpg",
                        StudentCertificateImage = "1dee1ced-0834-4fd6-9bd6-13e01ee25661.jpg",
                        BirthDate          = new DateTime(1990, 2, 2),
                        IsApproved         = true,
                        Dorm               = context.Dorms.FirstOrDefault(d => d.Name == "شهید بهشتی"),
                        DormNumber         = "402",
                        FatherName         = "نقی",
                        StudyFieldId       = context.StudyFields.First(s => s.Name == "کامپیوتر").Id,
                        StudentNumber      = "123434545",
                        StudyFieldDegreeId = context.StudyFieldDegrees.First(s => s.Name == "کارشناسی").Id,
                        InsuranceEndDate   = new DateTime(2016, 2, 2),
                        InsuranceNumber    = "213325445645",
                        NationalCode       = "1234567890",
                    }
                },
            };


            context.Participates.AddOrUpdate(p => new { p.PresentedSportId, p.RepresentativeUserId }, participation);

            context.SaveChanges();

            context.TechnicalStaves.AddOrUpdate(t => t.NationalCode,
                                                new TechnicalStaff
            {
                FirstName    = "ناصر",
                LastName     = "علیان",
                NationalCode = "1232567890",
                BirthDate    = new DateTime(1980, 2, 1),
                IsApproved   = true,
                FatherName   = "اصغر",
                DormNumber   = "222",
                DormId       = context.Dorms.First(d => d.Name == "شهید بهشتی").Id,
                Image        = "e56d21f7-c7fc-4793-8326-58c6597b5f8d.jpg"
            },
                                                new TechnicalStaff
            {
                FirstName    = "محمد",
                LastName     = "حسینی",
                NationalCode = "1134567890",
                BirthDate    = new DateTime(1980, 6, 1),
                IsApproved   = true,
                FatherName   = "علی",
                DormNumber   = "222",
                DormId       = context.Dorms.First(d => d.Name == "شهید بهشتی").Id,
                Image        = "4ee4e2c6-0f32-4618-94c9-9516362564e9.jpg"
            },
                                                new TechnicalStaff()
            {
                FirstName    = "بابک",
                LastName     = "حاج بابایی",
                NationalCode = "1234656901",
                BirthDate    = new DateTime(1980, 6, 1),
                IsApproved   = false,
                FatherName   = "اکبر",
                DormNumber   = "222",
                DormId       = context.Dorms.First(d => d.Name == "شهید بهشتی").Id,
                Image        = "bb09929c-811e-41f7-9c78-6ca3b5586319.jpg",
                Error        = "کد ملی اشتباه است"
            }
                                                );

            context.SaveChanges();

            context.ParticipationTechnicalStaves.AddOrUpdate(pts => new { pts.ParticipationId, pts.TechnicalStaffId },
                                                             new ParticipationTechnicalStaff
            {
                ParticipationId      = context.Participates.First(p => p.PresentedSportId == participation.PresentedSportId && p.RepresentativeUserId == participation.RepresentativeUserId).Id,
                TechnicalStaffRoleId = context.TechnicalStaffRoles.First(t => t.Name == "سرمربی").Id,
                TechnicalStaffId     = context.TechnicalStaves.First(t => t.NationalCode == "1232567890").Id
            },
                                                             new ParticipationTechnicalStaff
            {
                ParticipationId      = context.Participates.First(p => p.PresentedSportId == participation.PresentedSportId && p.RepresentativeUserId == participation.RepresentativeUserId).Id,
                TechnicalStaffRoleId = context.TechnicalStaffRoles.First(t => t.Name == "سرپرست").Id,
                TechnicalStaffId     = context.TechnicalStaves.First(t => t.NationalCode == "1134567890").Id
            }
                                                             );

            context.SaveChanges();


            context.CompetitionCommonTechnicalStaffs.AddOrUpdate(c => new { c.CompetitonId, c.RepresentativeUserId, c.TechnicalStaffId },
                                                                 new CompetitionCommonTechnicalStaff
            {
                RepresentativeUserId = context.RepresentativeUsers.First(r => r.Email == "*****@*****.**").Id,
                CompetitonId         = context.Competitions.First(c => c.Name == "مسابقات فوتسال سراسری دانشگاه ها").Id,
                TechnicalStaffRoleId = context.TechnicalStaffRoles.First(t => t.Name == "راننده").Id,
                TechnicalStaffId     = context.TechnicalStaves.First(t => t.NationalCode == "1234656901").Id
            });
        }
        public async override void Run()
        {
            if (this.IsShuttingDown || this.Pause)
                return;


            using (var db = new SportsSystemDbContext())
            {

                //Prepare Postal classes to work outside of ASP.NET request
                var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));

                var engines = new ViewEngineCollection
                {
                    new FileSystemRazorViewEngine(viewsPath)
                };

                var emailService = new EmailService(engines);

                var competitionService = new CompetitionService(db);

                var readyCompetitions = await competitionService.GetReadyCompetitionsNotificationAsync();

                foreach (var readyCompetition in readyCompetitions)
                {
                    var email = new CompetitionNotificationEmail
                    {
                        ViewName = "ReadyCompetition",
                        From = "*****@*****.**",
                        StartDate = readyCompetition.StartDate.Value,
                        EndDate = readyCompetition.EndDate.Value,
                        CompetitionName = readyCompetition.CompetitionName,
                        Subject = string.Format("فراخوان برای اعلام آمادگی در {0}", readyCompetition.CompetitionName),
                        SiteUrl = IaunSportsSystemApp.GetSiteRootUrl()
                    };

                    foreach (var representativeUser in readyCompetition.RepresentativeUsers)
                    {
                        email.To = representativeUser.Email;
                        email.FirstName = representativeUser.FirstName;
                        email.LastName = representativeUser.LastName;
                        email.University = representativeUser.University;
                        email.Password = EncryptionHelper.Decrypt(representativeUser.Password, EncryptionHelper.Key);
                        await emailService.SendAsync(email);
                    }

                }


                var registerCompetitions = await competitionService.GetRegisterCompetitionsNotification();

                foreach (var registerCompetition in registerCompetitions)
                {
                    var email = new CompetitionNotificationEmail
                    {
                        ViewName = "RegisterCompetition",
                        From = "*****@*****.**",
                        StartDate = registerCompetition.StartDate.Value,
                        EndDate = registerCompetition.EndDate.Value,
                        CompetitionName = registerCompetition.CompetitionName,
                        Subject = string.Format("فراخوان برای ثبت نام در {0}", registerCompetition.CompetitionName),
                        SiteUrl = IaunSportsSystemApp.GetSiteRootUrl()
                    };

                    foreach (var representativeUser in registerCompetition.RepresentativeUsers)
                    {
                        email.To = representativeUser.Email;
                        email.FirstName = representativeUser.FirstName;
                        email.LastName = representativeUser.LastName;
                        email.University = representativeUser.University;
                        email.Password = EncryptionHelper.Decrypt(representativeUser.Password, EncryptionHelper.Key);
                        await emailService.SendAsync(email);
                    }

                }


                var printCardCompetitions = await competitionService.GetPrintCardCompetitionsNotification();

                foreach (var printCardCompetition in printCardCompetitions)
                {
                    var email = new CompetitionNotificationEmail
                    {
                        ViewName = "PrintCardCompetition",
                        From = "*****@*****.**",
                        StartDate = printCardCompetition.StartDate.Value,
                        EndDate = printCardCompetition.EndDate.Value,
                        CompetitionName = printCardCompetition.CompetitionName,
                        Subject = string.Format("فراخوان برای چاپ کارت  {0}", printCardCompetition.CompetitionName),
                        SiteUrl = IaunSportsSystemApp.GetSiteRootUrl()
                    };

                    foreach (var representativeUser in printCardCompetition.RepresentativeUsers)
                    {
                        email.To = representativeUser.Email;
                        email.FirstName = representativeUser.FirstName;
                        email.LastName = representativeUser.LastName;
                        email.University = representativeUser.University;
                        email.Password = EncryptionHelper.Decrypt(representativeUser.Password, EncryptionHelper.Key);
                        await emailService.SendAsync(email);
                    }

                }

            }

        }