コード例 #1
0
		private ToDoList(IBaseCamp baseCamp, IRestWebService service, JObject node, int projectID)
		{
			_camp = baseCamp;
			_service = service;
            ID = node["id"].ToObject<int>();
		    ProjectID = projectID;
            Items = new List<IToDoListItem>();

            foreach (var toDoListItem in node["todos"]["remaining"])
            {
                var path = string.Format("projects/{0}/{1}/{2}.json", ProjectID, "todos", toDoListItem["id"]);
                foreach (JObject node1 in _service.GetRequestResponseElement(path))
                {
                    Items.Add(ToDoListItem.GetInstance(_camp, node1));
                }

            }
            foreach (var toDoListItem in node["todos"]["completed"])
            {
                var path = string.Format("projects/{0}/{1}/{2}.json", ProjectID, "todos", toDoListItem["id"]);
                foreach (JObject node1 in _service.GetRequestResponseElement(path))
                {
                    Items.Add(ToDoListItem.GetInstance(_camp, node1));
                }
            }
		}
コード例 #2
0
ファイル: ToDoListItem.cs プロジェクト: Wifisoft/teamlab.v6.5
        private ToDoListItem(IBaseCamp camp, IRestWebService service, XmlNode node)
        {
            _camp    = camp;
            _service = service;
            ID       = XmlHelpers.ParseInteger(node, "id");
            Content  = XmlHelpers.ChildNodeText(node, "content");
            //Position = XmlHelpers.ParseInteger(node, "position");
            CreatedOn = XmlHelpers.ParseDateTime(node, "created-on");
            CreatorID = XmlHelpers.ParseInteger(node, "creator-id");
            Completed = XmlHelpers.ParseBool(node, "completed");
            //CommentsCount = XmlHelpers.ParseInteger(node, "comments-count");
            if (node.SelectSingleNode("responsible-party-type") != null)
            {
                ResponsiblePartyType = XmlHelpers.ChildNodeText(node, "responsible-party-type");
                ResponsiblePartyID   = XmlHelpers.ParseInteger(node, "responsible-party-id");
            }
            else
            {
                ResponsiblePartyType = string.Empty;
                ResponsiblePartyID   = -1;
            }

            /*if (Completed)
             * {
             *      CompletedOn = XmlHelpers.ParseDateTime(node, "completed-on", DateTime.MinValue);
             *      CompleterID = XmlHelpers.ParseInteger(node, "completer-id");
             * }
             * else
             * {
             *      CompletedOn = DateTime.MinValue;
             *      CompleterID = -1;
             * }*/
        }
コード例 #3
0
		private ToDoListItem(IBaseCamp camp, IRestWebService service, JObject node)
		{
			_camp = camp;
			_service = service;
			ID = node["id"].ToObject<int>();
			Content = node["content"].ToObject<string>();
            CreatedOn = node["created_at"].ToObject<DateTime>();
			CreatorID = node["creator"]["id"].ToObject<int>();
			Completed = node["completed"].ToObject<bool>();
            RecentComments = new List<IComment>();

            if (node["assignee"] != null)
			{
                ResponsibleID = node["assignee"]["id"].ToObject<int>();
			}
			else
			{
                ResponsibleID = -1;
			}

            if (node["due_on"] != null && node["due_on"].ToObject<string>() != null)
            {
                Deadline = node["due_on"].ToObject<DateTime>();
            }

            foreach (var comment in node["comments"])
            {
                RecentComments.Add(Comment.GetInstance(camp, (JObject)comment));
            }
		}
コード例 #4
0
ファイル: ToDoListItem.cs プロジェクト: sainabob/teamlab.v7.5
        private ToDoListItem(IBaseCamp camp, IRestWebService service, JObject node)
        {
            _camp          = camp;
            _service       = service;
            ID             = node["id"].ToObject <int>();
            Content        = node["content"].ToObject <string>();
            CreatedOn      = node["created_at"].ToObject <DateTime>();
            CreatorID      = node["creator"]["id"].ToObject <int>();
            Completed      = node["completed"].ToObject <bool>();
            RecentComments = new List <IComment>();

            if (node["assignee"] != null)
            {
                ResponsibleID = node["assignee"]["id"].ToObject <int>();
            }
            else
            {
                ResponsibleID = -1;
            }

            if (node["due_on"] != null && node["due_on"].ToObject <string>() != null)
            {
                Deadline = node["due_on"].ToObject <DateTime>();
            }

            foreach (var comment in node["comments"])
            {
                RecentComments.Add(Comment.GetInstance(camp, (JObject)comment));
            }
        }
コード例 #5
0
        private ToDoList(IBaseCamp baseCamp, IRestWebService service, JObject node, int projectID)
        {
            _camp     = baseCamp;
            _service  = service;
            ID        = node["id"].ToObject <int>();
            ProjectID = projectID;
            Items     = new List <IToDoListItem>();

            foreach (var toDoListItem in node["todos"]["remaining"])
            {
                var path = string.Format("projects/{0}/{1}/{2}.json", ProjectID, "todos", toDoListItem["id"]);
                foreach (JObject node1 in _service.GetRequestResponseElement(path))
                {
                    Items.Add(ToDoListItem.GetInstance(_camp, node1));
                }
            }
            foreach (var toDoListItem in node["todos"]["completed"])
            {
                var path = string.Format("projects/{0}/{1}/{2}.json", ProjectID, "todos", toDoListItem["id"]);
                foreach (JObject node1 in _service.GetRequestResponseElement(path))
                {
                    Items.Add(ToDoListItem.GetInstance(_camp, node1));
                }
            }
        }
コード例 #6
0
ファイル: ToDoListItem.cs プロジェクト: ridhouan/teamlab.v6.5
		private ToDoListItem(IBaseCamp camp, IRestWebService service, XmlNode node)
		{
			_camp = camp;
			_service = service;
			ID = XmlHelpers.ParseInteger(node, "id");
			Content = XmlHelpers.ChildNodeText(node, "content");
			//Position = XmlHelpers.ParseInteger(node, "position");
			CreatedOn = XmlHelpers.ParseDateTime(node, "created-on");
			CreatorID = XmlHelpers.ParseInteger(node, "creator-id");
			Completed = XmlHelpers.ParseBool(node, "completed");
			//CommentsCount = XmlHelpers.ParseInteger(node, "comments-count");
			if (node.SelectSingleNode("responsible-party-type") != null)
			{
				ResponsiblePartyType = XmlHelpers.ChildNodeText(node, "responsible-party-type");
				ResponsiblePartyID = XmlHelpers.ParseInteger(node, "responsible-party-id");
			}
			else
			{
				ResponsiblePartyType = string.Empty;
				ResponsiblePartyID = -1;
			}
			/*if (Completed)
			{
				CompletedOn = XmlHelpers.ParseDateTime(node, "completed-on", DateTime.MinValue);
				CompleterID = XmlHelpers.ParseInteger(node, "completer-id");
			}
			else
			{
				CompletedOn = DateTime.MinValue;
				CompleterID = -1;
			}*/
		}
コード例 #7
0
ファイル: Comment.cs プロジェクト: haoasqui/ONLYOFFICE-Server
        private Comment(IBaseCamp camp, JObject node)
		{
			_camp = camp;
            ID = node["id"].ToObject<int>();
            AuthorID = node["creator"]["id"].ToObject<int>();
            Body = node["content"].ToObject<string>();
            CreatedAt = node["created_at"].ToObject<DateTime>();
		}
コード例 #8
0
 private Comment(IBaseCamp camp, JObject node)
 {
     _camp     = camp;
     ID        = node["id"].ToObject <int>();
     AuthorID  = node["creator"]["id"].ToObject <int>();
     Body      = node["content"].ToObject <string>();
     CreatedAt = node["created_at"].ToObject <DateTime>();
 }
コード例 #9
0
 private Category(IBaseCamp camp, JObject node)
 {
     _camp = camp;
     ID = node["id"].ToObject<int>();
     Name = node["name"].ToObject<string>();
     ProjectID = node["project-id"].ToObject<int>();
     Type = (node["type"].ToObject<string>() == "PostCategory") ?
         CategoryType.Post : CategoryType.Attachment;
 }
コード例 #10
0
ファイル: Project.cs プロジェクト: haoasqui/ONLYOFFICE-Server
        private Project(IBaseCamp baseCamp, IRestWebService service, JObject node)
		{
			Camp = baseCamp;
			_service = service;
            ID = node["id"].ToObject<int>();
            Name = node["name"].ToObject<string>();
            Description = node["description"].ToObject<string>();
            IsClosed = node["archived"].ToObject<bool>();
		}
コード例 #11
0
ファイル: Category.cs プロジェクト: sainabob/teamlab.v7.5
 private Category(IBaseCamp camp, JObject node)
 {
     _camp     = camp;
     ID        = node["id"].ToObject <int>();
     Name      = node["name"].ToObject <string>();
     ProjectID = node["project-id"].ToObject <int>();
     Type      = (node["type"].ToObject <string>() == "PostCategory") ?
                 CategoryType.Post : CategoryType.Attachment;
 }
コード例 #12
0
ファイル: Person.cs プロジェクト: haoasqui/ONLYOFFICE-Server
		private Person(IBaseCamp camp, JObject node)
		{
			ID = node["id"].ToObject<int>();
			EmailAddress = node["email_address"].ToObject<string>();
            UserName = node["name"].ToObject<string>();

            if (node["avatar_url"] != null)
                AvatarUrl = node["avatar_url"].ToObject<string>();
		}
コード例 #13
0
ファイル: Project.cs プロジェクト: sainabob/teamlab.v7.5
 private Project(IBaseCamp baseCamp, IRestWebService service, JObject node)
 {
     Camp        = baseCamp;
     _service    = service;
     ID          = node["id"].ToObject <int>();
     Name        = node["name"].ToObject <string>();
     Description = node["description"].ToObject <string>();
     IsClosed    = node["archived"].ToObject <bool>();
 }
コード例 #14
0
 private Category(IBaseCamp camp, XmlNode node)
 {
     _camp     = camp;
     ID        = XmlHelpers.ParseInteger(node, "id");
     Name      = XmlHelpers.ChildNodeText(node, "name");
     ProjectID = XmlHelpers.ParseInteger(node, "project-id");
     //ElementsCount = XmlHelpers.ParseInteger(node, "elements-count");
     Type = (XmlHelpers.ChildNodeText(node, "type") == "PostCategory") ?
            CategoryType.Post : CategoryType.Attachment;
 }
コード例 #15
0
ファイル: Category.cs プロジェクト: ridhouan/teamlab.v6.5
 private Category(IBaseCamp camp, XmlNode node)
 {
     _camp = camp;
     ID = XmlHelpers.ParseInteger(node, "id");
     Name = XmlHelpers.ChildNodeText(node, "name");
     ProjectID = XmlHelpers.ParseInteger(node, "project-id");
     //ElementsCount = XmlHelpers.ParseInteger(node, "elements-count");
     Type = (XmlHelpers.ChildNodeText(node, "type") == "PostCategory") ?
         CategoryType.Post : CategoryType.Attachment;
 }
コード例 #16
0
        private Person(IBaseCamp camp, JObject node)
        {
            ID           = node["id"].ToObject <int>();
            EmailAddress = node["email_address"].ToObject <string>();
            UserName     = node["name"].ToObject <string>();

            if (node["avatar_url"] != null)
            {
                AvatarUrl = node["avatar_url"].ToObject <string>();
            }
        }
コード例 #17
0
 private Account(IBaseCamp camp, XmlNode node)
 {
     _camp                    = camp;
     Id                       = XmlHelpers.ParseInteger(node, "id");
     Name                     = XmlHelpers.ChildNodeText(node, "name");
     AccountHolderId          = XmlHelpers.ParseInteger(node, "account-holder-id");
     SSLEnabled               = XmlHelpers.ParseBool(node, "ssl-enabled");
     EmailNotificationEnabled = XmlHelpers.ParseBool(node, "email-notification-enabled");
     TimeTrackingEnabled      = XmlHelpers.ParseBool(node, "time-tracking-enabled");
     UpdatedAt                = XmlHelpers.ParseDateTime(node, "updated-at", DateTime.MinValue);
 }
コード例 #18
0
ファイル: TimeEntry.cs プロジェクト: ridhouan/teamlab.v6.5
		private TimeEntry(IBaseCamp camp, XmlNode node)
		{
			Camp = camp;
			ID = XmlHelpers.ParseInteger(node, "id");
			ProjectID = XmlHelpers.ParseInteger(node, "project-id");
			PersonID = XmlHelpers.ParseInteger(node, "person-id");
			Date = XmlHelpers.ParseDateTime(node, "date");
			Hours = ConvertToDouble(XmlHelpers.ChildNodeText(node, "hours"));
			Description = XmlHelpers.ChildNodeText(node, "description");
			ToDoItemID = XmlHelpers.ParseInteger(node, "todo-item-id");
		}
コード例 #19
0
 private TimeEntry(IBaseCamp camp, JObject node)
 {
     Camp        = camp;
     ID          = node["id"].ToObject <int>();
     ProjectID   = node["project-id"].ToObject <int>();
     PersonID    = node["person-id"].ToObject <int>();
     Date        = node["date"].ToObject <DateTime>();
     Hours       = node["hours"].ToObject <int>();
     Description = node["description"].ToObject <string>();
     ToDoItemID  = node["todo-item-id"].ToObject <int>();
 }
コード例 #20
0
        private TimeEntry(IBaseCamp camp, JObject node)
		{
			Camp = camp;
			ID = node["id"].ToObject<int>();
			ProjectID = node["project-id"].ToObject<int>();
			PersonID = node["person-id"].ToObject<int>();
			Date = node["date"].ToObject<DateTime>();
			Hours = node["hours"].ToObject<int>();
			Description = node["description"].ToObject<string>();
            ToDoItemID = node["todo-item-id"].ToObject<int>();
		}
コード例 #21
0
        private Milestone(IBaseCamp camp, JObject node)
		{
			_camp = camp;
            ID = node["id"].ToObject<int>();
            Title = node["title"].ToObject<string>();
            CreatedOn = node["created-on"].ToObject<DateTime>();
            Deadline = node["deadline"].ToObject<DateTime>();
            Title = node["title"].ToObject<string>();
            Completed = node["completed"].ToObject<bool>();
            ProjectID = node["project-id"].ToObject<int>();
		}
コード例 #22
0
ファイル: Account.cs プロジェクト: haoasqui/ONLYOFFICE-Server
		private Account(IBaseCamp camp, XmlNode node)
		{
			_camp = camp;
			Id = XmlHelpers.ParseInteger(node, "id");
			Name = XmlHelpers.ChildNodeText(node, "name");
			AccountHolderId = XmlHelpers.ParseInteger(node, "account-holder-id");
			SSLEnabled = XmlHelpers.ParseBool(node, "ssl-enabled");
			EmailNotificationEnabled = XmlHelpers.ParseBool(node, "email-notification-enabled");
			TimeTrackingEnabled = XmlHelpers.ParseBool(node, "time-tracking-enabled");
			UpdatedAt = XmlHelpers.ParseDateTime(node, "updated-at", DateTime.MinValue);
		}
コード例 #23
0
ファイル: Milestone.cs プロジェクト: sainabob/teamlab.v7.5
 private Milestone(IBaseCamp camp, JObject node)
 {
     _camp     = camp;
     ID        = node["id"].ToObject <int>();
     Title     = node["title"].ToObject <string>();
     CreatedOn = node["created-on"].ToObject <DateTime>();
     Deadline  = node["deadline"].ToObject <DateTime>();
     Title     = node["title"].ToObject <string>();
     Completed = node["completed"].ToObject <bool>();
     ProjectID = node["project-id"].ToObject <int>();
 }
コード例 #24
0
 private Project(IBaseCamp baseCamp, IRestWebService service, XmlNode node)
 {
     Camp        = baseCamp;
     _service    = service;
     ID          = XmlHelpers.ParseInteger(node, "id");
     Name        = XmlHelpers.ChildNodeText(node, "name");
     Description = XmlHelpers.ChildNodeText(node, "announcement");
     //CreatedOn = XmlHelpers.ParseDateTime(node, "created-on");
     //LastChangedOn = XmlHelpers.ParseDateTime(node, "last-changed-on", CreatedOn);
     Status = XmlHelpers.ChildNodeText(node, "status");
 }
コード例 #25
0
 private TimeEntry(IBaseCamp camp, XmlNode node)
 {
     Camp        = camp;
     ID          = XmlHelpers.ParseInteger(node, "id");
     ProjectID   = XmlHelpers.ParseInteger(node, "project-id");
     PersonID    = XmlHelpers.ParseInteger(node, "person-id");
     Date        = XmlHelpers.ParseDateTime(node, "date");
     Hours       = ConvertToDouble(XmlHelpers.ChildNodeText(node, "hours"));
     Description = XmlHelpers.ChildNodeText(node, "description");
     ToDoItemID  = XmlHelpers.ParseInteger(node, "todo-item-id");
 }
コード例 #26
0
ファイル: Attachment.cs プロジェクト: julthep/CommunityServer
 private Attachment(IBaseCamp camp, JObject node)
 {
     _camp       = camp;
     AuthorID    = node["creator"]["id"].ToObject <int>();
     CreatedOn   = node["created_at"].ToObject <DateTime>();
     ByteSize    = node["byte_size"].ToObject <int>();
     DownloadUrl = node["url"].ToObject <string>();
     ID          = node["key"].ToObject <string>();
     Name        = node["name"].ToObject <string>();
     OwnerID     = node["attachable"]["id"].ToObject <int>();
     OwnerType   = node["attachable"]["type"].ToObject <string>();
 }
コード例 #27
0
 private Comment(IBaseCamp camp, XmlNode node)
 {
     _camp    = camp;
     ID       = XmlHelpers.ParseInteger(node, "id");
     AuthorID = XmlHelpers.ParseInteger(node, "author-id");
     //CommentableID = XmlHelpers.ParseInteger(node, "commentable-id");
     //CommentableType = XmlHelpers.ChildNodeText(node, "commentable-type");
     Body = XmlHelpers.ChildNodeText(node, "body");
     //EmailedFrom = XmlHelpers.ChildNodeText(node, "emailed-from");
     //AttachmentsCount = XmlHelpers.ParseInteger(node, "attachments-count");
     CreatedAt = XmlHelpers.ParseDateTime(node, "created-at");
 }
コード例 #28
0
        private Attachment(IBaseCamp camp, JObject node)
		{
			_camp = camp;
            AuthorID = node["creator"]["id"].ToObject<int>();
            CreatedOn = node["created_at"].ToObject<DateTime>();
            ByteSize = node["byte_size"].ToObject<int>();
            DownloadUrl = node["url"].ToObject<string>();
            ID = node["key"].ToObject<string>();
			Name = node["name"].ToObject<string>();
            OwnerID = node["attachable"]["id"].ToObject<int>();
            OwnerType = node["attachable"]["type"].ToObject<string>();
		}
コード例 #29
0
 private ToDoList(IBaseCamp baseCamp, IRestWebService service, XmlNode node)
 {
     _camp    = baseCamp;
     _service = service;
     ID       = XmlHelpers.ParseInteger(node, "id");
     //Name = XmlHelpers.ChildNodeText(node, "name");
     //Description = XmlHelpers.ChildNodeText(node, "description");
     ProjectID   = XmlHelpers.ParseInteger(node, "project-id");
     MilestoneID = XmlHelpers.ParseInteger(node, "milestone-id");
     //Position = XmlHelpers.ParseInteger(node, "position");
     //Private = XmlHelpers.ParseBool(node, "private");
     //Tracked = XmlHelpers.ParseBool(node, "tracked");
 }
コード例 #30
0
ファイル: ToDoList.cs プロジェクト: ridhouan/teamlab.v6.5
		private ToDoList(IBaseCamp baseCamp, IRestWebService service, XmlNode node)
		{
			_camp = baseCamp;
			_service = service;
			ID = XmlHelpers.ParseInteger(node, "id");
			//Name = XmlHelpers.ChildNodeText(node, "name");
			//Description = XmlHelpers.ChildNodeText(node, "description");
			ProjectID = XmlHelpers.ParseInteger(node, "project-id");
			MilestoneID = XmlHelpers.ParseInteger(node, "milestone-id");
			//Position = XmlHelpers.ParseInteger(node, "position");
			//Private = XmlHelpers.ParseBool(node, "private");
			//Tracked = XmlHelpers.ParseBool(node, "tracked");
		}
コード例 #31
0
 private Post(IBaseCamp camp, JObject node)
 {
     _camp          = camp;
     ID             = node["id"].ToObject <int>();
     Title          = node["subject"].ToObject <string>();
     Body           = node["content"].ToObject <string>();
     PostedOn       = node["created_at"].ToObject <DateTime>();
     AuthorID       = node["creator"]["id"].ToObject <int>();
     RecentComments = new List <IComment>();
     foreach (var comment in node["comments"])
     {
         RecentComments.Add(Comment.GetInstance(camp, (JObject)comment));
     }
 }
コード例 #32
0
ファイル: Milestone.cs プロジェクト: ridhouan/teamlab.v6.5
		private Milestone(IBaseCamp camp, XmlNode node)
		{
			_camp = camp;
			ID = XmlHelpers.ParseInteger(node, "id");
			Title = XmlHelpers.ChildNodeText(node, "title");
			CreatedOn = XmlHelpers.ParseDateTime(node, "created-on");
			Deadline = XmlHelpers.ParseDateTime(node, "deadline", CreatedOn);
			Title = XmlHelpers.ChildNodeText(node, "title");
			//WantsNotification = XmlHelpers.ParseBool(node, "wants-notification");
			//ResponsiblePartyID = XmlHelpers.ParseInteger(node, "responsible-party-id");
			Completed = XmlHelpers.ParseBool(node, "completed");
			//CreatorID = XmlHelpers.ParseInteger(node, "creator-id");
			ProjectID = XmlHelpers.ParseInteger(node, "project-id");
		}
コード例 #33
0
ファイル: Milestone.cs プロジェクト: Wifisoft/teamlab.v6.5
 private Milestone(IBaseCamp camp, XmlNode node)
 {
     _camp     = camp;
     ID        = XmlHelpers.ParseInteger(node, "id");
     Title     = XmlHelpers.ChildNodeText(node, "title");
     CreatedOn = XmlHelpers.ParseDateTime(node, "created-on");
     Deadline  = XmlHelpers.ParseDateTime(node, "deadline", CreatedOn);
     Title     = XmlHelpers.ChildNodeText(node, "title");
     //WantsNotification = XmlHelpers.ParseBool(node, "wants-notification");
     //ResponsiblePartyID = XmlHelpers.ParseInteger(node, "responsible-party-id");
     Completed = XmlHelpers.ParseBool(node, "completed");
     //CreatorID = XmlHelpers.ParseInteger(node, "creator-id");
     ProjectID = XmlHelpers.ParseInteger(node, "project-id");
 }
コード例 #34
0
ファイル: Post.cs プロジェクト: haoasqui/ONLYOFFICE-Server
        private Post(IBaseCamp camp, JObject node)
		{
			_camp = camp;
            ID = node["id"].ToObject<int>();
            Title = node["subject"].ToObject<string>();
            Body = node["content"].ToObject<string>();
            PostedOn = node["created_at"].ToObject<DateTime>();
            AuthorID = node["creator"]["id"].ToObject<int>();
            RecentComments = new List<IComment>();
            foreach (var comment in node["comments"])
            {
                RecentComments.Add(Comment.GetInstance(camp, (JObject)comment));
            }

		}
コード例 #35
0
ファイル: Company.cs プロジェクト: ridhouan/teamlab.v6.5
		private Company(IBaseCamp camp, IRestWebService service, XmlNode node)
		{
			_camp = camp;
			_service = service;
			Id = XmlHelpers.ParseInteger(node, "id");
			Name = XmlHelpers.ChildNodeText(node, "name");
			Address1 = XmlHelpers.ChildNodeText(node, "address-one");
			Address2 = XmlHelpers.ChildNodeText(node, "address-two");
			City = XmlHelpers.ChildNodeText(node, "city");
			State = XmlHelpers.ChildNodeText(node, "state");
			ZipCode = XmlHelpers.ChildNodeText(node, "zip");
			Country = XmlHelpers.ChildNodeText(node, "country");
			WebAddress = XmlHelpers.ChildNodeText(node, "web-address");
			PhoneNumberOffice = XmlHelpers.ChildNodeText(node, "phone-number-office");
			PhoneNumberFax = XmlHelpers.ChildNodeText(node, "phone-number-fax");
			TimeZoneId = XmlHelpers.ChildNodeText(node, "time-zone-id");
			CanSeePrivate = XmlHelpers.ParseBool(node, "can-see-private");
			UrlName = XmlHelpers.ChildNodeText(node, "url-name");
		}
コード例 #36
0
 private Attachment(IBaseCamp camp, XmlNode node)
 {
     _camp       = camp;
     ProjectID   = XmlHelpers.ParseInteger(node, "project-id");
     CategoryID  = XmlHelpers.ParseInteger(node, "category-id");
     AuthorID    = XmlHelpers.ParseInteger(node, "person-id");
     CreatedOn   = XmlHelpers.ParseDateTime(node, "created-on");
     ByteSize    = XmlHelpers.ParseInteger(node, "byte-size");
     Vers        = XmlHelpers.ParseInteger(node, "version");
     DownloadUrl = XmlHelpers.ChildNodeText(node, "download-url");
     Collection  = XmlHelpers.ParseInteger(node, "collection");
     //Current = XmlHelpers.ParseBool(node, "current");
     Description = XmlHelpers.ChildNodeText(node, "description");
     ID          = XmlHelpers.ParseInteger(node, "id");
     Name        = XmlHelpers.ChildNodeText(node, "name");
     OwnerID     = XmlHelpers.ParseInteger(node, "owner-id");
     OwnerType   = XmlHelpers.ChildNodeText(node, "owner-type");
     //Private = XmlHelpers.ParseBool(node, "private");
 }
コード例 #37
0
ファイル: Company.cs プロジェクト: haoasqui/ONLYOFFICE-Server
        private Company(IBaseCamp camp, IRestWebService service, JObject node)
		{
			_camp = camp;
			_service = service;
			Id = node["id"].ToObject<int>();
			Name = node["name"].ToObject<string>();
            Address1 = node["address-one"].ToObject<string>();
            Address2 = node["address-two"].ToObject<string>();
            City = node["city"].ToObject<string>();
            State = node["state"].ToObject<string>();
            ZipCode = node["zip"].ToObject<string>();
            Country = node["country"].ToObject<string>();
            WebAddress = node["web-address"].ToObject<string>();
            PhoneNumberOffice = node["phone-number-office"].ToObject<string>();
            PhoneNumberFax = node["phone-number-fax"].ToObject<string>();
            TimeZoneId = node["time-zone-id"].ToObject<string>();
            CanSeePrivate = node["can-see-private"].ToObject<bool>();
            UrlName = node["url-name"].ToObject<string>();
		}
コード例 #38
0
ファイル: Company.cs プロジェクト: julthep/CommunityServer
 private Company(IBaseCamp camp, IRestWebService service, JObject node)
 {
     _camp             = camp;
     _service          = service;
     Id                = node["id"].ToObject <int>();
     Name              = node["name"].ToObject <string>();
     Address1          = node["address-one"].ToObject <string>();
     Address2          = node["address-two"].ToObject <string>();
     City              = node["city"].ToObject <string>();
     State             = node["state"].ToObject <string>();
     ZipCode           = node["zip"].ToObject <string>();
     Country           = node["country"].ToObject <string>();
     WebAddress        = node["web-address"].ToObject <string>();
     PhoneNumberOffice = node["phone-number-office"].ToObject <string>();
     PhoneNumberFax    = node["phone-number-fax"].ToObject <string>();
     TimeZoneId        = node["time-zone-id"].ToObject <string>();
     CanSeePrivate     = node["can-see-private"].ToObject <bool>();
     UrlName           = node["url-name"].ToObject <string>();
 }
コード例 #39
0
ファイル: Post.cs プロジェクト: Wifisoft/teamlab.v6.5
 private Post(IBaseCamp camp, XmlNode node)
 {
     _camp     = camp;
     ID        = XmlHelpers.ParseInteger(node, "id");
     Title     = XmlHelpers.ChildNodeText(node, "title");
     Body      = XmlHelpers.ChildNodeText(node, "body");
     PostedOn  = XmlHelpers.ParseDateTime(node, "posted-on");
     ProjectID = XmlHelpers.ParseInteger(node, "project-id");
     //CategoryID = XmlHelpers.ParseInteger(node, "category-id");
     AuthorID = XmlHelpers.ParseInteger(node, "author-id");
     //MilestoneID = XmlHelpers.ParseInteger(node, "milestone-id");
     //CommentsCount = XmlHelpers.ParseInteger(node, "comments-count");
     //AttachmentsCount = XmlHelpers.ParseInteger(node, "attachments-count");
     //UseTextile = XmlHelpers.ParseBool(node, "use-textile");
     //ExtendedBody = XmlHelpers.ChildNodeText(node, "extended-body");
     //DisplayBody = XmlHelpers.ChildNodeText(node, "display-body");
     //DisplayExtendedBody = XmlHelpers.ChildNodeText(node, "display-extended-body");
     //Private = XmlHelpers.ParseBool(node, "private");
 }
コード例 #40
0
ファイル: Post.cs プロジェクト: ridhouan/teamlab.v6.5
		private Post(IBaseCamp camp, XmlNode node)
		{
			_camp = camp;
			ID = XmlHelpers.ParseInteger(node, "id");
			Title = XmlHelpers.ChildNodeText(node, "title");
			Body = XmlHelpers.ChildNodeText(node, "body");
			PostedOn = XmlHelpers.ParseDateTime(node, "posted-on");
			ProjectID = XmlHelpers.ParseInteger(node, "project-id");
			//CategoryID = XmlHelpers.ParseInteger(node, "category-id");
			AuthorID = XmlHelpers.ParseInteger(node, "author-id");
			//MilestoneID = XmlHelpers.ParseInteger(node, "milestone-id");
			//CommentsCount = XmlHelpers.ParseInteger(node, "comments-count");
			//AttachmentsCount = XmlHelpers.ParseInteger(node, "attachments-count");
			//UseTextile = XmlHelpers.ParseBool(node, "use-textile");
			//ExtendedBody = XmlHelpers.ChildNodeText(node, "extended-body");
			//DisplayBody = XmlHelpers.ChildNodeText(node, "display-body");
			//DisplayExtendedBody = XmlHelpers.ChildNodeText(node, "display-extended-body");
			//Private = XmlHelpers.ParseBool(node, "private");
		}
コード例 #41
0
ファイル: Attachment.cs プロジェクト: ridhouan/teamlab.v6.5
        private Attachment(IBaseCamp camp, XmlNode node)
		{
			_camp = camp;
            ProjectID = XmlHelpers.ParseInteger(node, "project-id");
            CategoryID = XmlHelpers.ParseInteger(node, "category-id");
            AuthorID = XmlHelpers.ParseInteger(node, "person-id");
            CreatedOn = XmlHelpers.ParseDateTime(node, "created-on");
            ByteSize = XmlHelpers.ParseInteger(node, "byte-size");
            Vers = XmlHelpers.ParseInteger(node, "version");
            DownloadUrl = XmlHelpers.ChildNodeText(node, "download-url");
            Collection = XmlHelpers.ParseInteger(node, "collection");
            //Current = XmlHelpers.ParseBool(node, "current");
            Description = XmlHelpers.ChildNodeText(node, "description");
            ID = XmlHelpers.ParseInteger(node, "id");
			Name = XmlHelpers.ChildNodeText(node, "name");
            OwnerID = XmlHelpers.ParseInteger(node, "owner-id");
            OwnerType = XmlHelpers.ChildNodeText(node, "owner-type");
			//Private = XmlHelpers.ParseBool(node, "private");
		}
コード例 #42
0
 private Company(IBaseCamp camp, IRestWebService service, XmlNode node)
 {
     _camp             = camp;
     _service          = service;
     Id                = XmlHelpers.ParseInteger(node, "id");
     Name              = XmlHelpers.ChildNodeText(node, "name");
     Address1          = XmlHelpers.ChildNodeText(node, "address-one");
     Address2          = XmlHelpers.ChildNodeText(node, "address-two");
     City              = XmlHelpers.ChildNodeText(node, "city");
     State             = XmlHelpers.ChildNodeText(node, "state");
     ZipCode           = XmlHelpers.ChildNodeText(node, "zip");
     Country           = XmlHelpers.ChildNodeText(node, "country");
     WebAddress        = XmlHelpers.ChildNodeText(node, "web-address");
     PhoneNumberOffice = XmlHelpers.ChildNodeText(node, "phone-number-office");
     PhoneNumberFax    = XmlHelpers.ChildNodeText(node, "phone-number-fax");
     TimeZoneId        = XmlHelpers.ChildNodeText(node, "time-zone-id");
     CanSeePrivate     = XmlHelpers.ParseBool(node, "can-see-private");
     UrlName           = XmlHelpers.ChildNodeText(node, "url-name");
 }
コード例 #43
0
ファイル: Person.cs プロジェクト: ridhouan/teamlab.v6.5
		private Person(IBaseCamp camp, XmlNode node)
		{
			_camp = camp;
			ID = XmlHelpers.ParseInteger(node, "id");
			FirstName = XmlHelpers.ChildNodeText(node, "first-name");
			LastName = XmlHelpers.ChildNodeText(node, "last-name");
			EmailAddress = XmlHelpers.ChildNodeText(node, "email-address");
			PhoneNumberOffice = XmlHelpers.ChildNodeText(node, "phone-number-office");
			PhoneNumberOfficeExt = XmlHelpers.ChildNodeText(node, "phone-number-office-ext");
			PhoneNumberMobile = XmlHelpers.ChildNodeText(node, "phone-number-mobile");
			PhoneNumberHome = XmlHelpers.ChildNodeText(node, "phone-number-home");
			PhoneNumberFax = XmlHelpers.ChildNodeText(node, "phone-number-fax");
			UserName = XmlHelpers.ChildNodeText(node, "user-name");
			Administrator = XmlHelpers.ParseBool(node, "administrator");
			Deleted = XmlHelpers.ParseBool(node, "deleted");
            Title = XmlHelpers.ChildNodeText(node, "title");
            ImService = XmlHelpers.ChildNodeText(node, "im-service");
            ImHandle = XmlHelpers.ChildNodeText(node, "im-handle");

            CanPost = XmlHelpers.ParseInteger(node, "can-post");
            HasAccessToNewProjects = XmlHelpers.ParseBool(node, "has-access-to-new-projects");
            AvatarUrl = XmlHelpers.ChildNodeText(node, "avatar-url");
		}
コード例 #44
0
ファイル: Person.cs プロジェクト: Wifisoft/teamlab.v6.5
        private Person(IBaseCamp camp, XmlNode node)
        {
            _camp                = camp;
            ID                   = XmlHelpers.ParseInteger(node, "id");
            FirstName            = XmlHelpers.ChildNodeText(node, "first-name");
            LastName             = XmlHelpers.ChildNodeText(node, "last-name");
            EmailAddress         = XmlHelpers.ChildNodeText(node, "email-address");
            PhoneNumberOffice    = XmlHelpers.ChildNodeText(node, "phone-number-office");
            PhoneNumberOfficeExt = XmlHelpers.ChildNodeText(node, "phone-number-office-ext");
            PhoneNumberMobile    = XmlHelpers.ChildNodeText(node, "phone-number-mobile");
            PhoneNumberHome      = XmlHelpers.ChildNodeText(node, "phone-number-home");
            PhoneNumberFax       = XmlHelpers.ChildNodeText(node, "phone-number-fax");
            UserName             = XmlHelpers.ChildNodeText(node, "user-name");
            Administrator        = XmlHelpers.ParseBool(node, "administrator");
            Deleted              = XmlHelpers.ParseBool(node, "deleted");
            Title                = XmlHelpers.ChildNodeText(node, "title");
            ImService            = XmlHelpers.ChildNodeText(node, "im-service");
            ImHandle             = XmlHelpers.ChildNodeText(node, "im-handle");

            CanPost = XmlHelpers.ParseInteger(node, "can-post");
            HasAccessToNewProjects = XmlHelpers.ParseBool(node, "has-access-to-new-projects");
            AvatarUrl = XmlHelpers.ChildNodeText(node, "avatar-url");
        }
コード例 #45
0
        private void SaveUsers(IBaseCamp basecampManager)
        {
            var employees = basecampManager.People;
            var step      = 100.0 / employees.Count();

            foreach (var person in employees)
            {
                try
                {
                    if (TenantExtra.GetRemainingCountUsers() <= 0)
                    {
                        _importUsersOverLimitAsCollaborators = true;
                    }

                    StatusState.StatusUserProgress(step);
                    var userID = FindUserByEmail(person.EmailAddress);

                    if (userID.Equals(Guid.Empty))
                    {
                        var userName = Regex.Replace(person.UserName, @"[!|@|#|$|%|'|+]", "");
                        var name     = userName.Split(' ');
                        var userInfo = new UserInfo
                        {
                            Email     = person.EmailAddress,
                            FirstName = name.First(),
                            LastName  = name.Count() > 1 ? name.Last() : "",
                            UserName  = userName,
                            Status    = EmployeeStatus.Active,
                        };
                        var collaboratorFlag = _importUsersOverLimitAsCollaborators || _importUsersAsCollaborators;

                        if (!UserManagerWrapper.ValidateEmail(userInfo.Email))
                        {
                            throw new Exception("Invalid email");
                        }

                        var newUserInfo = UserManagerWrapper.AddUser(userInfo, UserManagerWrapper.GeneratePassword(), false, !_disableNotifications, collaboratorFlag);
                        _newUsersID.Add(new UserIDWrapper {
                            InBasecamp = person.ID, InProjects = newUserInfo.ID
                        });

                        //save user avatar
                        const string emptyAvatar = "http://asset0.37img.com/global/default_avatar_v1_4/avatar.gif?r=3";
                        if (person.AvatarUrl != emptyAvatar)
                        {
                            UserPhotoManager.SaveOrUpdatePhoto(newUserInfo.ID, StreamFile(person.AvatarUrl));
                        }
                    }
                    else
                    {
                        _newUsersID.Add(new UserIDWrapper {
                            InBasecamp = person.ID, InProjects = userID
                        });
                    }
                }
                catch (Exception e)
                {
                    StatusState.StatusLogError(string.Format(ImportResource.FailedToSaveUser, person.EmailAddress), e);
                    LogError(string.Format("user '{0}' failed", person.EmailAddress), e);
                    _newUsersID.RemoveAll(x => x.InBasecamp == person.ID);
                }
            }
        }
コード例 #46
0
 public static ToDoList GetInstance(IBaseCamp baseCamp, JObject node, int projectID)
 {
     return(new ToDoList(baseCamp, baseCamp.Service, node, projectID));
 }
コード例 #47
0
ファイル: Company.cs プロジェクト: ridhouan/teamlab.v6.5
		public static ICompany GetInstance(IBaseCamp camp, XmlNode node)
		{
			return new Company(camp, camp.Service, node);
		}
コード例 #48
0
		public static IMilestone GetInstance(IBaseCamp camp, JObject node)
		{
			return new Milestone(camp, node);
		}
コード例 #49
0
ファイル: Milestone.cs プロジェクト: sainabob/teamlab.v7.5
 public static IMilestone GetInstance(IBaseCamp camp, JObject node)
 {
     return(new Milestone(camp, node));
 }
コード例 #50
0
ファイル: ToDoListItem.cs プロジェクト: sainabob/teamlab.v7.5
 public static IToDoListItem GetInstance(IBaseCamp camp, JObject node)
 {
     return(new ToDoListItem(camp, camp.Service, node));
 }
コード例 #51
0
        private void SaveFiles(IBaseCamp basecampManeger, IEnumerable<IAttachment> attachments, int projectID)
        {
            var step = 100.0 / attachments.Count();

            Status.LogInfo(string.Format(ImportResource.ImportFileStarted, attachments.Count()));

            //select last version
            foreach (var attachment in attachments)
            {
                Status.FileProgress += step;
                try
                {
                    var httpWReq = basecampManeger.Service.GetRequest(attachment.DownloadUrl);
                    using (var httpWResp = (HttpWebResponse)httpWReq.GetResponse())
                    {
                        if (attachment.ByteSize > SetupInfo.MaxUploadSize)
                        {
                            Status.LogError(string.Format(ImportResource.FailedSaveFileMaxSizeExided, attachment.Name), new Exception());
                            continue;
                        }

                        var file = new ASC.Files.Core.File
                            {
                                FolderID = FileEngine2.GetRoot(FindProject(projectID)),
                                Title = attachment.Name,
                                ContentLength = attachment.ByteSize,
                                CreateBy = FindUser(attachment.AuthorID),
                                CreateOn = attachment.CreatedOn.ToUniversalTime()
                            };
                        if (file.Title.LastIndexOf('\\') != -1) file.Title = file.Title.Substring(file.Title.LastIndexOf('\\') + 1);

                        file = FileEngine2.SaveFile(file, httpWResp.GetResponseStream());

                        if ("Message".Equals(attachment.OwnerType, StringComparison.OrdinalIgnoreCase))
                        {
                            try
                            {
                                var messageId = FindMessage(attachment.OwnerID);
                                FileEngine2.AttachFileToMessage(new Message {ID = messageId}, file.ID); //It's not critical 
                            }
                            catch(Exception e)
                            {
                                LogError(string.Format("not critical. attaching file '{0}' to message  failed", attachment.Name), e);
                            }
                        }

                        if ("Todo".Equals(attachment.OwnerType, StringComparison.OrdinalIgnoreCase))
                        {
                            try
                            {
                                var taskId = FindTask(attachment.OwnerID);
                                FileEngine2.AttachFileToTask(new Task {ID = taskId}, file.ID); //It's not critical 
                            }
                            catch(Exception e)
                            {
                                LogError(string.Format("not critical. attaching file '{0}' to message  failed", attachment.Name), e);
                            }
                        }

                        _newFilesID.Add(new FileIDWrapper
                            {
                                InBasecamp = attachment.ID,
                                InProjects = file.ID
                            });
                    }
                }
                catch(Exception e)
                {
                    try
                    {
                        Status.LogError(string.Format(ImportResource.FailedToSaveFile, attachment.Name), e);
                        LogError(string.Format("file '{0}' failed", attachment.Name), e);
                        _newFilesID.RemoveAll(x => x.InBasecamp == attachment.ID);
                    }
                    catch(Exception ex)
                    {
                        LogError(string.Format("file remove after error failed"), ex);
                    }
                }
            }
        }
コード例 #52
0
        private void SaveProjects(IBaseCamp basecampManager)
        {
            var projects = basecampManager.Projects;
            var step = 50.0 / projects.Count();
            var projectEngine = _engineFactory.GetProjectEngine();
            var participantEngine = _engineFactory.GetParticipantEngine();

            if (_projects.Any())
            {
                projects = projects.Where(r => _projects.Any(pr => pr == r.ID)).ToArray();
            }

            foreach (var project in projects)
            {
                try
                {
                    Status.LogInfo(string.Format(ImportResource.ImportProjectStarted, project.Name));
                    Status.ProjectProgress += step;
                    var newProject = new Project
                        {
                            Status = !project.IsClosed ? ProjectStatus.Open : ProjectStatus.Closed,
                            Title = ReplaceLineSeparator(project.Name),
                            Description = project.Description,
                            Responsible = _initiatorId,
                            Private = true
                        };

                    projectEngine.SaveOrUpdate(newProject, true);
                    Participant prt = participantEngine.GetByID(newProject.Responsible);
                    projectEngine.AddToTeam(newProject, prt, true);

                    foreach (var wrapper in
                        project.People.SelectMany(user => _newUsersID.Where(wrapper => user.ID == wrapper.InBasecamp)))
                    {
                        prt = participantEngine.GetByID(wrapper.InProjects);
                        projectEngine.AddToTeam(newProject, prt, true);

                        //check permission
                        var user = project.People.ToList().Find(p => p.ID == wrapper.InBasecamp);
                        if (user != null)
                        {
                        }
                    }
                    _newProjectsID.Add(new ProjectIDWrapper {InBasecamp = project.ID, InProjects = newProject.ID});
                }
                catch(Exception e)
                {
                    Status.LogError(string.Format(ImportResource.FailedToSaveProject, project.Name), e);
                    LogError(string.Format("project '{0}' failed", project.Name), e);
                    _newProjectsID.RemoveAll(x => x.InBasecamp == project.ID);
                }
            }

            //Select only suceeded projects
            var projectsToProcess = projects.Where(x => _newProjectsID.Count(y => y.InBasecamp == x.ID) > 0).ToList();
            step = 50.0 / projectsToProcess.Count;
            foreach (var project in projectsToProcess)
            {
                Status.LogInfo(string.Format(ImportResource.ImportProjectDataStarted, project.Name));

                Status.ProjectProgress += step;

                var messages = project.RecentMessages;
                foreach (var message in messages)
                {
                    SaveMessages(message, project.ID);
                }

                var todoLists = project.ToDoLists;
                foreach (var todoList in todoLists)
                {
                    SaveTasks(todoList, project.ID);
                }
                LogStatus("import files");
                SaveFiles(basecampManager, project.Attachments, project.ID);
            }
        }
コード例 #53
0
        private void SaveUsers(IBaseCamp basecampManager)
        {
            var employees = basecampManager.People;
            var step = 100.0 / employees.Count();
            foreach (var person in employees)
            {
                try
                {
                    if (TenantExtra.GetRemainingCountUsers() <= 0)
                    {
                        _importUsersOverLimitAsCollaborators = true;
                    }

                    Status.UserProgress += step;
                    var userID = FindUserByEmail(person.EmailAddress);

                    if (userID.Equals(Guid.Empty))
                    {
                        var userName = Regex.Replace(person.UserName, @"[!|@|#|$|%|'|+]", "");
                        var name = userName.Split(' ');
                        var userInfo = new UserInfo
                            {
                                Email = person.EmailAddress,
                                FirstName = name.First(),
                                LastName = name.Count() > 1 ? name.Last() : "",
                                UserName = userName,
                                Status = EmployeeStatus.Active,
                            };
                        var collaboratorFlag = _importUsersOverLimitAsCollaborators || _importUsersAsCollaborators;

                        if (!UserManagerWrapper.ValidateEmail(userInfo.Email)) throw new Exception("Invalid email");

                        var newUserInfo = UserManagerWrapper.AddUser(userInfo, UserManagerWrapper.GeneratePassword(), false, !_disableNotifications, collaboratorFlag);
                        _newUsersID.Add(new UserIDWrapper {InBasecamp = person.ID, InProjects = newUserInfo.ID});

                        //save user avatar
                        const string emptyAvatar = "http://asset0.37img.com/global/default_avatar_v1_4/avatar.gif?r=3";
                        if (person.AvatarUrl != emptyAvatar)
                            UserPhotoManager.SaveOrUpdatePhoto(newUserInfo.ID, StreamFile(person.AvatarUrl));
                    }
                    else
                    {
                        _newUsersID.Add(new UserIDWrapper {InBasecamp = person.ID, InProjects = userID});
                    }
                }
                catch(Exception e)
                {
                    Status.LogError(string.Format(ImportResource.FailedToSaveUser, person.EmailAddress), e);
                    LogError(string.Format("user '{0}' failed", person.EmailAddress), e);
                    _newUsersID.RemoveAll(x => x.InBasecamp == person.ID);
                }
            }
        }
コード例 #54
0
        private void SaveProjects(IBaseCamp basecampManager)
        {
            var projects          = basecampManager.Projects;
            var step              = 50.0 / projects.Count();
            var projectEngine     = _engineFactory.ProjectEngine;
            var participantEngine = _engineFactory.ParticipantEngine;

            if (_projects.Any())
            {
                projects = projects.Where(r => _projects.Any(pr => pr == r.ID)).ToArray();
            }

            foreach (var project in projects)
            {
                try
                {
                    StatusState.StatusLogInfo(string.Format(ImportResource.ImportProjectStarted, project.Name));
                    StatusState.StatusProjectProgress(step);
                    var newProject = new Project
                    {
                        Status      = !project.IsClosed ? ProjectStatus.Open : ProjectStatus.Closed,
                        Title       = ReplaceLineSeparator(project.Name),
                        Description = project.Description,
                        Responsible = _initiatorId,
                        Private     = true
                    };

                    projectEngine.SaveOrUpdate(newProject, true);
                    var prt = participantEngine.GetByID(newProject.Responsible);
                    projectEngine.AddToTeam(newProject, prt, true);

                    foreach (var wrapper in
                             project.People.SelectMany(user => _newUsersID.Where(wrapper => user.ID == wrapper.InBasecamp)))
                    {
                        prt = participantEngine.GetByID(wrapper.InProjects);
                        projectEngine.AddToTeam(newProject, prt, true);

                        //check permission
                        var user = project.People.ToList().Find(p => p.ID == wrapper.InBasecamp);
                        if (user != null)
                        {
                        }
                    }
                    _newProjectsID.Add(new ProjectIDWrapper {
                        InBasecamp = project.ID, InProjects = newProject.ID
                    });
                }
                catch (Exception e)
                {
                    StatusState.StatusLogError(string.Format(ImportResource.FailedToSaveProject, project.Name), e);
                    LogError(string.Format("project '{0}' failed", project.Name), e);
                    _newProjectsID.RemoveAll(x => x.InBasecamp == project.ID);
                }
            }

            //Select only suceeded projects
            var projectsToProcess = projects.Where(x => _newProjectsID.Count(y => y.InBasecamp == x.ID) > 0).ToList();

            step = 50.0 / projectsToProcess.Count;
            foreach (var project in projectsToProcess)
            {
                StatusState.StatusLogInfo(string.Format(ImportResource.ImportProjectDataStarted, project.Name));

                StatusState.StatusProjectProgress(step);

                var messages = project.RecentMessages;
                foreach (var message in messages)
                {
                    SaveMessages(message, project.ID);
                }

                var todoLists = project.ToDoLists;
                foreach (var todoList in todoLists)
                {
                    SaveTasks(todoList, project.ID);
                }
                LogStatus("import files");
                SaveFiles(basecampManager, project.Attachments, project.ID);
            }
        }
コード例 #55
0
        private void SaveFiles(IBaseCamp basecampManeger, IEnumerable <IAttachment> attachments, int projectID)
        {
            var step = 100.0 / attachments.Count();

            StatusState.StatusLogInfo(string.Format(ImportResource.ImportFileStarted, attachments.Count()));

            //select last version
            foreach (var attachment in attachments)
            {
                StatusState.StatusFileProgress(step);

                try
                {
                    var httpWReq = basecampManeger.Service.GetRequest(attachment.DownloadUrl);
                    using (var httpWResp = (HttpWebResponse)httpWReq.GetResponse())
                    {
                        if (attachment.ByteSize > SetupInfo.MaxUploadSize)
                        {
                            StatusState.StatusLogError(string.Format(ImportResource.FailedSaveFileMaxSizeExided, attachment.Name), new Exception());
                            continue;
                        }

                        var file = new ASC.Files.Core.File
                        {
                            FolderID      = _engineFactory.FileEngine.GetRoot(FindProject(projectID)),
                            Title         = attachment.Name,
                            ContentLength = attachment.ByteSize,
                            CreateBy      = FindUser(attachment.AuthorID),
                            CreateOn      = attachment.CreatedOn.ToUniversalTime(),
                            Comment       = ImportResource.CommentImport,
                        };
                        if (file.Title.LastIndexOf('\\') != -1)
                        {
                            file.Title = file.Title.Substring(file.Title.LastIndexOf('\\') + 1);
                        }

                        file = _engineFactory.FileEngine.SaveFile(file, httpWResp.GetResponseStream());

                        if ("Message".Equals(attachment.OwnerType, StringComparison.OrdinalIgnoreCase))
                        {
                            try
                            {
                                var messageId = FindMessage(attachment.OwnerID);
                                _engineFactory.MessageEngine.AttachFile(new Message {
                                    ID = messageId
                                }, file.ID, false);                                                                    //It's not critical
                            }
                            catch (Exception e)
                            {
                                LogError(string.Format("not critical. attaching file '{0}' to message  failed", attachment.Name), e);
                            }
                        }

                        if ("Todo".Equals(attachment.OwnerType, StringComparison.OrdinalIgnoreCase))
                        {
                            try
                            {
                                var taskId = FindTask(attachment.OwnerID);
                                _engineFactory.TaskEngine.AttachFile(new Task {
                                    ID = taskId
                                }, file.ID, false);                                                           //It's not critical
                            }
                            catch (Exception e)
                            {
                                LogError(string.Format("not critical. attaching file '{0}' to message  failed", attachment.Name), e);
                            }
                        }

                        _newFilesID.Add(new FileIDWrapper
                        {
                            InBasecamp = attachment.ID,
                            InProjects = file.ID
                        });
                    }
                }
                catch (Exception e)
                {
                    try
                    {
                        StatusState.StatusLogError(string.Format(ImportResource.FailedToSaveFile, attachment.Name), e);
                        LogError(string.Format("file '{0}' failed", attachment.Name), e);
                        _newFilesID.RemoveAll(x => x.InBasecamp == attachment.ID);
                    }
                    catch (Exception ex)
                    {
                        LogError(string.Format("file remove after error failed"), ex);
                    }
                }
            }
        }
コード例 #56
0
ファイル: Project.cs プロジェクト: haoasqui/ONLYOFFICE-Server
		public static IProject GetInstance(IBaseCamp baseCamp, JObject node)
		{
			return new Project(baseCamp, baseCamp.Service, node);
		}
コード例 #57
0
ファイル: Company.cs プロジェクト: julthep/CommunityServer
 public static ICompany GetInstance(IBaseCamp camp, JObject node)
 {
     return(new Company(camp, camp.Service, node));
 }
コード例 #58
0
ファイル: Category.cs プロジェクト: ridhouan/teamlab.v6.5
 public static ICategory GetInstance(IBaseCamp camp, XmlNode node)
 {
     return new Category(camp, node);
 }
コード例 #59
0
ファイル: Attachment.cs プロジェクト: ridhouan/teamlab.v6.5
        public static IAttachment GetInstance(IBaseCamp camp, XmlNode node)
		{
			return new Attachment(camp, node);
		}
コード例 #60
0
ファイル: Person.cs プロジェクト: haoasqui/ONLYOFFICE-Server
		public static IPerson GetInstance(IBaseCamp camp, JObject node)
		{
			return new Person(camp, node);
		}