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 int CreateEventDirector(EventDirectorEntity eventDirectorEntity, int userId)
        {
            var eventDirector = new EventDirector
            {
                EventId          = eventDirectorEntity.EventId,
                ApplicationId    = eventDirectorEntity.ApplicationId,
                IsPrimary        = eventDirectorEntity.IsPrimary,
                IsAssistant      = eventDirectorEntity.IsAssistant,
                DirectorEmail    = eventDirectorEntity.DirectorEmail,
                DirectorFullName = eventDirectorEntity.DirectorFullName,
                ADLogonName      = eventDirectorEntity.ADLogonName,
                CreatedOn        = DateTime.Now,
                CreatedBy        = userId
            };

            _unitOfWork.EventDirectorRepository.Insert(eventDirector);
            _unitOfWork.Save();

            return(eventDirector.EventDirectorId);
        }
        public bool UpdateEventDirector(int eventDirectorId, EventDirectorEntity eventDirectorEntity, int userId)
        {
            var success = false;

            if (eventDirectorEntity != null)
            {
                var eventDirector = _unitOfWork.EventDirectorRepository.GetById(eventDirectorId);
                if (eventDirector != null)
                {
                    eventDirector.IsPrimary   = eventDirectorEntity.IsPrimary;
                    eventDirector.IsAssistant = eventDirectorEntity.IsAssistant;
                    eventDirector.UpdatedOn   = DateTime.Now;
                    eventDirector.UpdatedBy   = userId;

                    _unitOfWork.EventDirectorRepository.Update(eventDirector);
                    _unitOfWork.Save();
                    success = true;
                }
            }
            return(success);
        }
        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));
        }