Beispiel #1
0
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        private void _ChangeWidget(ActiveBoard b, Change change)
        {
            /*verificam ce s-a schimbat */
            var jss             = new JavaScriptSerializer();
            ChangeDataWidget cd = null;

            try {
                cd = jss.Deserialize <ChangeDataWidget>(change.ChangeString);
            } catch {
                return;
            }

            /*cautam activelayer-ul parinte*/
            if (!b.Layers.ContainsKey(cd.LayerId))
            {
                throw new Exception("Parent layer id for changed widget not found");
            }

            ActiveLayer  l = b.Layers[cd.LayerId];
            ActiveWidget w = null;

            /*cautam activewidget-ul corespunzator*/
            if (!l.Widgets.ContainsKey(cd.Id))
            {
                throw new Exception("Changed widget id not found");
            }
            try {
                w = l.Widgets[cd.Id];
            } catch (KeyNotFoundException) {
                return;
            }


            /*modificam campurile*/
            w.Name = (w.WidgetEntity.Name = cd.Name);
            w.Type = (w.WidgetEntity.Type = cd.Type);
            w.Data = (w.WidgetEntity.Data = cd.Data);

            /*  daca e schimbat orderul, trebuie refacut stack-ul */
            if (cd.Order != w.WidgetEntity.Order)
            {
                w.WidgetEntity.Order = cd.Order;
                /*il stergem din pozitia existenta*/
                l.WidgetsStack.Remove(w);
                /*il reinseram*/
                if (l.WidgetsStack.Count <= cd.Order)
                {
                    l.WidgetsStack.Add(w);
                }
                else
                {
                    l.WidgetsStack.Insert(cd.Order, w);
                }
            }
        }
Beispiel #2
0
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------

        public void Save()
        {
            /*refacem campul order pentru widgeturi si layere */
            foreach (ActiveBoard b in this._activeBoards.Values)
            {
                for (int i = 0; i < b.LayerStack.Count(); i++)
                {
                    ActiveLayer layer = b.LayerStack[i];
                    layer.LayerEntity.Order = i;
                    for (int j = 0; j < layer.WidgetsStack.Count(); j++)
                    {
                        ActiveWidget widget = layer.WidgetsStack[j];
                        widget.WidgetEntity.Order = j;
                    }
                }
            }

            /*salvam baza de date*/
            try {
                this._em.SaveChanges();
            } catch (Exception ex) {
                Console.WriteLine(ex.ToString());
            }
        }
Beispiel #3
0
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        private void _AddWidget(ActiveBoard b, Change change)
        {
            ActiveWidget newActiveWidget = new ActiveWidget();
            var          jss             = new JavaScriptSerializer();

            ChangeDataWidget cd = jss.Deserialize <ChangeDataWidget>(change.ChangeString);

            newActiveWidget.WidgetId = cd.Id;
            newActiveWidget.Name     = cd.Name;
            newActiveWidget.Type     = cd.Type;
            newActiveWidget.Data     = cd.Data;

            /*creem si o entitate in bd*/
            Widget newWidget = new Widget();

            newActiveWidget.WidgetEntity = newWidget;
            newWidget.WidgetId           = cd.Id;
            newWidget.Order   = cd.Order;
            newWidget.LayerId = cd.LayerId;
            newWidget.Name    = cd.Name;
            newWidget.Data    = cd.Data;

            /*inseram in listele de widgeturi din layer*/
            try {
                lock (b.Layers[cd.LayerId].Widgets) {
                    b.Layers[cd.LayerId].Widgets.Add(cd.Id, newActiveWidget);
                }
                lock (b.Layers[cd.LayerId].WidgetsStack) {
                    b.Layers[cd.LayerId].WidgetsStack.Insert(cd.Order, newActiveWidget);
                }
            } catch (KeyNotFoundException ex) {
                Console.WriteLine(ex.ToString());
            }

            this._em.AddToWidgets(newWidget);
        }
 //------------------------------------------------------------------------------------------
 //------------------------------------------------------------------------------------------
 /*public void AddWidget(ActiveWidget widget) {
     this.Widgets[widget.WidgetId] = widget;
     /*adaugam in coada liste -
     this.WidgetsStack[widget.Order] = widget;
 }*/
 //------------------------------------------------------------------------------------------
 //------------------------------------------------------------------------------------------
 public void RemoveWidget(ActiveWidget widget)
 {
     this.Widgets.Remove(widget.WidgetId);
     this.WidgetsStack.Remove(widget);
 }
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        private ActiveBoard _LoadBoard(int id)
        {
            ActiveBoard newBoard = new ActiveBoard();

            var res = (from d in this._em.Boards
                       where d.Id == id
                       select d).ToList();

            if (res.Count() < 1)
                return null;

            Board b = res[0];
            /* ii salvam entitatea*/
            newBoard.BoardEntity = b;

            /* adaugam layers din bd */
            var res1 = (from d in this._em.Layers
                        where d.BoardId == b.Id
                        select d).ToList();

            newBoard.LayerStack = new List<ActiveLayer>(res1.Count);

            foreach (Layer l in res1) {
                ActiveLayer newLayer = new ActiveLayer();
                newLayer.LayerEntity = l;
                newLayer.Id = l.LayerId;
                newLayer.Name = l.Name;
                newBoard.Layers.Add(l.LayerId, newLayer);
                if (l.Order > newBoard.LayerStack.Count)
                    newBoard.LayerStack.Add(newLayer);
                else
                    newBoard.LayerStack.Insert(l.Order, newLayer);
            }

            /* adaugam widgeturile pentru fiecare layer*/
            foreach (KeyValuePair<int, ActiveLayer> activeLayerPair in newBoard.Layers) {
                var res2 = (from d in this._em.Widgets
                            where d.LayerId == activeLayerPair.Key
                            select d).ToList();

                activeLayerPair.Value.WidgetsStack = new List<ActiveWidget>(res2.Count);

                foreach (Widget w in res2) {
                    ActiveWidget newWidget = new ActiveWidget();
                    newWidget.WidgetEntity = w;
                    newWidget.WidgetId = w.WidgetId;
                    newWidget.Type = w.Type;
                    newWidget.Data = w.Data;
                    newWidget.Name = w.Name;

                    try {
                        activeLayerPair.Value.Widgets.Add(newWidget.WidgetId, newWidget);
                        if (w.Order > activeLayerPair.Value.WidgetsStack.Count)
                            activeLayerPair.Value.WidgetsStack.Add(newWidget);
                        else
                            activeLayerPair.Value.WidgetsStack.Insert(w.Order, newWidget);
                    } catch (Exception ex) {
                        Console.WriteLine(ex.ToString());
                    }
                }
            }

            /* adaugam userii care au drepturi asupra boardului*/
            var res3 = (from d in this._em.UserRights
                        where d.BoardId == id
                        select d).ToList();

            foreach (UserRight ur in res3) {
                ActiveUser u = new ActiveUser();
                u.Username = ur.User;
                newBoard.UsersTable.Add(u.Username, u);
            }

            /* adaugam noul board incarcat in lista activa*/
            this._activeBoards.Add(b.Id, newBoard);
            return newBoard;
        }
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        private void _AddWidget(ActiveBoard b, Change change)
        {
            ActiveWidget newActiveWidget = new ActiveWidget();
            var jss = new JavaScriptSerializer();

            ChangeDataWidget cd = jss.Deserialize<ChangeDataWidget>(change.ChangeString);
            newActiveWidget.WidgetId = cd.Id;
            newActiveWidget.Name = cd.Name;
            newActiveWidget.Type = cd.Type;
            newActiveWidget.Data = cd.Data;

            /*creem si o entitate in bd*/
            Widget newWidget = new Widget();
            newActiveWidget.WidgetEntity = newWidget;
            newWidget.WidgetId = cd.Id;
            newWidget.Order = cd.Order;
            newWidget.LayerId = cd.LayerId;
            newWidget.Name = cd.Name;
            newWidget.Data = cd.Data;

            /*inseram in listele de widgeturi din layer*/
            try {
                lock (b.Layers[cd.LayerId].Widgets) {
                    b.Layers[cd.LayerId].Widgets.Add(cd.Id, newActiveWidget);
                }
                lock (b.Layers[cd.LayerId].WidgetsStack) {
                    b.Layers[cd.LayerId].WidgetsStack.Insert(cd.Order, newActiveWidget);
                }
            } catch (KeyNotFoundException ex) {
                Console.WriteLine(ex.ToString());
            }

            this._em.AddToWidgets(newWidget);
        }
Beispiel #7
0
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        private ActiveBoard _LoadBoard(int id)
        {
            ActiveBoard newBoard = new ActiveBoard();

            var res = (from d in this._em.Boards
                       where d.Id == id
                       select d).ToList();

            if (res.Count() < 1)
            {
                return(null);
            }

            Board b = res[0];

            /* ii salvam entitatea*/
            newBoard.BoardEntity = b;

            /* adaugam layers din bd */
            var res1 = (from d in this._em.Layers
                        where d.BoardId == b.Id
                        select d).ToList();

            newBoard.LayerStack = new List <ActiveLayer>(res1.Count);

            foreach (Layer l in res1)
            {
                ActiveLayer newLayer = new ActiveLayer();
                newLayer.LayerEntity = l;
                newLayer.Id          = l.LayerId;
                newLayer.Name        = l.Name;
                newBoard.Layers.Add(l.LayerId, newLayer);
                if (l.Order > newBoard.LayerStack.Count)
                {
                    newBoard.LayerStack.Add(newLayer);
                }
                else
                {
                    newBoard.LayerStack.Insert(l.Order, newLayer);
                }
            }

            /* adaugam widgeturile pentru fiecare layer*/
            foreach (KeyValuePair <int, ActiveLayer> activeLayerPair in newBoard.Layers)
            {
                var res2 = (from d in this._em.Widgets
                            where d.LayerId == activeLayerPair.Key
                            select d).ToList();

                activeLayerPair.Value.WidgetsStack = new List <ActiveWidget>(res2.Count);

                foreach (Widget w in res2)
                {
                    ActiveWidget newWidget = new ActiveWidget();
                    newWidget.WidgetEntity = w;
                    newWidget.WidgetId     = w.WidgetId;
                    newWidget.Type         = w.Type;
                    newWidget.Data         = w.Data;
                    newWidget.Name         = w.Name;

                    try {
                        activeLayerPair.Value.Widgets.Add(newWidget.WidgetId, newWidget);
                        if (w.Order > activeLayerPair.Value.WidgetsStack.Count)
                        {
                            activeLayerPair.Value.WidgetsStack.Add(newWidget);
                        }
                        else
                        {
                            activeLayerPair.Value.WidgetsStack.Insert(w.Order, newWidget);
                        }
                    } catch (Exception ex) {
                        Console.WriteLine(ex.ToString());
                    }
                }
            }

            /* adaugam userii care au drepturi asupra boardului*/
            var res3 = (from d in this._em.UserRights
                        where d.BoardId == id
                        select d).ToList();

            foreach (UserRight ur in res3)
            {
                ActiveUser u = new ActiveUser();
                u.Username = ur.User;
                newBoard.UsersTable.Add(u.Username, u);
            }


            /* adaugam noul board incarcat in lista activa*/
            this._activeBoards.Add(b.Id, newBoard);
            return(newBoard);
        }
Beispiel #8
0
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------

        /*public void AddWidget(ActiveWidget widget) {
         *  this.Widgets[widget.WidgetId] = widget;
         *  /*adaugam in coada liste -
         *  this.WidgetsStack[widget.Order] = widget;
         * }*/
        //------------------------------------------------------------------------------------------
        //------------------------------------------------------------------------------------------
        public void RemoveWidget(ActiveWidget widget)
        {
            this.Widgets.Remove(widget.WidgetId);
            this.WidgetsStack.Remove(widget);
        }