public ActionResult _Edit(int id)
        {
            var eventDirector = EventDirectorServices.GetEventDirectorById(id);

            if (eventDirector == null)
            {
                return(Json(new { success = false, message = "Event Director not found!" }, JsonRequestBehavior.AllowGet));
            }

            eventDirector.ApplicationName = Applications.Single(x => x.ApplicationId == eventDirector.ApplicationId).Name;

            if (eventDirector == null)
            {
                return(Json(new { success = false, message = "Event Director not found!" }));
            }

            var model = new EventDirectorEditModel
            {
                EventDirectorId = eventDirector.EventDirectorId,
                EventId         = eventDirector.EventId,
                EventName       = eventDirector.EventName,
                UserEmail       = eventDirector.DirectorEmail,
                AppId           = eventDirector.ApplicationId,
                AppName         = eventDirector.ApplicationName,
                Applications    = Applications,
                IsPrimary       = eventDirector.IsPrimary.GetValueOrDefault(),
                IsAssistant     = eventDirector.IsAssistant.GetValueOrDefault()
            };

            return(PartialView(model));
        }
        private IList <EventDirectorListItemModel> GetEventDirectorListItems(int?eventId, string userEmail, int[] applicationIds, bool?isPrimary, bool?isAssistant)
        {
            if (eventId == null && string.IsNullOrWhiteSpace(userEmail))
            {
                return(new List <EventDirectorListItemModel>());
            }

            var eventDirectors         = EventDirectorServices.GetEventDirectors(eventId, userEmail, applicationIds, isPrimary, isAssistant);
            var eventDirectorListItems = Mapper.Map <IList <EventDirectorEntity>, IList <EventDirectorListItemModel> >(eventDirectors);

            foreach (var item in eventDirectorListItems)
            {
                item.ApplicationName = GetApplicationCode(item.ApplicationId);
            }

            return(eventDirectorListItems);
        }
        public ActionResult _Delete(int id)
        {
            var eventDirector = EventDirectorServices.GetEventDirectorById(id);

            if (eventDirector == null)
            {
                return(Json(new { success = false, message = "Event Director not found." }, JsonRequestBehavior.AllowGet));
            }

            var deleted = EventDirectorServices.DeleteEventDirector(id);

            if (deleted)
            {
                return(Json(new { success = true, message = "Event Director has been deleted." }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { success = false, message = "Event Director could not be deleted." }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult _Edit(EventDirectorEditModel model)
        {
            var eventDirectorEntity = new EventDirectorEntity
            {
                DirectorEmail   = model.UserEmail,
                ApplicationId   = model.AppId,
                EventDirectorId = model.EventDirectorId,
                IsPrimary       = model.IsPrimary,
                IsAssistant     = model.IsAssistant
            };

            var success = EventDirectorServices.UpdateEventDirector(model.EventDirectorId, eventDirectorEntity, CurrentCedUser.CurrentUser.UserId);

            var title = success ? "Saved" : "Not saved";

            return(Json(new { success = success, title = title, message = "Event Director has been updated." }, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 5
0
        private void ProcessEditionNotifications(KeyValuePair <EditionEntity, NotificationType> editionNotification, int itemIndex, int totalItemsCount)
        {
            var edition          = editionNotification.Key;
            var notificationType = editionNotification.Value;

            // NEEDLESS!
            // STEP 2: Does it REQUIRE a NOTIFICATION?
            var requires = EditionServices.RequiresNotification(edition, notificationType);

            if (requires)
            {
                // STEP 3: Does NOTIFICATION already EXIST?
                //if (!NotificationAlreadyExists(edition, notificationType))
                {
                    if (WebConfigHelper.PrimaryDirectorNotifications)
                    {
                        var recipients = WebConfigHelper.PrimaryDirectorNotificationsUseMockRecipients
                            ? WebConfigHelper.AdminEmails
                            : EventDirectorServices.GetRecipientEmails(edition);

                        // STEP 3: CREATE NOTIFICATION
                        CreateInAppNotification(edition, notificationType, recipients, null);

                        PushRealTimeInAppNotification(edition, notificationType, recipients, CurrentCedUser?.CurrentUser?.Email);

                        // STEP 4: SEND EMAIL
                        var notifAttr = notificationType.GetAttribute <NotificationAttribute>();
                        var buttonUrl = notificationType == NotificationType.EditionExistence
                            ? _editionHelper.GetEditionListUrl(edition.Event, notifAttr.Fragment)
                            : _editionHelper.GetEditionUrl(edition, notifAttr.Fragment);

                        var emailResult = SendEmailNotification(edition, notificationType, recipients, null, null, buttonUrl);

                        // STEP 5: LOG EMAIL
                        if (emailResult.Sent)
                        {
                            LogEmail(edition.EditionId, recipients, emailResult.ErrorMessage, null, notificationType.ToString());
                        }
                        else
                        {
                            LogEmail(edition.EditionId, WebConfigHelper.AdminEmails, emailResult.ErrorMessage, null, notificationType.ToString(), ActionType.NotificationEmailSendFailure);
                        }
                    }
                }
            }
        }
        private int GetEventDirectorListItemsCount(int?eventId, string userEmail, int[] applicationIds, bool?isPrimary, bool?isAssistant)
        {
            var eventDirectorsCount = EventDirectorServices.GetEventDirectorsCount(eventId, userEmail, applicationIds, isPrimary, isAssistant);

            return(eventDirectorsCount);
        }
        public ActionResult _Add(EventDirectorEditModel model)
        {
            string title = "None added";

            if (model.EventId == null || model.EventId <= 0)
            {
                return(Json(new { success = false, title = title, message = "An Event must be selected." }, JsonRequestBehavior.AllowGet));
            }
            if (string.IsNullOrWhiteSpace(model.UserEmail))
            {
                return(Json(new { success = false, title = title, message = "A User Email must be selected." }, JsonRequestBehavior.AllowGet));
            }
            if (model.ApplicationId == null || !model.ApplicationId.Any())
            {
                return(Json(new { success = false, title = title, message = "An Application must be selected." }, JsonRequestBehavior.AllowGet));
            }

            var userEmail = model.UserEmail?.Split('|')[1];
            var user      = UserServices.GetUser(userEmail);

            var addedAppCount  = 0;
            var detailedReport = "";

            foreach (var appId in model.ApplicationId)
            {
                var existing = EventDirectorServices.GetEventDirector(model.EventId.Value, user.Email, appId);
                if (existing != null)
                {
                    detailedReport += "Event director already exists. -> EventId: " + model.EventId + " | User: "******" | AppId: " + appId + "<br/>";
                }

                if (existing == null)
                {
                    var eventDirector = new EventDirectorEntity
                    {
                        EventId          = model.EventId.Value,
                        DirectorEmail    = user.Email,
                        ADLogonName      = user.AdLogonName,
                        ApplicationId    = appId,
                        DirectorFullName = user.FullName,
                        IsPrimary        = model.IsPrimary,
                        IsAssistant      = model.IsAssistant
                    };

                    var id = EventDirectorServices.CreateEventDirector(eventDirector, CurrentCedUser.CurrentUser.UserId);
                    if (id < 0)
                    {
                        detailedReport += "Event director could not be added. -> EventId: " + model.EventId + " | User: "******" | AppId: " + appId + "<br/>";
                    }
                    else
                    {
                        addedAppCount++;
                        detailedReport += "Event director has been added. -> EventId: " + model.EventId + " | User: "******" | AppId: " + appId + "<br/>";
                    }
                }
            }

            bool?success;

            if (addedAppCount == model.ApplicationId.Length)
            {
                success = true;
                title   = "All Added";
            }
            else if (addedAppCount == 0)
            {
                success = false;
                title   = "None Added";
            }
            else
            {
                success = null;
                title   = "Partly Added";
            }
            return(Json(new { success = success, title = title, message = detailedReport }, JsonRequestBehavior.AllowGet));
        }