public TimeSheetDetailViewModel(WorklogResponse worklog) { this.worklog = worklog; UpdateTimesheetCommand = new Command(UpdateTimesheet); ConfirmTimesheetCommand = new Command(ConfirmTimesheet); confirmed = Convert.ToBoolean(worklog.Confirmed); }
public List <WorklogResponse> WorklogsForPeriod(OrganizationResponse organization, DateTime from, DateTime to) { try { if (organization != null) { List <WorklogResponse> worklogs = new List <WorklogResponse>(); var client = new HttpClient(); var path = string.Format(Properties.Resources.SwaggerUrl + "/users/current/worklogs?from={0}&to={1}", string.Format("{0:yyyy-MM-dd}", from), string.Format("{0:yyyy-MM-dd}", to)); client.Timeout = new TimeSpan(0, 0, 5); client.DefaultRequestHeaders.Add("Authorization", "Bearer " + App.Token); var request = client.GetAsync(path); var result = request.Result; string content = result.Content.ReadAsStringAsync().Result; var json = JArray.Parse(content); foreach (var worklog in json) { var organizationLocal = OrgApi.GetOrgApi().GetOrganization(worklog["activity"]["project"]["organization"]["id"].ToString()); if (organizationLocal.Id == organization.Id) { var project = OrgApi.GetOrgApi().GetProject(organization.Id, Convert.ToInt64(worklog["activity"]["project"]["id"])); if (project != null) { var activity = new ActivityResponse(Convert.ToInt64(worklog["activity"]["id"]), worklog["activity"]["name"].ToString(), worklog["activity"]["description"].ToString(), Convert.ToBoolean(worklog["activity"]["billable"].ToString()), project); var workLogLocal = new WorklogResponse(Convert.ToInt32(worklog["id"]), worklog["userId"].ToString(), activity, Convert.ToDateTime(worklog["day"]), Convert.ToInt32(worklog["loggedMinutes"]), Convert.ToBoolean(worklog["confirmed"])); worklogs.Add(workLogLocal); } } } return(worklogs.OrderByDescending(w => w.Day).ToList()); } else { return(new List <WorklogResponse>()); } } catch (ApiException ex) { Popup.ShowPopupError(ex.Message); return(new List <WorklogResponse>()); } catch (Exception ex) { Popup.ShowPopupError(ex.Message); return(new List <WorklogResponse>()); } }
public TimesheetViewModel(WorklogResponse worklog) { tsService = new TSService(); userService = new UserService(); date = worklog.Day; hours = Math.Round(Convert.ToDecimal(worklog.LoggedMinutes) / 60, 2); UpdateTimesheetCommand = new Command(UpdateTimesheet); update = true; if (worklog.Activity.Project != null && worklog.Activity.Project.Organization != null) { selectedOrganization = worklog.Activity.Project.Organization; selectedProject = worklog.Activity.Project; selectedActivity = worklog.Activity; } this.worklog = worklog; }
public bool UpdateWorklog(WorklogResponse worklog, long?loggedMinutes, string day, OrganizationResponse organization, ProjectResponse project, ActivityResponse activity) { try { var updateWorklogrequest = new UpdateWorklogRequest(worklog.Id, UserApi.GetUserApi().GetCurrentUser().Id, day, loggedMinutes, true); var response = OrgApi.GetOrgApi().UpdateWorklogWithHttpInfo(organization.Id, project.Id, activity.Id, worklog.Id, updateWorklogrequest); if (response.StatusCode == 200) { return(true); } else { throw new ApiException(); } } catch (ApiException ex) { if (ex.ErrorCode == 404) { var json = JObject.Parse(ex.ErrorContent); string errorCode = json["errorCode"]; if (errorCode == "6004") { Popup.ShowPopupError("Activity not found"); return(false); } else { string message = json["message"]; Popup.ShowPopupError(message); return(false); } } Popup.ShowPopupError(ex.Message); return(false); } catch (Exception ex) { Popup.ShowPopupError(ex.Message); return(false); } }
public TimesheetDetailPage(WorklogResponse worklog) { InitializeComponent(); BindingContext = new TimeSheetDetailViewModel(worklog); }
public TsEntryPage(WorklogResponse worklog) { InitializeComponent(); BindingContext = new TimesheetViewModel(worklog); }