public PartialViewResult SubscribeActivity(Guid Id) { //Db.Database.BeginTransaction() var activity = Db.Occurrences.SingleOrDefault(ac => ac.Id == Id); var model = new OccurrenceStateModel(); if (activity != null) { model.Occurrence = activity; var userProfile = UserManager.FindByName(User.Identity.Name); var occService = new OccurrenceService(UserManager); var msg = occService.SubscribeOccurrence(activity.Id, userProfile); model.HasError = msg.HasError; model.ErrorMessage = msg.Message; model.Subscription = msg.Subscription; var logger = LogManager.GetLogger("SubscribeActivity"); var ac = new ActivityService(); var summary = ac.GetSummary(Id); if (msg.HasError) { logger.InfoFormat("{0} ({1}) by [{2}]: {3}", summary.Activity.Name, summary.Activity.ShortName, User.Identity.Name, msg.Message); } else { logger.InfoFormat("{0} ({1}) by [{2}]", summary.Activity.Name, summary.Activity.ShortName, User.Identity.Name); } if (new SystemConfig().MailSubscriptionEnabled) { var mailModel = new SubscriptionMailModel { Summary = summary, Subscription = model.Subscription, User = userProfile, }; var mail = new MailController(); mail.Subscription(mailModel).Deliver(); } } return(PartialView("_SubscriptionState", model)); }