示例#1
0
        public List <DisplayGroup> GetDisplayGroup(int displayGroupId)
        {
            List <DisplayGroup> displayGroupList = new List <DisplayGroup>();

            try
            {
                DataTable    dataTable = marbaleData.GetDisplayGroup(displayGroupId);
                DisplayGroup displayGrp;
                foreach (DataRow dr in dataTable.Rows)
                {
                    displayGrp = new DisplayGroup();
                    displayGrp.displayGroupId   = dr.IsNull("DisplayGroupId") ? 0 : int.Parse(dr["DisplayGroupId"].ToString());
                    displayGrp.displayGroupname = dr.IsNull("DisplayGroup") ? string.Empty : dr["DisplayGroup"].ToString();
                    displayGrp.sortOrder        = dr.IsNull("SortOrder") ? 0 : int.Parse(dr["SortOrder"].ToString());
                    displayGrp.createdBy        = dr.IsNull("CreatedBy") ? string.Empty : dr["CreatedBy"].ToString();
                    displayGrp.lastUpdatedBy    = dr.IsNull("LastUpdatedBy") ? string.Empty : dr["LastUpdatedBy"].ToString();
                    displayGrp.createdDate      = dr.IsNull("CreatedDate") ? new DateTime() : Convert.ToDateTime(dr["CreatedDate"]);
                    displayGrp.lastUpdatedDate  = dr.IsNull("LastUpdatedDate") ? new DateTime() : Convert.ToDateTime(dr["LastUpdatedDate"]);
                    displayGroupList.Add(displayGrp);
                }
            }
            catch (Exception e)
            {
            }

            return(displayGroupList);
        }
示例#2
0
        public static DisplayGroup GetDisplayGroup(string groupID, string userid, string role = null)
        {
            string key = CacheHelper.DisplayGroupPrefix + userid + "@" + groupID;

            if (CacheHelper.Contains(key))
            {
                return(CacheHelper.Get <DisplayGroup>(key));
            }

            DisplayGroup result = null;

            using (var _gorillaCtx = new MSGorillaEntities())
            {
                Group group = new GroupManager().GetGroupByID(groupID, _gorillaCtx);
                if (!string.IsNullOrEmpty(role))
                {
                    result = new DisplayGroup(group, role);
                }
                else
                {
                    result = new DisplayGroup(group, userid, _gorillaCtx);
                }
            }

            CacheHelper.Add(key, result);
            return(result);
        }
示例#3
0
 private static void SetGroup(string groupName)
 {
     // change in memory and save changes to file
     ConfigManager.GeneralConfig.RigGroup = groupName;
     ConfigManager.GeneralConfigFileCommit();
     // notify all components
     DisplayGroup?.Invoke(null, groupName);
 }
示例#4
0
        public ActionResult DeleteConfirmed(int id)
        {
            DisplayGroup displaygroup = db.DisplayGroups.Find(id);

            db.DisplayGroups.Remove(displaygroup);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#5
0
        public DisplayGroupNode(DisplayGroup ADisplayGroup)
            : base(ADisplayGroup.Name)
        {
            this.DisplayGroup = ADisplayGroup;

            OpenImgIndex = 1;
            NoChildrenImgIndex = 0;
            EnabledButtons = !(DisplayList.FirstOrDefault() is PassiveDisplay);
        }
示例#6
0
 public ActionResult Edit(DisplayGroup displaygroup)
 {
     if (ModelState.IsValid)
     {
         db.Entry(displaygroup).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(displaygroup));
 }
示例#7
0
        //
        // GET: /DisplayGroup/Delete/5

        public ActionResult Delete(int id = 0)
        {
            DisplayGroup displaygroup = db.DisplayGroups.Find(id);

            if (displaygroup == null)
            {
                return(HttpNotFound());
            }
            return(View(displaygroup));
        }
示例#8
0
        public ActionResult Create(DisplayGroup displaygroup)
        {
            if (ModelState.IsValid)
            {
                db.DisplayGroups.Add(displaygroup);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(displaygroup));
        }
        public DisplayGroupProperties(DisplayGroup group, bool isReadOnly)
            :this(group)
        {
            IsReadOnly = isReadOnly;
            okButton.Visible = !isReadOnly;
            
            if (isReadOnly)
                cancelButton.Text = "OK";

            nameText.ReadOnly = isReadOnly;
            commentText.ReadOnly = isReadOnly;
        }
示例#10
0
 private void InitGroupTree(DisplayGroup group, TreeNode groupNode)
 {
     if (group.ChildrenGroup.Count <= 0)
     {
         return;
     }
     foreach (var subGroup in group.ChildrenGroup)
     {
         TreeNode subGroupNode = AddNode(subGroup, subGroup.Name, groupNode);
         InitGroupTree(subGroup, subGroupNode);
     }
 }
示例#11
0
        void CloneGroup(DisplayGroup from, DisplayGroup dest)
        {
            foreach (PropertyInfo info in from.GetType().GetProperties())
            {
                object value = info.GetValue(from, null);
                if (value is ICloneable)
                    value = ((ICloneable)value).Clone();

                if (info.CanWrite)
                    info.SetValue(dest, value, null);
            }
        }
示例#12
0
 public void CleanGroup(DisplayGroup gr)
 {
     List<GameObject> toRemove = new List<GameObject>();
     for(int i = 0; i < _objects.Count; i++){
         if(_objects[i] == null){
             toRemove.Add(_objects[i]);
         } else {
             DisplayGroup objGroup = _objects[i].GetComponent(typeof(DisplayGroup)) as DisplayGroup;
             if(objGroup != null){
                 CleanGroup(objGroup);
             }
         }
     }
     for(int i = 0; i < toRemove.Count; i++){
         _objects.Remove(toRemove[i]);
     }
 }
示例#13
0
        public DisplayGroupProperties(DisplayGroup group)
        {
            InitializeComponent();

            destGroup = group;

            this.Text = group.Name + " - Свойства";

            CloneGroup(group, editGroup = new DisplayGroup());
            nameText.DataBindings.Add("Text", editGroup, "Name", false, DataSourceUpdateMode.OnPropertyChanged);
            commentText.DataBindings.Add("Text", editGroup, "Comment", false, DataSourceUpdateMode.OnPropertyChanged);
            typeLabel.DataBindings.Add("Text", editGroup, "Type");

            if (editGroup.Width > 0 && editGroup.Height > 0)
                resolutionLabel.Text = String.Format("{0}*{1}", editGroup.Width, editGroup.Height);
            else
                resolutionLabel.Visible = false;
        }
示例#14
0
 public List<Display> DisplayByGroup(DisplayGroup gr)
 {
     var displaysInGroup = (from d in Displays where gr.DisplayNameList.Contains(d.Type.Name) orderby d.Type.Name select d).ToList();
     return displaysInGroup;
 }
示例#15
0
        public bool CanMoveDisplayToGroup(DisplayGroup displayGroup, Display display)
        {
            ISegmentationSupport s = display as ISegmentationSupport;

            if (s != null && (s.SegmentColumns > 1 || s.SegmentRows > 1))
            {
                return false;
            }


            if (displayGroup.DisplayNameList.Count == 0)
            {
                return true;
            }
            else
            {
                if (display.Width == displayGroup.Width && display.Height == displayGroup.Height && display.Type.Type == displayGroup.Type)
                {
                    if (displayGroup.DisplayNameList.Contains(display.Type.Name))
                        return false;

                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
示例#16
0
        public bool AddDisplayToGroup(DisplayGroup displayGroup, Display display)
        {
            ISegmentationSupport s = display as ISegmentationSupport;

            if (s != null && (s.SegmentColumns > 1 || s.SegmentRows > 1))
            {
                MessageBoxExt.Show("Многосегментный дисплей не может быть помещен в группу", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }

            List<Slide> changedSlides = new List<Slide>();

            bool clear = false;
            if (displayGroup.DisplayNameList.Count == 0)
            {
                displayGroup.Width = display.Width;
                displayGroup.Height = display.Height;
                displayGroup.Type = display.Type.Type;
                display.DisplayGroup = displayGroup.Name;
                PresentationController.Instance.PresentationChanged = true;
            }
            else
            {
                if (display.Width == displayGroup.Width && display.Height == displayGroup.Height && display.Type.Type == displayGroup.Type)
                {
                    if (displayGroup.DisplayNameList.Contains(display.Type.Name))
                        return false;

                    if (!SlideGraphController.Instance.SaveNewSlides("Имеются несохраненные сцены.\r\nДля продолжения необходимо сохранить изменения.\r\nСохранить новые сцены?"))
                        return false;

                    //https://sentinel2.luxoft.com/sen/issues/browse/PMEDIAINFOVISDEV-861
                    //Если хотя бы одна сцена в сценарии заблокирована другим пользователем, то при попытке поместить дисплей в непустую группу дисплеев, система должна выводить сообщение: «Перемещение дисплея <Название дисплея> в группу <Название группы> невозможно: в сценарии есть заблокированные сцены. Для перемещения дисплея в непустую группу необходимо разблокировать все сцены.» (кнопка «ОК»)
                    //Display anyDisplay = DisplayByGroup(displayGroup).First();
                    foreach (Slide slide in PresentationController.Instance.GetAllSlides())
                    {
                        // НЕ проверяем сцены для которых есть непустая раскладка как на дисплее из группы итак и для дисплея который перемещается в группу
                        //if (SlideLayout.GetWindowsCount(anyDisplay, slide) > 0 || SlideLayout.GetWindowsCount(display, slide) > 0)
                        {
                            changedSlides.Add(slide);
                            LockingInfo lockingInfo = PresentationController.Instance.GetSlideLockingInfo(slide);
                            if (lockingInfo != null && !lockingInfo.UserIdentity.Equals(PresentationController.Instance.UserIdentity))
                            {
                                MessageBoxExt.Show(
                                    string.Format(
                                        "Перемещение дисплея {0} в группу {1} невозможно: в сценарии есть заблокированные сцены. Для перемещения дисплея в непустую группу необходимо разблокировать все сцены.",
                                        display.Name, displayGroup.Name),
                                    "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return false;
                            }
                        }
                    }

                    Slide[] allSlides = PresentationController.Instance.GetAllSlides();
                    for (int i = 0; i < allSlides.Length; i++)
                    {
                        if (SlideLayout.GetWindowsCount(display, allSlides[i]) > 0)
                        {
                            if (MessageBoxExt.Show(String.Format("У дисплея {0} есть настроенные раскладки сцен.\r\nПри перемещении дисплея ему будут установлены раскладки группы {1}?", display.Type.Name, displayGroup.Name), "Внимание", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, new string[] { "Продолжить", "Отмена" }) == DialogResult.Cancel)
                                return false;
                            clear = true;
                            break;
                        }
                    }
                    // Это не работает, если выделена пустая сцена. Поэтому написан код выше.
                    //if (SlideLayout.GetWindowsCount(display, PresentationController.Instance.SelectedSlide) > 0)
                    //{
                    //    if (MessageBoxExt.Show(String.Format("У дисплея {0} есть настроенные раскладки сцен.\r\nПри перемещении дисплея ему будут установлены раскладки группы {1}?", display.Type.Name, displayGroup.Name), "Внимание", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, new string[] { "Продолжить", "Отмена" }) == DialogResult.Cancel)
                    //        return false;

                    //    clear = true;
                    //}

                    display.DisplayGroup = displayGroup.Name;
                    PresentationController.Instance.PresentationChanged = true;
                }
                else
                {
                    MessageBoxExt.Show(String.Format("Разрешение/тип {0} отличаются от разрешения/типа {1}.\r\nПеремещение дисплея в группу невозможно", displayGroup.Name, display.Name), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return false;
                }
            }
            bool isSuccess = true;
            List<Display> displayList = DisplayByGroup(displayGroup);
            List<Slide> lockedSlides = new List<Slide>(changedSlides.Count);
            // если все прошло успешно, то теперь для слайдов в changedSlides мы должны нефвно залочить, сохранить и разлочить
            foreach (Slide slide in changedSlides)
            {
                LockingInfo lockingInfo = PresentationController.Instance.GetSlideLockingInfo(slide);
                if (!(lockingInfo != null && lockingInfo.UserIdentity.Equals(PresentationController.Instance.UserIdentity)))
                {
                    if (!PresentationController.Instance.LockSlide(slide))
                    {
                        MessageBoxExt.Show(
                            string.Format(
                                "Перемещение дисплея {0} в группу {1} невозможно: в сценарии есть заблокированные сцены. Для перемещения дисплея в непустую группу необходимо разблокировать все сцены.",
                                display.Name, displayGroup.Name),
                            "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        isSuccess = false;
                        break;
                    }
                    else
                    {
                        lockedSlides.Add(slide);
                    }
                }
            }

            if (isSuccess)
            {
                foreach (Slide slide in changedSlides)
                {
                    SlideLayout sltemp = new SlideLayout(displayList, slide);
                    sltemp.AppendToLayout(display, clear);
                    if (displayList.Count > 0)
                    {
                        Display firstDisplay = slide.DisplayList.First(src => src.Equals(displayList[0]));
                        if (firstDisplay is ActiveDisplay)
                        {
                            string id = ((ActiveDisplay)firstDisplay).BackgroundImage;
                            if (!string.IsNullOrEmpty(id))
                                SlideLayout.ApplyDisplayBackground(slide, id, display);
                        }
                    }
                }
                displayGroup.DisplayNameList.Add(display.Type.Name);
                //PresentationController.Instance.SaveSlideChanges(lockedSlides.ToArray());
                PresentationController.Instance.SavePresentation();
            }
            foreach (Slide slide in lockedSlides)
            {
                PresentationController.Instance.UnlockSlide(slide);
            }
            if (!isSuccess) return false;

            //SlideLayout sl = new SlideLayout(displayList, PresentationController.Instance.SelectedSlide);
            //sl.AppendToLayout(display, clear);

            return true;
        }
示例#17
0
 public void RemoveDisplayGroup(DisplayGroup displayGroup)
 {
     SlideLayout layout = PresentationController.Instance.CurrentSlideLayout;
     DisplayByGroup(displayGroup).ForEach(layout.RemoveFromLayout);
     DisplayByGroup(displayGroup).ForEach(d => d.DisplayGroup = null);
     PresentationController.Instance.Presentation.DisplayGroupList.Remove(displayGroup);
     PresentationController.Instance.PresentationChanged = true;
 }
示例#18
0
        public void CreateDisplayGroup()
        {
            DisplayGroup newGroup = new DisplayGroup { Name = GetNewGroupName() };
            PresentationController.Instance.Presentation.DisplayGroupList.Add(newGroup);

            if (OnDisplayGroupCreated != null)
                OnDisplayGroupCreated(newGroup);

            PresentationController.Instance.PresentationChanged = true;
        }
示例#19
0
 public void SelectDisplayGroup(DisplayGroup ADisplayGroup)
 {
     if (CurrentDisplayGroup != ADisplayGroup)
     {
         CurrentDisplay = null;
         CurrentDisplayGroup = ADisplayGroup;
         PresentationController.Instance.SelectedDisplayGroup = DisplayByGroup(CurrentDisplayGroup);
     }
 }
示例#20
0
        public ActionResult CourseTeacher(string courseId)
        {
            CourseGetResponse  cgr = _courseCom.GetCourse(courseId);
            DisplayCourseModel dcm = new DisplayCourseModel();

            if (cgr != null)
            {
                dcm.CourseCode        = cgr.CourseCode;
                dcm.CourseDescription = cgr.CourseDescription;
                dcm.CourseName        = cgr.CourseName;
                dcm.DesiredSkillSets  = cgr.DesiredSkillSets;
                dcm.GroupSize         = (int)cgr.GroupSize;
                dcm.GroupType         = cgr.GroupType;
                if (!string.IsNullOrWhiteSpace(cgr.Roaster))
                {
                    dcm.Roaster = cgr.Roaster.Split(',').ToList();
                }
                else
                {
                    dcm.Roaster = null;
                }
                dcm.PreferSimiliarSkillSet = (bool)cgr.PreferSimiliarSkillSet;
                dcm.Users     = new List <GT.BuddyUp.WebApp.Models.DisplayCourseUser>();
                dcm.Questions = new List <GT.BuddyUp.WebApp.Models.DsiplayQuestion>();
                dcm.Groups    = new List <DisplayGroup>();
            }

            foreach (var user in cgr.UserList)
            {
                dcm.Users.Add(new DisplayCourseUser()
                {
                    emailId = user.EmailID,
                    name    = user.Name,
                    role    = user.RoleCode
                });
            }

            foreach (var grp in cgr.CourseGroups)
            {
                var dg = new DisplayGroup()
                {
                    GroupCode    = grp.GroupCode,
                    GroupName    = grp.GroupName,
                    Objective    = grp.Objective,
                    TimeZone     = grp.TimeZone,
                    GroupMembers = new List <DisplayCourseUser>()
                };
                foreach (var gm in grp.GroupUsers)
                {
                    dg.GroupMembers.Add(new DisplayCourseUser()
                    {
                        emailId = gm.EmailID,
                        name    = gm.Name,
                        role    = gm.RoleCode
                    });
                }
                dcm.Groups.Add(dg);
            }

            QuestionnaireGetResponse qgr = _questionnaireCom.GetQuestionnaire(cgr.QuestionnaireCode);

            if (qgr != null)
            {
                foreach (var q in qgr.Questions)
                {
                    dcm.Questions.Add(new GT.BuddyUp.WebApp.Models.DsiplayQuestion()
                    {
                        QuestionText  = q.questionText,
                        QuestionType  = q.questionType,
                        AnswerChoices = q.answerChoices
                    });
                }
            }
            return(View(dcm));
        }
示例#21
0
 void Instance_OnDisplayGroupCreated(DisplayGroup newGroup)
 {
     TreeNodeAdv node = new DisplayGroupNode(newGroup);
     displayTree.Nodes.Add(node);
     displayTree.BeginEdit(node);
 }