Пример #1
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 ActionResult Create(Feedback feedback, int?EcardID)
        {
            if (ModelState.IsValid)
            {
                using (var context = new DesignTimeDbContextFactory().CreateDbContext(null))
                {
                    var user = new EgreetingUser();
                    if (HttpContext.User != null)
                    {
                        string email = HttpContext.User.Identity.Name;
                        user = context.Set <EgreetingUser>().Where(x => x.Email.Equals(email)).FirstOrDefault();
                    }
                    if (user != null)
                    {
                        feedback.EgreetingUser = user;
                    }

                    var ecard = context.Set <Ecard>().Find(EcardID);
                    if (ecard != null)
                    {
                        feedback.Ecard = ecard;
                    }

                    feedback.CreatedDate = DateTime.Now;
                    context.Set <Feedback>().Add(feedback);
                    context.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }

            return(View(ViewNamesConstant.AdminFeedbacksCreate, feedback));
        }
Пример #3
0
        public ActionResult Create(Feedback feedback, int?EcardID)
        {
            if (ModelState.IsValid)
            {
                using (var context = new DesignTimeDbContextFactory().CreateDbContext(null))
                {
                    if (User.Identity.IsAuthenticated)
                    {
                        var user = new EgreetingUser();
                        if (HttpContext.User != null)
                        {
                            string email = User.Identity.Name;
                            user = context.Set <EgreetingUser>().Where(x => x.Email.Equals(email)).FirstOrDefault();
                            if (user != null)
                            {
                                feedback.EgreetingUser = user;
                            }
                        }
                    }

                    var ecard = context.Set <Ecard>().Find(EcardID);
                    if (ecard != null)
                    {
                        feedback.Ecard = ecard;
                    }

                    feedback.CreatedDate = DateTime.Now;
                    context.Set <Feedback>().Add(feedback);
                    context.SaveChanges();
                }
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            return(Redirect(Request.Headers["Referer"].ToString()));
        }
Пример #4
0
        public ActionResult Create([Bind(Include = "Subject,Message")] Feedback feedback, int?EcardID)
        {
            if (ModelState.IsValid)
            {
                using (var context = new EgreetingContext())
                {
                    var user           = new EgreetingUser();
                    var currentContext = System.Web.HttpContext.Current;
                    if (currentContext.User != null)
                    {
                        string email = currentContext.User.Identity.Name;
                        user = context.Set <EgreetingUser>().Where(x => x.Email.Equals(email)).FirstOrDefault();
                    }
                    if (user != null)
                    {
                        feedback.EgreetingUser = user;
                    }

                    var ecard = context.Set <Ecard>().Find(EcardID);
                    if (ecard != null)
                    {
                        feedback.Ecard = ecard;
                    }

                    feedback.CreatedDate = DateTime.Now;
                    context.Set <Feedback>().Add(feedback);
                    context.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }

            return(View(ViewNamesConstant.AdminFeedbacksCreate, feedback));
        }
        public IHttpActionResult PutEgreetingUser(int id, EgreetingUser egreetingUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != egreetingUser.EgreetingUserID)
            {
                return(BadRequest());
            }

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

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
 public async Task <IHttpActionResult> Put([FromODataUri] int key, EgreetingUser update)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     if (key != update.EgreetingUserID)
     {
         return(BadRequest());
     }
     db.Entry(update).State = EntityState.Modified;
     try
     {
         await db.SaveChangesAsync();
     }
     catch (DbUpdateConcurrencyException)
     {
         if (!EgreetingUserExists(key))
         {
             return(NotFound());
         }
         else
         {
             throw;
         }
     }
     return(Updated(update));
 }
Пример #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            EgreetingUser egreetingUser = EgreetingUserBusiness.Find(id);

            EgreetingUserBusiness.Delete(egreetingUser);
            EgreetingUserBusiness.Save();
            return(RedirectToAction("Index"));
        }
Пример #8
0
 public ActionResult Edit([Bind(Include = "EgreetingUserID,EgreetingUserSlug,FirstName,LastName,BirthDay,CreditCardNumber,CreditCardCVG,PaymentDueDate,CreatedDate,ModifiedDate")] EgreetingUser egreetingUser)
 {
     if (ModelState.IsValid)
     {
         EgreetingUserBusiness.Update(egreetingUser);
         EgreetingUserBusiness.Save();
         return(RedirectToAction("Index"));
     }
     return(View(ViewNamesConstant.FrontendEgreetingUsersEdit, egreetingUser));
 }
Пример #9
0
 public ActionResult Edit(EgreetingUser egreetingUser)
 {
     if (ModelState.IsValid)
     {
         EgreetingUserBusiness.Update(egreetingUser);
         EgreetingUserBusiness.Save();
         return(RedirectToAction("Index"));
     }
     return(View(ViewNamesConstant.FrontendEgreetingUsersEdit, egreetingUser));
 }
        public IHttpActionResult GetEgreetingUser(int id)
        {
            EgreetingUser egreetingUser = db.EgreetingUsers.Find(id);

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

            return(Ok(egreetingUser));
        }
        public ActionResult Details(int?id)
        {
            EgreetingUser egreetingUser = _userManager.Users.Where(x => x.Id == id).Select(x => x.EgreetingUser).FirstOrDefault();

            if (egreetingUser == null)
            {
                return(View(ViewNamesConstant.FrontendHomeError));
            }
            ViewBag.ListRole = EgreetingRoleBusiness.All.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminEgreetingUsersDetails, egreetingUser));
        }
        public async Task <IHttpActionResult> Post(EgreetingUser EgreetingUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            db.EgreetingUsers.Add(EgreetingUser);
            await db.SaveChangesAsync();

            return(Created(EgreetingUser));
        }
        public IHttpActionResult PostEgreetingUser(EgreetingUser egreetingUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.EgreetingUsers.Add(egreetingUser);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = egreetingUser.EgreetingUserID }, egreetingUser));
        }
Пример #14
0
        // GET: EgreetingUsers/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(View(ViewNamesConstant.FrontendHomeError));
            }
            EgreetingUser egreetingUser = EgreetingUserBusiness.Find(id);

            if (egreetingUser == null)
            {
                return(View(ViewNamesConstant.FrontendHomeError));
            }
            return(View(ViewNamesConstant.FrontendEgreetingUsersDelete, egreetingUser));
        }
        public IHttpActionResult DeleteEgreetingUser(int id)
        {
            EgreetingUser egreetingUser = db.EgreetingUsers.Find(id);

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

            db.EgreetingUsers.Remove(egreetingUser);
            db.SaveChanges();

            return(Ok(egreetingUser));
        }
Пример #16
0
        // GET: EgreetingUsers/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EgreetingUser egreetingUser = EgreetingUserBusiness.Find(id);

            if (egreetingUser == null)
            {
                return(HttpNotFound());
            }
            return(View(ViewNamesConstant.FrontendEgreetingUsersEdit, egreetingUser));
        }
        // GET: EgreetingUsers/Details/5
        public ActionResult Details(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EgreetingUser egreetingUser = UserManager.FindById(id).EgreetingUser;

            if (egreetingUser == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ListRole = EgreetingRoleBusiness.All.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminEgreetingUsersDetails, egreetingUser));
        }
        public async Task <ActionResult> Edit(EgreetingUser egreetingUser, int UserId, string ListRole)
        {
            var file = Request.Form.Files["Avatar"];

            byte[] image = new byte[file.Length];
            file.OpenReadStream().Read(image, 0, image.Length);

            if (ModelState.IsValid)
            {
                var user = _userManager.Users.Where(x => x.Id == UserId).Include(x => x.EgreetingUser).FirstOrDefault();
                user.EgreetingUser.EgreetingUserSlug = egreetingUser.EgreetingUserSlug;
                user.EgreetingUser.FirstName         = egreetingUser.FirstName;
                user.EgreetingUser.LastName          = egreetingUser.LastName;
                user.EgreetingUser.BirthDay          = egreetingUser.BirthDay;
                user.EgreetingUser.CreditCardNumber  = egreetingUser.CreditCardNumber;
                user.EgreetingUser.CreditCardCVG     = egreetingUser.CreditCardCVG;
                user.EgreetingUser.PaymentDueDate    = egreetingUser.PaymentDueDate;
                if (file.Length > 0)
                {
                    user.EgreetingUser.Avatar = image;
                }
                if (!string.IsNullOrEmpty(egreetingUser.Password))
                {
                    await _userManager.RemovePasswordAsync(user);

                    await _userManager.AddPasswordAsync(user, egreetingUser.Password);

                    await _userManager.UpdateAsync(user);
                }
                else
                {
                    await _userManager.UpdateAsync(user);
                }
                using (var context = new DesignTimeDbContextFactory().CreateDbContext(null))
                {
                    var lstRoleId = ListRole.Split('-').Where(x => x.Length > 0).Select(x => Convert.ToInt32(x)).ToList();
                    var eUser     = context.Set <EgreetingUser>().Where(x => x.Email.Equals(user.Email)).FirstOrDefault();
                    eUser.EgreetingUserRoles = (ICollection <EgreetingUserRole>)context.Set <EgreetingRole>().Where(x => lstRoleId.Contains(x.EgreetingRoleID)).Select(x => x.EgreetingUserRoles).ToList();
                    context.Set <EgreetingUser>().Attach(eUser);
                    context.Entry(eUser).State = EntityState.Modified;
                    context.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
            ViewBag.ListRole = EgreetingRoleBusiness.All.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminEgreetingUsersEdit, egreetingUser));
        }
        public ActionResult Edit([Bind(Include = "EgreetingUserSlug,FirstName,LastName,Email,Password,ConfirmPassword,BirthDay,CreditCardNumber,CreditCardCVG,PaymentDueDate")] EgreetingUser egreetingUser, string UserId, string ListRole)
        {
            var file = Request.Files["Avatar"];

            byte[] image = new byte[file.ContentLength];
            file.InputStream.Read(image, 0, image.Length);

            if (ModelState.IsValid)
            {
                var user = UserManager.FindById(UserId);
                user.EgreetingUser.EgreetingUserSlug = egreetingUser.EgreetingUserSlug;
                user.EgreetingUser.FirstName         = egreetingUser.FirstName;
                user.EgreetingUser.LastName          = egreetingUser.LastName;
                user.EgreetingUser.BirthDay          = egreetingUser.BirthDay;
                user.EgreetingUser.CreditCardNumber  = egreetingUser.CreditCardNumber;
                user.EgreetingUser.CreditCardCVG     = egreetingUser.CreditCardCVG;
                user.EgreetingUser.PaymentDueDate    = egreetingUser.PaymentDueDate;
                if (file.ContentLength > 0)
                {
                    user.EgreetingUser.Avatar = image;
                }
                if (!string.IsNullOrEmpty(egreetingUser.Password))
                {
                    UserManager.RemovePassword(user.Id);
                    UserManager.AddPassword(user.Id, egreetingUser.Password);
                    UserManager.Update(user);
                }
                else
                {
                    UserManager.Update(user);
                }
                using (var context = new EgreetingContext())
                {
                    var lstRoleId = ListRole.Split('-').Where(x => x.Length > 0).Select(x => Convert.ToInt32(x)).ToList();
                    var eUser     = context.Set <EgreetingUser>().Where(x => x.Email.Equals(user.Email)).FirstOrDefault();
                    eUser.EgreetingRoles = context.Set <EgreetingRole>().Where(x => lstRoleId.Contains(x.EgreetingRoleID)).ToList();
                    context.Set <EgreetingUser>().Attach(eUser);
                    context.Entry(eUser).State = EntityState.Modified;
                    context.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
            ViewBag.ListRole = EgreetingRoleBusiness.All.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminEgreetingUsersEdit, egreetingUser));
        }
Пример #20
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                // thinh: create custom egreetinguser.
                var egreetingUser = new EgreetingUser();
                egreetingUser.CreatedDate = DateTime.Now;
                egreetingUser.LastName    = model.LastName;
                egreetingUser.FirstName   = model.FirstName;
                user.EgreetingUser        = egreetingUser;
                var result = await UserManager.CreateAsync(user, model.Password);

                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(user.Id, "User");
                }
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Пример #21
0
        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));
        }
        public async Task <ActionResult> Create(EgreetingUser egreetingUser, string ListRole)
        {
            var file = Request.Form.Files["Avatar"];

            byte[] image = new byte[file.Length];
            file.OpenReadStream().Read(image, 0, image.Length);

            if (file.Length == 0)
            {
                image = System.IO.File.ReadAllBytes($"{_webHostEnvironment.WebRootPath}/Admin/dist/img/avatar.png");
            }

            if (ModelState.IsValid)
            {
                egreetingUser.CreatedDate = DateTime.Now;
                egreetingUser.Avatar      = image;
                //egreetingUser.EgreetingRoles = lstEgreetingRole;
                var applicationUser = new ApplicationUser {
                    Email = egreetingUser.Email, UserName = egreetingUser.Email, EgreetingUser = egreetingUser
                };
                var result = await _userManager.CreateAsync(applicationUser, egreetingUser.Password);

                if (result.Succeeded)
                {
                    using (var context = new DesignTimeDbContextFactory().CreateDbContext(null))
                    {
                        var lstRoleId = ListRole.Split('-').Where(x => x.Length > 0).Select(x => Convert.ToInt32(x)).ToList();
                        var eUser     = context.Set <EgreetingUser>().Where(x => x.Email.Equals(egreetingUser.Email)).FirstOrDefault();
                        eUser.EgreetingUserRoles = (ICollection <EgreetingUserRole>)context.Set <EgreetingRole>().Where(x => lstRoleId.Contains(x.EgreetingRoleID)).Select(x => x.EgreetingUserRoles).ToList();
                        context.Set <EgreetingUser>().Attach(eUser);
                        context.Entry(eUser).State = EntityState.Modified;
                        context.SaveChanges();
                    }
                    return(RedirectToAction("Index"));
                }
                AddErrors(result);
            }
            ViewBag.ListRole = EgreetingRoleBusiness.All.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminEgreetingUsersCreate, egreetingUser));
        }
        public ActionResult Create([Bind(Include = "EgreetingUserSlug,FirstName,LastName,Email,Password,ConfirmPassword,BirthDay,CreditCardNumber,CreditCardCVG,PaymentDueDate")] EgreetingUser egreetingUser, string ListRole)
        {
            var file = Request.Files["Avatar"];

            byte[] image = new byte[file.ContentLength];
            file.InputStream.Read(image, 0, image.Length);

            if (file.ContentLength == 0)
            {
                image = System.IO.File.ReadAllBytes(Server.MapPath("~/Content/Admin/dist/img/avatar.png"));
            }

            if (ModelState.IsValid)
            {
                egreetingUser.CreatedDate = DateTime.Now;
                egreetingUser.Avatar      = image;
                //egreetingUser.EgreetingRoles = lstEgreetingRole;
                var applicationUser = new ApplicationUser {
                    Email = egreetingUser.Email, UserName = egreetingUser.Email, EgreetingUser = egreetingUser
                };
                var result = UserManager.Create(applicationUser, egreetingUser.Password);
                if (result.Succeeded)
                {
                    using (var context = new EgreetingContext())
                    {
                        var lstRoleId = ListRole.Split('-').Where(x => x.Length > 0).Select(x => Convert.ToInt32(x)).ToList();
                        var eUser     = context.Set <EgreetingUser>().Where(x => x.Email.Equals(egreetingUser.Email)).FirstOrDefault();
                        eUser.EgreetingRoles = context.Set <EgreetingRole>().Where(x => lstRoleId.Contains(x.EgreetingRoleID)).ToList();
                        context.Set <EgreetingUser>().Attach(eUser);
                        context.Entry(eUser).State = EntityState.Modified;
                        context.SaveChanges();
                    }
                    return(RedirectToAction("Index"));
                }
                AddErrors(result);
            }
            ViewBag.ListRole = EgreetingRoleBusiness.All.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminEgreetingUsersCreate, egreetingUser));
        }
Пример #24
0
        public ActionResult Create([Bind(Include = "ScheduleTime,ScheduleType,SenderName,RecipientEmail,SendSubject,SendMessage")] ScheduleSender ScheduleSender, int?EcardID, int?EgreetingUserID)
        {
            if (ModelState.IsValid)
            {
                using (var context = new EgreetingContext())
                {
                    // thinh: check user exist
                    var egreetingUser = new EgreetingUser();
                    if (EcardID != null)
                    {
                        egreetingUser = context.Set <EgreetingUser>().Find(EgreetingUserID);
                        if (egreetingUser == null)
                        {
                            ModelState.AddModelError(string.Empty, "User not found!");
                            ViewBag.Ecards         = EcardBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EcardID, x.EcardName }).ToDictionary(k => k.EcardID, v => v.EcardName);
                            ViewBag.EgreetingUsers = EgreetingUserBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EgreetingUserID, x.Email }).ToDictionary(k => k.EgreetingUserID, v => v.Email);
                            return(View(ViewNamesConstant.AdminScheduleSendersCreate, ScheduleSender));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "Need at least one user!");
                        ViewBag.Ecards         = EcardBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EcardID, x.EcardName }).ToDictionary(k => k.EcardID, v => v.EcardName);
                        ViewBag.EgreetingUsers = EgreetingUserBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EgreetingUserID, x.Email }).ToDictionary(k => k.EgreetingUserID, v => v.Email);
                        return(View(ViewNamesConstant.AdminScheduleSendersCreate, ScheduleSender));
                    }

                    // thinh: check ecard exist
                    var ecard = new Ecard();
                    if (EcardID != null)
                    {
                        ecard = context.Set <Ecard>().Find(EcardID);
                        if (ecard == null)
                        {
                            ModelState.AddModelError(string.Empty, "Ecard not found!");
                            ViewBag.Ecards         = EcardBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EcardID, x.EcardName }).ToDictionary(k => k.EcardID, v => v.EcardName);
                            ViewBag.EgreetingUsers = EgreetingUserBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EgreetingUserID, x.Email }).ToDictionary(k => k.EgreetingUserID, v => v.Email);
                            return(View(ViewNamesConstant.AdminScheduleSendersCreate, ScheduleSender));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "Need at least one ecard!");
                        ViewBag.Ecards         = EcardBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EcardID, x.EcardName }).ToDictionary(k => k.EcardID, v => v.EcardName);
                        ViewBag.EgreetingUsers = EgreetingUserBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EgreetingUserID, x.Email }).ToDictionary(k => k.EgreetingUserID, v => v.Email);
                        return(View(ViewNamesConstant.AdminScheduleSendersCreate, ScheduleSender));
                    }

                    // thinh: create schedule sender
                    ScheduleSender.Ecard         = ecard;
                    ScheduleSender.EgreetingUser = egreetingUser;
                    ScheduleSender.CreatedDate   = DateTime.Now;

                    context.Set <ScheduleSender>().Add(ScheduleSender);
                    context.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
            ViewBag.Ecards         = EcardBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EcardID, x.EcardName }).ToDictionary(k => k.EcardID, v => v.EcardName);
            ViewBag.EgreetingUsers = EgreetingUserBusiness.AllNoTracking.Where(x => x.Draft != true).Select(x => new { x.EgreetingUserID, x.Email }).ToDictionary(k => k.EgreetingUserID, v => v.Email);
            return(View(ViewNamesConstant.AdminScheduleSendersCreate, ScheduleSender));
        }