protected override async Task Save() { try { if (string.IsNullOrEmpty(Title)) throw new Exception("Issue must have a title!"); var createIssueModel = new CreateIssueModel { Title = Title, Content = Content ?? string.Empty, Responsible = AssignedTo != null ? AssignedTo.Username : string.Empty, Milestone = Milestone ?? string.Empty, Component = Component ?? string.Empty, Version = Version ?? string.Empty, Kind = Kind.ToLower(), Status = Status.ToLower(), Priority = Priority.ToLower(), }; IsSaving = true; var data = await Task.Run(() => this.GetApplication().Client.Users[Username].Repositories[Repository].Issues[Issue.LocalId].Update(createIssueModel)); Messenger.Publish(new IssueEditMessage(this) { Issue = data }); ChangePresentation(new MvxClosePresentationHint(this)); } catch (Exception e) { DisplayAlert("Unable to save the issue: " + e.Message); } finally { IsSaving = false; } }
private CreateIssueModel CreateRequest() { var issue = new CreateIssueModel { Title = _title.Value, Content = _content.Value, Kind = _issueType.Value.ToLower(), Priority = _priority.Value.ToLower(), Responsible = _assignedTo.Value.Equals(Unassigned) ? null : _assignedTo.Value.ToLower(), Status = _status == null ? null : _status.Value.ToLower(), Version = (_version == null || _version.Value.Equals(None)) ? null : _version.Value, Component = (_component == null || _component.Value.Equals(None)) ? null : _component.Value, Milestone = (_milestone == null || _milestone.Value.Equals(None)) ? null : _milestone.Value, }; //Nullify them if they are the same... if (ExistingIssue != null) { if (Equals(issue.Title, ExistingIssue.Title)) issue.Title = null; if (Equals(issue.Content, ExistingIssue.Content)) issue.Content = null; if (Equals(issue.Kind, ExistingIssue.Metadata.Kind)) issue.Kind = null; if (Equals(issue.Priority, ExistingIssue.Priority)) issue.Priority = null; if (Equals(issue.Responsible, ExistingIssue.Responsible)) issue.Responsible = null; if (Equals(issue.Status, ExistingIssue.Status)) issue.Status = null; //Component shit if (Equals(issue.Version, ExistingIssue.Metadata.Version)) issue.Version = null; else if (issue.Version == null) issue.Version = string.Empty; if (Equals(issue.Component, ExistingIssue.Metadata.Component)) issue.Component = null; else if (issue.Component == null) issue.Component = string.Empty; if (Equals(issue.Milestone, ExistingIssue.Metadata.Milestone)) issue.Milestone = null; else if (issue.Milestone == null) issue.Milestone = string.Empty; } return issue; }
/// <summary> /// Create a new issue for this repository /// </summary> /// <param name="issue">The issue model to create</param> /// <returns></returns> public IssueModel Create(CreateIssueModel issue) { return Client.Post<IssueModel>(Uri, issue.Serialize()); }
/// <summary> /// Updates an issue /// </summary> /// <param name="issue">The issue model</param> /// <returns></returns> public IssueModel Update(CreateIssueModel issue) { return Update(ObjectToDictionaryConverter.Convert(issue)); }