示例#1
0
        static void Main(string[] args)
        {
            GreetingManager gm = new GreetingManager( );
            gm.GreetPeople("mk", EnglishGreeting);
            gm.GreetPeople("lj", ChineseGreeting);
            Console.WriteLine("-----------------------------------------");
            GreetingDelegate delegate1;
            delegate1 = EnglishGreeting;
            delegate1 += ChineseGreeting;
            gm.GreetPeople("Jimmy Zhang", delegate1);
            Console.WriteLine("-----------------------------------------");
            //gm.delegate1  = ChineseGreeting;
            //gm.delegate1 += EnglishGreeting;
            //gm.delegate1 = new GreetingDelegate(EnglishGreeting);
            gm.delegate1 = ChineseGreeting;
            gm.GreetPeople("parkey", gm.delegate1);
            Console.WriteLine("-----------------------------------------");
            GreetingManager greeting = new GreetingManager( );
            greeting.MakeGreet += ChineseGreeting;
            greeting.MakeGreet += EnglishGreeting;
            greeting.GreetPeople("dy");

            Console.WriteLine("-----------------------------------------");
            //:事件应该由事件的发布者触发,而不应该由事件的客户端(客户程序)来触发
            Publisher pub = new Publisher( );
            Subcriber sub = new Subcriber( );
            pub.NumberChanged += new NumberChangedEventHandler(sub.OnNumberChanged);
            pub.DoSomething( );
            //pub.NumberChanged(100);
            
            Console.ReadLine( );


        }
示例#2
0
        public async Task <ActionResult> Create(Subcriber subcriber)
        {
            if (ModelState.IsValid)
            {
                var egreetingUser = new EgreetingUser
                {
                    CreatedDate = DateTime.Now,
                    Avatar      = System.IO.File.ReadAllBytes($"{Startup.StaticHostEnvironment.WebRootPath}/Admin/dist/img/avatar.png"),
                    Email       = subcriber.Email,
                };
                var applicationUser = new ApplicationUser {
                    Email = egreetingUser.Email, UserName = egreetingUser.Email, EgreetingUser = egreetingUser
                };
                var result = await _userManager.CreateAsync(applicationUser, "delete123456Aa");

                await _userManager.AddToRoleAsync(applicationUser, "Subcriber");

                if (result.Succeeded)
                {
                    using (var context = new DesignTimeDbContextFactory().CreateDbContext(null))
                    {
                        var eUser = context.Set <EgreetingUser>().Where(x => x.Email.Equals(egreetingUser.Email)).FirstOrDefault();
                        eUser.EgreetingUserRoles = (ICollection <EgreetingUserRole>)context.Set <EgreetingRole>().Where(x => x.EgreetingRoleName.Equals("Subcriber")).Select(x => x.EgreetingUserRoles).ToList();
                        subcriber.EgreetingUser  = eUser;
                        context.Set <Subcriber>().Attach(subcriber);
                        context.Entry(subcriber).State = EntityState.Modified;
                        context.SaveChanges();
                    }
                    return(RedirectToAction("Index"));
                }
                AddErrors(result);
            }
            return(View(ViewNamesConstant.AdminSubcribersCreate, subcriber));
        }
 public async Task <IHttpActionResult> Put([FromODataUri] int key, Subcriber update)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     if (key != update.SubcriberID)
     {
         return(BadRequest());
     }
     db.Entry(update).State = EntityState.Modified;
     try
     {
         await db.SaveChangesAsync();
     }
     catch (DbUpdateConcurrencyException)
     {
         if (!SubcriberExists(key))
         {
             return(NotFound());
         }
         else
         {
             throw;
         }
     }
     return(Updated(update));
 }
示例#4
0
        public IHttpActionResult PutSubcriber(int id, Subcriber subcriber)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != subcriber.SubcriberID)
            {
                return(BadRequest());
            }

            db.Entry(subcriber).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SubcriberExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <bool> UpdateSubcriber(Subcriber subcriberUpdate)
        {
            try
            {
                var subcriber = await _dbContext.Subcribers.FirstOrDefaultAsync(x => x.Email == subcriberUpdate.Email && x.SubcriberId != subcriberUpdate.SubcriberId);

                if (subcriber != null)
                {
                    return(false);
                }
                var subcriberInDB = await _dbContext.Subcribers.FirstOrDefaultAsync(x => x.SubcriberId == subcriberUpdate.SubcriberId);

                if (subcriberInDB == null)
                {
                    return(false);
                }
                _dbContext.Subcribers.Update(subcriberUpdate);
                await _dbContext.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#6
0
 public IDisposable Subcribe <T>(Action <T> callback)
 {
     lock (_lock)
     {
         var subcriber = new Subcriber <T>(callback, Unsubscribe);
         _subscribers.Add(subcriber);
         return(subcriber);
     }
 }
示例#7
0
        public IHttpActionResult GetSubcriber(int id)
        {
            Subcriber subcriber = db.Subcribers.Find(id);

            if (subcriber == null)
            {
                return(NotFound());
            }

            return(Ok(subcriber));
        }
        public async Task <IHttpActionResult> Post(Subcriber Subcriber)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            db.Subcribers.Add(Subcriber);
            await db.SaveChangesAsync();

            return(Created(Subcriber));
        }
示例#9
0
        public ActionResult Delete(int ItemID)
        {
            Subcriber subcriber = SubcriberBusiness.Find(ItemID);

            subcriber.EgreetingUser.ModifiedDate = DateTime.Now;
            subcriber.EgreetingUser.Draft        = true;
            subcriber.ModifiedDate = DateTime.Now;
            subcriber.Draft        = true;
            SubcriberBusiness.Update(subcriber);
            SubcriberBusiness.Save();
            return(RedirectToAction("Index"));
        }
示例#10
0
        public IHttpActionResult PostSubcriber(Subcriber subcriber)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Subcribers.Add(subcriber);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = subcriber.SubcriberID }, subcriber));
        }
示例#11
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(View(ViewNamesConstant.FrontendHomeError));
            }
            Subcriber subcriber = SubcriberBusiness.Find(id);

            if (subcriber == null)
            {
                return(View(ViewNamesConstant.FrontendHomeError));
            }
            return(View(ViewNamesConstant.AdminSubcribersDetails, subcriber));
        }
示例#12
0
        public IHttpActionResult DeleteSubcriber(int id)
        {
            Subcriber subcriber = db.Subcribers.Find(id);

            if (subcriber == null)
            {
                return(NotFound());
            }

            db.Subcribers.Remove(subcriber);
            db.SaveChanges();

            return(Ok(subcriber));
        }
        // GET: Subcribers/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Subcriber subcriber = SubcriberBusiness.Find(id);

            if (subcriber == null)
            {
                return(HttpNotFound());
            }
            return(View(ViewNamesConstant.AdminSubcribersDetails, subcriber));
        }
示例#14
0
        public ActionResult Index(string email)
        {
            var sub = new Subcriber();

            if (sub.Email == email)
            {
                ViewBag.error = "this email already exist";
            }
            else
            {
                sub.Email = email;
                db.Subcribers.Add(sub);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View());
        }
        public async Task <bool> CreateSubcriber(Subcriber subcriberCreate)
        {
            try
            {
                var subcriber = await _dbContext.Subcribers.FirstOrDefaultAsync(x => x.Email == subcriberCreate.Email);

                if (subcriber != null)
                {
                    return(false);
                }
                _dbContext.Subcribers.Add(subcriberCreate);
                await _dbContext.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <ActionResult> Create([Bind(Include = "Email")] Subcriber subcriber)
        {
            if (ModelState.IsValid)
            {
                var egreetingUser = new EgreetingUser
                {
                    CreatedDate = DateTime.Now,
                    Avatar      = System.IO.File.ReadAllBytes(Server.MapPath("~/Content/Admin/dist/img/avatar.png")),
                    Email       = subcriber.Email,
                };
                var applicationUser = new ApplicationUser {
                    Email = egreetingUser.Email, UserName = egreetingUser.Email, EgreetingUser = egreetingUser
                };
                var result = await UserManager.CreateAsync(applicationUser, "delete123456Aa");

                using (var context = new EgreetingContext())
                {
                    var roleStore   = new RoleStore <IdentityRole>(context);
                    var roleManager = new RoleManager <IdentityRole>(roleStore);
                    var userStore   = new UserStore <ApplicationUser>(context);
                    var userManager = new UserManager <ApplicationUser>(userStore);
                    userManager.AddToRole(applicationUser.Id, "Subcriber");
                }
                if (result.Succeeded)
                {
                    using (var context = new EgreetingContext())
                    {
                        var eUser = context.Set <EgreetingUser>().Where(x => x.Email.Equals(egreetingUser.Email)).FirstOrDefault();
                        eUser.EgreetingRoles    = context.Set <EgreetingRole>().Where(x => x.EgreetingRoleName.Equals("Subcriber")).ToList();
                        subcriber.EgreetingUser = eUser;
                        context.Set <Subcriber>().Attach(subcriber);
                        context.Entry(subcriber).State = EntityState.Modified;
                        context.SaveChanges();
                    }
                    return(RedirectToAction("Index"));
                }
                AddErrors(result);
            }
            return(View(ViewNamesConstant.AdminSubcribersCreate, subcriber));
        }
示例#17
0
        // GET: DummyData
        public ActionResult Index()
        {
            var faker = new Faker("en");

            using (var context = new EgreetingContext())
            {
                //20 category;
                var categories = new List <Category>();
                categories.Add(new Category {
                    CategoryID = 1, CategoryName = "Birthday", CategorySlug = "birthday"
                });
                categories.Add(new Category {
                    CategoryID = 2, CategoryName = "Wedding", CategorySlug = "wedding"
                });
                categories.Add(new Category {
                    CategoryID = 3, CategoryName = "New year", CategorySlug = "new-year"
                });
                categories.Add(new Category {
                    CategoryID = 4, CategoryName = "Festivals", CategorySlug = "festivals"
                });

                for (int i = 5; i < 20; i++)
                {
                    categories.Add(new Category
                    {
                        CategoryID   = i,
                        CategoryName = "Category " + i,
                        CategorySlug = "Category-" + i,
                        CreatedDate  = faker.Date.Past(),
                    });
                }
                context.Set <Category>().AddRange(categories);
                context.SaveChanges();
            }

            //3 role
            using (var context = new EgreetingContext())
            {
                var store   = new RoleStore <ApplicationRole>(context);
                var manager = new RoleManager <ApplicationRole>(store);
                var role    = new ApplicationRole
                {
                    Name          = "Admin",
                    EgreetingRole = new EgreetingRole
                    {
                        EgreetingRoleID   = 1,
                        EgreetingRoleName = "Admin",
                        CreatedDate       = faker.Date.Past(),
                    }
                };
                manager.Create(role);
                role = new ApplicationRole
                {
                    Name          = "User",
                    EgreetingRole = new EgreetingRole
                    {
                        EgreetingRoleID   = 2,
                        EgreetingRoleName = "User",
                        CreatedDate       = faker.Date.Past(),
                    }
                };
                manager.Create(role);
                role = new ApplicationRole
                {
                    Name          = "Subcriber",
                    EgreetingRole = new EgreetingRole
                    {
                        EgreetingRoleID   = 3,
                        EgreetingRoleName = "Subcriber",
                        CreatedDate       = faker.Date.Past(),
                    }
                };
                manager.Create(role);
            }

            //20 user
            using (var context = new EgreetingContext())
            {
                var image   = System.IO.File.ReadAllBytes(Server.MapPath("~/Content/Admin/dist/img/avatar.png"));
                var store   = new UserStore <ApplicationUser>(context);
                var manager = new UserManager <ApplicationUser>(store);

                var user = new ApplicationUser
                {
                    UserName      = "******",
                    Email         = "*****@*****.**",
                    EgreetingUser = new EgreetingUser
                    {
                        EgreetingUserID   = 1,
                        Email             = "*****@*****.**",
                        FirstName         = "Tien Thinh",
                        LastName          = "Nguyen",
                        Avatar            = image,
                        EgreetingUserSlug = generateSlug(),
                        BirthDay          = DateTime.Now,
                        PaymentDueDate    = DateTime.Now,
                        CreditCardNumber  = "123456789012",
                        CreditCardCVG     = "123",
                        CreatedDate       = faker.Date.Past(),
                    }
                };
                manager.Create(user, "123456aA@");
                manager.AddToRole(user.Id, "Admin");

                user = new ApplicationUser
                {
                    UserName      = "******",
                    Email         = "*****@*****.**",
                    EgreetingUser = new EgreetingUser
                    {
                        EgreetingUserID   = 2,
                        Email             = "*****@*****.**",
                        FirstName         = "Tien Thinh",
                        LastName          = "Nguyen",
                        Avatar            = image,
                        EgreetingUserSlug = generateSlug(),
                        BirthDay          = DateTime.Now,
                        PaymentDueDate    = DateTime.Now,
                        CreditCardNumber  = "123456789012",
                        CreditCardCVG     = "123",
                        CreatedDate       = faker.Date.Past(),
                    }
                };
                manager.Create(user, "123456aA@");
                manager.AddToRole(user.Id, "Admin");

                user = new ApplicationUser
                {
                    UserName      = "******",
                    Email         = "*****@*****.**",
                    EgreetingUser = new EgreetingUser
                    {
                        EgreetingUserID   = 3,
                        Email             = "*****@*****.**",
                        FirstName         = "Tien Thinh",
                        LastName          = "Nguyen",
                        Avatar            = image,
                        EgreetingUserSlug = generateSlug(),
                        BirthDay          = DateTime.Now,
                        PaymentDueDate    = DateTime.Now,
                        CreditCardNumber  = "123456789012",
                        CreditCardCVG     = "123",
                        CreatedDate       = faker.Date.Past(),
                    }
                };
                manager.Create(user, "123456aA@");
                manager.AddToRole(user.Id, "User");

                user = new ApplicationUser
                {
                    UserName      = "******",
                    Email         = "*****@*****.**",
                    EgreetingUser = new EgreetingUser
                    {
                        EgreetingUserID   = 4,
                        Email             = "*****@*****.**",
                        FirstName         = "Tien Thinh",
                        LastName          = "Nguyen",
                        Avatar            = image,
                        EgreetingUserSlug = generateSlug(),
                        BirthDay          = DateTime.Now,
                        PaymentDueDate    = DateTime.Now,
                        CreditCardNumber  = "123456789012",
                        CreditCardCVG     = "123",
                        CreatedDate       = faker.Date.Past(),
                    }
                };
                manager.Create(user, "123456aA@");
                manager.AddToRole(user.Id, "Subcriber");

                for (int i = 5; i <= 20; i++)
                {
                    user = new ApplicationUser
                    {
                        UserName      = "******" + i + "@gmail.com",
                        Email         = "subcriber" + i + "@gmail.com",
                        EgreetingUser = new EgreetingUser
                        {
                            EgreetingUserID   = 4,
                            Email             = "subcriber" + i + "@gmail.com",
                            FirstName         = "Tien Thinh " + i,
                            LastName          = "Nguyen",
                            Avatar            = image,
                            EgreetingUserSlug = generateSlug(),
                            BirthDay          = DateTime.Now,
                            PaymentDueDate    = DateTime.Now,
                            CreditCardNumber  = "123456789012",
                            CreditCardCVG     = "123",
                            CreatedDate       = faker.Date.Past(),
                        }
                    };
                    manager.Create(user, "123456aA@");
                    manager.AddToRole(user.Id, "Subcriber");
                }
            }


            // 100 Ecard
            using (var context = new EgreetingContext())
            {
                var ecards = new List <Ecard>();
                for (int i = 1; i <= 10; i++)
                {
                    var categoriesID = new List <int> {
                        faker.Random.Number(1, 20), faker.Random.Number(1, 20)
                    };
                    var ecard = new Ecard {
                        EcardID       = i,
                        EcardName     = faker.Commerce.ProductName(),
                        EcardSlug     = faker.Lorem.Slug() + i,
                        EcardType     = 4,
                        EcardUrl      = "Ecard_" + faker.Random.Number(1, 10) + ".mp4",
                        ThumbnailUrl  = "Thumbnail_" + faker.Random.Number(24, 39) + ".png",
                        Price         = faker.Random.Double() * 100,
                        Categories    = context.Set <Category>().Where(x => categoriesID.Contains(x.CategoryID)).ToList(),
                        EgreetingUser = context.Set <EgreetingUser>().Where(x => x.EgreetingUserID == 1).FirstOrDefault(),
                        CreatedDate   = faker.Date.Past(),
                    };
                    ecards.Add(ecard);
                }
                for (int i = 11; i <= 30; i++)
                {
                    var categoriesID = new List <int> {
                        faker.Random.Number(1, 20), faker.Random.Number(1, 20)
                    };
                    var ecard = new Ecard
                    {
                        EcardID       = i,
                        EcardName     = faker.Commerce.ProductName(),
                        EcardSlug     = faker.Lorem.Slug() + i,
                        EcardType     = 2,
                        EcardUrl      = "Ecard_" + faker.Random.Number(11, 23) + ".gif",
                        ThumbnailUrl  = "Thumbnail_" + faker.Random.Number(24, 39) + ".png",
                        Price         = faker.Random.Double() * 100,
                        Categories    = context.Set <Category>().Where(x => categoriesID.Contains(x.CategoryID)).ToList(),
                        EgreetingUser = context.Set <EgreetingUser>().Where(x => x.EgreetingUserID == 1).FirstOrDefault(),
                        CreatedDate   = faker.Date.Past(),
                    };
                    ecards.Add(ecard);
                }
                for (int i = 31; i <= 100; i++)
                {
                    var categoriesID = new List <int> {
                        faker.Random.Number(1, 20), faker.Random.Number(1, 20)
                    };
                    var ecard = new Ecard
                    {
                        EcardID       = i,
                        EcardName     = faker.Commerce.ProductName(),
                        EcardSlug     = faker.Lorem.Slug() + i,
                        EcardType     = 1,
                        EcardUrl      = "Ecard_" + faker.Random.Number(24, 39) + ".png",
                        ThumbnailUrl  = "Thumbnail_" + faker.Random.Number(24, 39) + ".png",
                        Price         = faker.Random.Double() * 100,
                        Categories    = context.Set <Category>().Where(x => categoriesID.Contains(x.CategoryID)).ToList(),
                        EgreetingUser = context.Set <EgreetingUser>().Where(x => x.EgreetingUserID == 1).FirstOrDefault(),
                        CreatedDate   = faker.Date.Past(),
                    };
                    ecards.Add(ecard);
                }
                context.Set <Ecard>().AddRange(ecards);
                context.SaveChanges();
            }

            // 500 Feedback
            using (var context = new EgreetingContext())
            {
                var feedbacks = new List <Feedback>();
                for (int i = 1; i <= 500; i++)
                {
                    var ecardID  = faker.Random.Number(1, 100);
                    var userID   = faker.Random.Number(1, 4);
                    var feedback = new Feedback
                    {
                        FeedbackID    = i,
                        Subject       = faker.Lorem.Sentence(10),
                        Message       = faker.Lorem.Sentences(4),
                        Ecard         = context.Set <Ecard>().Where(x => x.EcardID == ecardID).FirstOrDefault(),
                        EgreetingUser = context.Set <EgreetingUser>().Where(x => x.EgreetingUserID == userID).FirstOrDefault(),
                        CreatedDate   = faker.Date.Past(),
                    };
                    feedbacks.Add(feedback);
                }
                context.Set <Feedback>().AddRange(feedbacks);
                context.SaveChanges();
            }

            // 16 subcrieber
            using (var context = new EgreetingContext())
            {
                var subcribers = new List <Subcriber>();
                for (int i = 5; i <= 20; i++)
                {
                    var subcriber = new Subcriber
                    {
                        SubcriberID   = i,
                        Email         = "subcriber" + i + "@gmail.com",
                        EgreetingUser = context.Set <EgreetingUser>().Find(i),
                        CreatedDate   = faker.Date.Past(),
                    };
                    subcribers.Add(subcriber);
                }
                context.Set <Subcriber>().AddRange(subcribers);
                context.SaveChanges();
            }

            // 100 Payment
            using (var context = new EgreetingContext())
            {
                var payments = new List <Payment>();
                for (int i = 1; i <= 100; i++)
                {
                    var userID  = faker.Random.Number(5, 20);
                    var payment = new Payment
                    {
                        PaymentID     = i,
                        Month         = i % 12 == 0 ? 1 : i % 12,
                        Year          = faker.Random.Number(2000, 2019),
                        PaymentStatus = faker.Random.Bool(),
                        EgreetingUser = context.Set <EgreetingUser>().Find(userID),
                        CreatedDate   = faker.Date.Past(),
                    };
                    payments.Add(payment);
                }
                context.Set <Payment>().AddRange(payments);
                context.SaveChanges();
            }

            //200 Order
            using (var context = new EgreetingContext())
            {
                var orders = new List <Order>();
                for (int i = 1; i <= 200; i++)
                {
                    var ecardIDs = new List <int>()
                    {
                        faker.Random.Number(1, 100), faker.Random.Number(1, 100), faker.Random.Number(1, 100)
                    };
                    var orderDetails   = new List <OrderDetail>();
                    var sendStatusOder = true;
                    foreach (var item in ecardIDs)
                    {
                        bool sendStatus  = faker.Random.Bool();
                        var  orderDetail = new OrderDetail
                        {
                            SendStatus  = sendStatus,
                            Ecard       = context.Set <Ecard>().Find(item),
                            CreatedDate = faker.Date.Past(),
                        };
                        if (sendStatus)
                        {
                            orderDetail.SendTime = faker.Date.Soon();
                        }
                        orderDetails.Add(orderDetail);
                        sendStatusOder = sendStatusOder && sendStatus;
                    }
                    var userID = faker.Random.Number(5, 20);

                    var order = new Order
                    {
                        OrderID        = i,
                        SenderName     = faker.Lorem.Sentence(3),
                        RecipientEmail = "*****@*****.**",
                        SendSubject    = faker.Lorem.Sentence(4),
                        SendMessage    = faker.Lorem.Sentences(4),
                        ScheduleTime   = faker.Date.Past(),
                        SendStatus     = sendStatusOder,
                        TotalPrice     = faker.Random.Double(),
                        User           = context.Set <EgreetingUser>().Find(userID),
                        OrderDetails   = orderDetails,
                        CreatedDate    = faker.Date.Past(),
                    };
                    orders.Add(order);
                }
                context.Set <Order>().AddRange(orders);
                context.SaveChanges();
            }
            return(View());
        }