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));
        }
        public ActionResult _Add()
        {
            var model = new EventDirectorEditModel
            {
                Applications = Applications,
                IsPrimary    = true
            };

            return(PartialView(model));
        }
        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));
        }
        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));
        }