示例#1
0
        /// <summary>
        ///     Assigns the users to a project.
        /// </summary>
        /// <param name="project_id">The project_id is the identifier of the project.</param>
        /// <param name="users_to_assign">The users_to_assign is the UsersToAssign object with user_id as mandatory attribute.</param>
        /// <returns>List of User objects.</returns>
        public UserList AssignUsers(string project_id, UsersToAssign users_to_assign)
        {
            var url        = baseAddress + "/" + project_id + "/users";
            var json       = JsonConvert.SerializeObject(users_to_assign);
            var jsonstring = new Dictionary <object, object>();

            jsonstring.Add("JSONString", json);
            var responce = ZohoHttpClient.post(url, getQueryParameters(jsonstring));

            return(ProjectParser.getUserList(responce));
        }
示例#2
0
 static void Main(string[] args)
 {
     try
     {
         var service = new ZohoBooks();
         service.initialize("{authtoken}", "{organization id}");
         var projectsApi = service.GetProjectsApi();
         var parameters  = new Dictionary <object, object>();
         parameters.Add("filter_by", "Status.Active");
         var projectsList = projectsApi.GetProjects(null);
         var projects     = projectsList;
         var projectId    = projects[0].project_id;
         foreach (var project in projects)
         {
             Console.WriteLine("{0},{1},{2}", project.project_name, project.billing_type, project.status);
         }
         var project1 = projectsApi.Get(projectId);
         Console.WriteLine("{0},{1},{2}", project1.project_name, project1.tasks.Count, project1.users.Count);
         var newPrjctInfo = new Project()
         {
             project_name = "project-test-1",
             customer_id  = project1.customer_id,
             billing_type = "fixed_cost_for_project",
             rate         = 1000,
         };
         var newProject = projectsApi.Create(newPrjctInfo);
         Console.WriteLine("{0},{1},{2}", newProject.project_name, newProject.billing_type, newProject.status);
         var updateInfo = new Project()
         {
             project_name = "project-test-updated",
         };
         var updatedprjct = projectsApi.Update(newProject.project_id, updateInfo);
         Console.WriteLine("{0},{1},{2}", updatedprjct.project_name, updatedprjct.billing_type, updatedprjct.status);
         var delprjct = projectsApi.Delete(updatedprjct.project_id);
         Console.WriteLine(delprjct);
         var inAct = projectsApi.Inactivate(projectId);
         Console.WriteLine(inAct);
         var act = projectsApi.Activate(projectId);
         Console.WriteLine(act);
         var clonePrjctInfo = new Project()
         {
             project_name = "clone-test",
             description  = "cloned for test"
         };
         var clonePrjct = projectsApi.Clone(projectId, clonePrjctInfo);
         Console.WriteLine("{0},{1},{2}", clonePrjct.project_name, clonePrjct.billing_type, clonePrjct.status);
         var parameters1 = new Dictionary <object, object>();
         var taskslist   = projectsApi.GetTasks(projectId, parameters1);
         var tasks       = taskslist;
         var taskId      = tasks[0].task_id;
         foreach (var task in tasks)
         {
             Console.WriteLine("{0},{1}", task.task_name, task.billed_hours);
         }
         var task1 = projectsApi.GetATask(projectId, taskId);
         Console.WriteLine("{0},{1}", task1.task_name, task1.rate);
         var newTaskInfo = new ProjectTask()
         {
             task_name   = "task new for test",
             description = "new task to project",
         };
         var newTask = projectsApi.AddATask(projectId, newTaskInfo);
         Console.WriteLine("{0},{1}", newTask.task_name, newTask.rate);
         var updateInfo1 = new ProjectTask()
         {
             task_name = "ta3",
         };
         var updatedTask = projectsApi.UpdateTask(projectId, newTask.task_id, updateInfo1);
         Console.WriteLine("{0},{1}", updatedTask.task_name, updatedTask.task_id);
         var delTask = projectsApi.DeleteTask(projectId, updatedTask.task_id);
         Console.WriteLine(delTask);
         var usersList = projectsApi.GetUsers(projectId);
         var users     = usersList;
         var userId    = users[0].user_id;
         foreach (var user in users)
         {
             Console.WriteLine("{0},{1},{2}", user.user_name, user.user_role, user.rate);
         }
         var user1 = projectsApi.GetAUser(projectId, userId);
         Console.WriteLine("{0},{1},{2}", user1.user_name, user1.user_role, user1.rate);
         var userstoAssign = new UsersToAssign()
         {
             users = new List <User>()
             {
                 new User()
                 {
                     user_id = userId
                 }
             }
         };
         var users1 = projectsApi.AssignUsers(projectId, userstoAssign);
         foreach (var user in users1)
         {
             Console.WriteLine("{0},{1},{2}", user.user_name, user.user_role, user.rate);
         }
         var userInfo = new User()
         {
             user_name = "name-twst",
             email     = "*****@*****.**",
             user_role = "staff"
         };
         var user2 = projectsApi.InviteUser(projectId, userInfo);
         Console.WriteLine("{0},{1},{2}", user2.user_name, user2.user_role, user2.rate);
         var updateInfo2 = new User()
         {
             user_name = "name",
             user_role = "admin"
         };
         var UpdatedUser = projectsApi.UpdateUser(projectId, user2.user_id, updateInfo2);
         Console.WriteLine("{0},{1},{2}", UpdatedUser.user_name, UpdatedUser.user_role, UpdatedUser.rate);
         var deleteUser = projectsApi.DeleteUser(projectId, UpdatedUser.user_id);
         Console.WriteLine(deleteUser);
         var parameters2     = new Dictionary <object, object>();
         var timeEntrieslist = projectsApi.GetTimeEnries(parameters2);
         var timeEntries     = timeEntrieslist;
         var timeEnteryId    = timeEntries[0].time_entry_id;
         foreach (var timeentry in timeEntries)
         {
             Console.WriteLine("time entry of id {0} for the project {1} of user {2} of log time:{3}\n", timeentry.time_entry_id, timeentry.project_name, timeentry.user_name, timeentry.log_time);
         }
         var timeentry1 = projectsApi.GetATimeEntry(timeEnteryId);
         Console.WriteLine("time entry of id {0} for the project {1} of user {2} of log time:{3}\n", timeentry1.time_entry_id, timeentry1.project_name, timeentry1.user_name, timeentry1.log_time);
         var newTimeentryInfo = new TimeEntry()
         {
             project_id = projectId,
             task_id    = taskId,
             user_id    = userId,
             log_date   = "2014-11-13",
             log_time   = "06:46"
         };
         var newTimeentry = projectsApi.LogTimeEntry(newTimeentryInfo);
         Console.WriteLine("time entry of id {0} for the project {1} of user {2} of log time:{3}\n", newTimeentry.time_entry_id, newTimeentry.project_name, newTimeentry.user_name, newTimeentry.log_time);
         var updateInfo3 = new TimeEntry()
         {
             project_id = projectId,
             user_id    = userId,
             log_time   = "02:00",
         };
         var updatedTimeEntry = projectsApi.UpdateTimeEntry(newTimeentry.time_entry_id, updateInfo3);
         Console.WriteLine("time entry of id {0} for the project {1} of user {2} of log time:{3}\n", updatedTimeEntry.time_entry_id, updatedTimeEntry.project_name, updatedTimeEntry.user_name, updatedTimeEntry.log_time);
         var deleteMsg = projectsApi.DeleteTimeEntry(updatedTimeEntry.time_entry_id);
         Console.WriteLine(deleteMsg);
         var parameters3 = new Dictionary <object, object>();
         parameters3.Add("time_entry_ids", timeEnteryId + "," + updatedTimeEntry.time_entry_id);
         var deleteEntries = projectsApi.DeleteTimeEntries(parameters3);
         Console.WriteLine(deleteEntries);
         var timer = projectsApi.GetTimer();
         Console.WriteLine("time entry of id {0} for the project {1} of user {2} of log time:{3}\n", timer.time_entry_id, timer.project_name, timer.user_name, timer.log_time);
         var timerStart = projectsApi.StartTimer(timeEnteryId);
         Console.WriteLine("time entry of id {0} for the project {1} of user {2} of log time:{3}\n", timerStart.time_entry_id, timerStart.project_name, timerStart.user_name, timerStart.log_time);
         var stopTimer = projectsApi.StopTimer();
         Console.WriteLine("time entry of id {0} for the project {1} of user {2} of log time:{3}\n", stopTimer.time_entry_id, stopTimer.project_name, stopTimer.user_name, stopTimer.log_time);
         var commentsList = projectsApi.GetComments(projectId);
         var comments     = commentsList;
         foreach (var comment in comments)
         {
             Console.WriteLine("{0},{1},{2}", comment.comment_id, comment.description, comment.commented_by);
         }
         var newCommentInfo = new Comment()
         {
             description = "manually added comment",
         };
         var newComment = projectsApi.AddComment(projectId, newCommentInfo);
         Console.WriteLine("{0},{1},{2}", newComment.comment_id, newComment.description, newComment.commented_by);
         var deleteComment = projectsApi.DeleteComment(projectId, newComment.comment_id);
         Console.WriteLine(deleteComment);
         var parameters4  = new Dictionary <object, object>();
         var invoicesList = projectsApi.GetInvoices(projectId, null);
         foreach (var invoice in invoicesList)
         {
             Console.WriteLine("{0},{1},{2}", invoice.invoice_number, invoice.total, invoice.status);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
     Console.ReadKey();
 }