Exemplo n.º 1
0
        /// <summary>
        /// Deletes the folder.
        /// </summary>
        /// <param name="folder">The folder.</param>
        public static void DeleteFolder(CalendarFolder folder)
        {
            if (folder == null)
            {
                throw new ArgumentNullException("folder");
            }

            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                TreeService treeService = folder.GetTreeService();

                //Erase all child folders
                foreach (TreeNode node in TreeManager.GetAllChildNodes(treeService.CurrentNode))
                {
                    CalendarFolder childFolder = (CalendarFolder)node.InnerObject;
                    EraseFolder(childFolder);
                    treeService.RemoveChild(node.ObjectId);
                    childFolder.Delete();
                }

                //Erase current folder
                EraseFolder(folder);
                folder.Delete();

                tran.Commit();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates the folder.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <param name="name">The name.</param>
        /// <returns></returns>
        public static CalendarFolder CreateFolder(CalendarFolder parent, string name)
        {
            if (parent == null)
            {
                throw new ArgumentNullException("parent");
            }
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }


            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                // Create Detached Folder
                CalendarFolder newRoot = new CalendarFolder();

                newRoot.Title     = name;
                newRoot.ProjectId = parent.ProjectId;
                newRoot.Owner     = parent.Owner;
                newRoot.Save();

                // Append to
                TreeNode node = parent.GetTreeService().AppendChild(newRoot);
                parent.Save();

                tran.Commit();

                return(newRoot);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Adds the calendar link.
        /// </summary>
        /// <param name="folder">The folder.</param>
        /// <param name="calendar">The calendar.</param>
        /// <returns></returns>
        public static CalendarInfo AddCalendarLink(CalendarFolder folder, Calendar calendar)
        {
            if (folder == null)
            {
                throw new ArgumentNullException("CalendarFolder");
            }
            if (calendar == null)
            {
                throw new ArgumentNullException("Calendar");
            }

            if (!folder.GetTreeService().CurrentNode.IsAttached)
            {
                throw new ArgumentException("The folder is detached from tree.", "folder");
            }

            //Step 1. Determine for already exist link
            CalendarFolderLink[] links = CalendarFolderLink.List(new FilterElement("CalendarId",
                                                                                   FilterElementType.Equal,
                                                                                   calendar.PrimaryKeyId.Value),
                                                                 new FilterElement("FolderId",
                                                                                   FilterElementType.Equal,
                                                                                   folder.PrimaryKeyId.Value));
            if (links.Length != 0)
            {
                Calendar cal = new Calendar(links[0].CalendarId);
                return(new CalendarInfo(cal, links[0]));
            }

            CalendarFolderLink link = null;

            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                // Step 2. Create New CalendarFolderLink
                link            = new CalendarFolderLink();
                link.CalendarId = calendar.PrimaryKeyId.Value;
                link.FolderId   = folder.PrimaryKeyId.Value;

                // Raise List Creating Event
                RaiseEvent(CalendarLinkCreating, link, EventArgs.Empty);

                // Add additional parameters
                link.Save();

                // Raise List Created Event
                RaiseEvent(CalendarLinkCreated, link, EventArgs.Empty);


                // Step. Commit Transaction Return new list info
                tran.Commit();
            }

            return(new CalendarInfo(calendar, link));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Adds the calendar link.
        /// </summary>
        /// <param name="folder">The folder.</param>
        /// <param name="calendar">The calendar.</param>
        /// <returns></returns>
        public static CalendarInfo AddCalendarLink(CalendarFolder folder, Calendar calendar)
        {
            if (folder == null)
                throw new ArgumentNullException("CalendarFolder");
            if (calendar == null)
                throw new ArgumentNullException("Calendar");

            if (!folder.GetTreeService().CurrentNode.IsAttached)
                throw new ArgumentException("The folder is detached from tree.", "folder");

            //Step 1. Determine for already exist link
            CalendarFolderLink[] links = CalendarFolderLink.List(new FilterElement("CalendarId",
                                                                      FilterElementType.Equal,
                                                                      calendar.PrimaryKeyId.Value),
                                                                  new FilterElement("FolderId",
                                                                      FilterElementType.Equal,
                                                                      folder.PrimaryKeyId.Value));
            if (links.Length != 0)
            {
                Calendar cal = new Calendar(links[0].CalendarId);
                return new CalendarInfo(cal, links[0]);
            }

            CalendarFolderLink link = null;
            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {

                // Step 2. Create New CalendarFolderLink
                link = new CalendarFolderLink();
                link.CalendarId = calendar.PrimaryKeyId.Value;
                link.FolderId = folder.PrimaryKeyId.Value;

                // Raise List Creating Event
                RaiseEvent(CalendarLinkCreating, link, EventArgs.Empty);

                // Add additional parameters
                link.Save();

                // Raise List Created Event
                RaiseEvent(CalendarLinkCreated, link, EventArgs.Empty);

                // Step. Commit Transaction Return new list info
                tran.Commit();

            }

            return new CalendarInfo(calendar, link);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Creates the calendar.
        /// </summary>
        /// <param name="folder">The folder.</param>
        /// <param name="name">The name.</param>
        /// <param name="ownerId">The owner id.</param>
        /// <returns></returns>
        public static CalendarInfo CreateCalendar(CalendarFolder folder, string name, int?ownerId)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (folder == null)
            {
                throw new ArgumentNullException("folder");
            }
            if (!folder.GetTreeService().CurrentNode.IsAttached)
            {
                throw new ArgumentException("The folder is dettached from tree.", "folder");
            }

            Calendar newItem = null;

            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                // Step 1. Create New Calendar
                newItem = new Calendar();
                newItem.CalendarFolderId = folder.PrimaryKeyId.Value;
                newItem.Title            = name;
                newItem.Owner            = ownerId;

                // Raise List Creating Event
                RaiseEvent(CalendarCreating, newItem, EventArgs.Empty);

                // Add additional parameters
                newItem.Save();

                // Raise List Created Event
                RaiseEvent(CalendarCreated, newItem, EventArgs.Empty);


                // Step. Commit Transaction Return new list info
                tran.Commit();
            }

            return(new CalendarInfo(newItem, null));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Deletes the folder.
        /// </summary>
        /// <param name="folder">The folder.</param>
        public static void DeleteFolder(CalendarFolder folder)
        {
            if (folder == null)
                throw new ArgumentNullException("folder");

            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                TreeService treeService = folder.GetTreeService();

                //Erase all child folders
                foreach (TreeNode node in TreeManager.GetAllChildNodes(treeService.CurrentNode))
                {
                    CalendarFolder childFolder = (CalendarFolder)node.InnerObject;
                    EraseFolder(childFolder);
                    treeService.RemoveChild(node.ObjectId);
                    childFolder.Delete();
                }

                //Erase current folder
                EraseFolder(folder);
                folder.Delete();

                tran.Commit();
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Creates the folder.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <param name="name">The name.</param>
        /// <returns></returns>
        public static CalendarFolder CreateFolder(CalendarFolder parent, string name)
        {
            if (parent == null)
                throw new ArgumentNullException("parent");
            if (string.IsNullOrEmpty(name))
                throw new ArgumentNullException("name");

            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                // Create Detached Folder
                CalendarFolder newRoot = new CalendarFolder();

                newRoot.Title = name;
                newRoot.ProjectId = parent.ProjectId;
                newRoot.Owner = parent.Owner;
                newRoot.Save();

                // Append to
                TreeNode node = parent.GetTreeService().AppendChild(newRoot);
                parent.Save();

                tran.Commit();

                return newRoot;
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Creates the calendar.
        /// </summary>
        /// <param name="folder">The folder.</param>
        /// <param name="name">The name.</param>
        /// <param name="ownerId">The owner id.</param>
        /// <returns></returns>
        public static CalendarInfo CreateCalendar(CalendarFolder folder, string name, int? ownerId)
        {
            if (name == null)
                throw new ArgumentNullException("name");
            if (folder == null)
                throw new ArgumentNullException("folder");
            if (!folder.GetTreeService().CurrentNode.IsAttached)
                throw new ArgumentException("The folder is dettached from tree.", "folder");

            Calendar newItem = null;

            using (TransactionScope tran = DataContext.Current.BeginTransaction())
            {
                // Step 1. Create New Calendar
                newItem = new Calendar();
                newItem.CalendarFolderId = folder.PrimaryKeyId.Value;
                newItem.Title = name;
                newItem.Owner = ownerId;

                // Raise List Creating Event
                RaiseEvent(CalendarCreating, newItem, EventArgs.Empty);

                // Add additional parameters
                newItem.Save();

                // Raise List Created Event
                RaiseEvent(CalendarCreated, newItem, EventArgs.Empty);

                // Step. Commit Transaction Return new list info
                tran.Commit();
             }

             return new CalendarInfo(newItem, null);
        }