public ActionResult Create(NewEvent newEvent)
        {
            try
            {
                if(ModelState.IsValid)
                {
                    //Should probably refactor this into a static method in IEventService /shrug
                    var insertedEvent = new Event
                                            {
                                                EventName = Server.HtmlEncode(newEvent.EventName),
                                                EventDescription = Server.HtmlEncode(newEvent.EventDescription),
                                                EventBeginDate = newEvent.EventBeginTime,
                                                EventEndDate = newEvent.EventEndTime,
                                                RegistrationOpenDate = newEvent.RegistrationBegins,
                                                Address = new Address
                                                              {
                                                                  StreetAddress =
                                                                      Server.HtmlEncode(newEvent.StreetAddress),
                                                                  StreetAddress2 =
                                                                      Server.HtmlEncode(newEvent.StreetAddress2 ??
                                                                                        string.Empty),
                                                                  City = Server.HtmlEncode(newEvent.City),
                                                                  PostalCode = Server.HtmlEncode(newEvent.PostalCode),
                                                                  State = Server.HtmlEncode(newEvent.State)
                                                              }
                                            };

                    var user = _eventService.Repository.GetUserByName(HttpContext.User.Identity.Name);

                    insertedEvent.AddAttendee(user);
                    insertedEvent.AddOrganizer(user);

                    var result = _eventService.Repository.CreateEvent(insertedEvent);

                    if(result)
                    {
                        return RedirectToAction("Details", new {id = insertedEvent.EventId});
                    }
                    else
                    {
                        ModelState.AddModelError("", "Unable to add event to calendar.");
                        return View(newEvent);
                    }
                }

                ModelState.AddModelError("", "Invalid event - please correct errors before re-submitting.");
                return View(newEvent);
            }
            catch
            {
                ModelState.AddModelError("", "Unable to add event to calendar.");
                return View();
            }
        }
 protected static EventListItem ConvertDalEventToEventListItem(Event eventItem)
 {
     return new EventListItem
                {
                    EventId = eventItem.EventId,
                    EventName = eventItem.EventName,
                    EventBeginTime = eventItem.EventBeginDate,
                    EventEndTime = eventItem.EventEndDate,
                    RegistrationBegins = eventItem.RegistrationOpenDate,
                    EventDescription = eventItem.EventDescription//,
                    //AttendeeCount = eventItem.Attendees.Count
                };
 }
 public bool DeleteEvent(Event deletedEvent)
 {
     using (var session = _factory.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             try
             {
                 session.Delete(deletedEvent);
                 transaction.Commit();
                 return true;
             }
             catch
             {
                 return false;
             }
         }
     }
 }
 public bool CreateEvent(Event newEvent)
 {
     using (var session = _factory.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             try
             {
                 session.Save(newEvent);
                 transaction.Commit();
                 return true;
             }
             catch
             {
                 return false;
             }
         }
     }
 }