コード例 #1
0
		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;
            }
		}
コード例 #2
0
        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;
        }
コード例 #3
0
 /// <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());
 }
コード例 #4
0
 /// <summary>
 /// Updates an issue
 /// </summary>
 /// <param name="issue">The issue model</param>
 /// <returns></returns>
 public IssueModel Update(CreateIssueModel issue)
 {
     return Update(ObjectToDictionaryConverter.Convert(issue));
 }