public SubscriberModel(Subscriber subscriber)
 {
     this.Id = subscriber.Id;
     this.Name = subscriber.Name;
     this.Email = subscriber.Email;
     this.CreateDate = subscriber.CreateDate;
 }
 public ActionResult Create(SubscriberModel model)
 {
     if (ModelState.IsValid)
     {
         Subscriber newSubscriber = new Subscriber
                                    {
                                        CreateDate = DateTime.Now
                                    };
         model.UpdateSubscriber(newSubscriber);
         Context.Subscribers.Add(newSubscriber);
         Context.SaveChanges();
         return RedirectToAction("AllSubscribers");
     }
     return View(model);
 }
 public ActionResult SubscribeToNewsletter(SubscriberModel model)
 {
     String returnViewName = "_SubscriptionFailed";
     if (ModelState.IsValid &&
             Context.Subscribers.All(s => s.Email != model.Email))
     {
         Subscriber subscriber = new Subscriber
                                     {
                                         CreateDate = DateTime.Now
                                     };
         model.UpdateSubscriber(subscriber);
         Context.Subscribers.Add(subscriber);
         Context.SaveChanges();
         returnViewName = "_SubscriptionCompleted";
         if (Request.IsAjaxRequest())
         {
             return PartialView(returnViewName);
         }
         return View(returnViewName);
     }
     if (Request.IsAjaxRequest())
     {
         return PartialView(returnViewName);
     }
     return View(returnViewName);
 }
 /// <summary>
 /// Updates given Subscriber instance according to model.
 /// Updating affects Name and Email properties of given instance.
 /// </summary>
 public void UpdateSubscriber(Subscriber subscriber)
 {
     subscriber.Name = this.Name;
     subscriber.Email = this.Email;
 }