57 lines
1.5 KiB
C#
57 lines
1.5 KiB
C#
|
|
using System;
|
|
using System.Net.Http.Headers;
|
|
using System.Runtime;
|
|
|
|
namespace ln.build.repositories
|
|
{
|
|
public abstract class Release
|
|
{
|
|
public string Name { get; set; }
|
|
public int Id { get; set; } = -1;
|
|
public string TagName { get; set; }
|
|
public Boolean IsDraft {get; set; }
|
|
public Boolean IsPreRelease {get; set; }
|
|
|
|
public string TargetCommit { get; set; }
|
|
|
|
public string Body { get; set; }
|
|
|
|
public abstract Repository Repository { get; }
|
|
|
|
public abstract Attachment[] GetAttachments();
|
|
|
|
public abstract Attachment CreateOrReplaceAttachment(string localPath, string remoteFileName);
|
|
|
|
public virtual Attachment FindAttachmentByName(string name)
|
|
{
|
|
foreach (Attachment attachment in GetAttachments())
|
|
if (attachment.Name.Equals(name))
|
|
return attachment;
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
public abstract class Attachment
|
|
{
|
|
public abstract Release Release { get; }
|
|
public abstract int Id { get; set; }
|
|
public abstract string Name { get; set; }
|
|
|
|
public abstract string DownloadURL { get; set; }
|
|
|
|
public Attachment()
|
|
{
|
|
}
|
|
|
|
public abstract void Create(string localPath);
|
|
public abstract void Delete();
|
|
|
|
|
|
public override bool Equals(object obj) => (obj is Attachment attachment) && Id.Equals(attachment.Id);
|
|
public override int GetHashCode() => Id.GetHashCode();
|
|
}
|
|
|
|
|
|
} |