210221PX Added gitignore, removed compilation warnings, more work on MV
This commit is contained in:
parent
2aded95f62
commit
d8b6dccae5
|
@ -0,0 +1,4 @@
|
|||
obj/
|
||||
/*.csproj.user
|
||||
.vs/
|
||||
bin/
|
|
@ -69,8 +69,23 @@ namespace dezentrale.model
|
|||
foreach (string f in files)
|
||||
message.Attachments.Add(new Attachment(f));
|
||||
|
||||
#pragma warning disable CS0618 //Suppress deprecation warning
|
||||
/* Warning CS0618: 'SmtpClient' is obsolete: 'SmtpClient
|
||||
* and its network of types are poorly designed, we strongly
|
||||
* recommend you use https://github.com/jstedfast/MailKit
|
||||
* and https://github.com/jstedfast/MimeKit instead
|
||||
* (CS0618) (dezentrale-members)
|
||||
*
|
||||
* I'm pretty much aware about this fancy new mail client
|
||||
* project by some $user, which lets me keep track of POP3 and
|
||||
* IMAP accounts and everything, but at this point I simply
|
||||
* need a possibility to send mails via SMTP, and this is a
|
||||
* feature, SmtpClient does very well, without dragging
|
||||
* dependencies to other code into our project.
|
||||
*/
|
||||
|
||||
SmtpClient client = new SmtpClient(Program.config.Smtp.Host, Program.config.Smtp.Port)
|
||||
#pragma warning restore CS0618
|
||||
{
|
||||
DeliveryMethod = SmtpDeliveryMethod.Network,
|
||||
EnableSsl = Program.config.Smtp.SSL,
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace dezentrale.model
|
|||
public string AuthCode { get; set; } = "";
|
||||
public bool AttendedMv { get; set; } = false;
|
||||
|
||||
[XmlIgnore] public string NumberString { get { return $"{MemberNumber:D3}"; } }
|
||||
[XmlIgnore] public string InvitedString { get { return Invited ? "Yes" : "No"; } }
|
||||
|
||||
private Member member = null;
|
||||
|
|
|
@ -293,17 +293,20 @@ namespace dezentrale.model.svg
|
|||
/** Tries to transform all contained path commands to absolute coordinate values */
|
||||
public void MakeAbsolute()
|
||||
{
|
||||
#pragma warning disable CS0219 // suppress unused for now, until this method is implemented better
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
#pragma warning restore CS0219
|
||||
foreach (SvgPathCommand c in CommandList)
|
||||
{
|
||||
|
||||
}
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
/** Tries to transform all contained path commands to absolute coordinate values */
|
||||
public void MakeRelative()
|
||||
{
|
||||
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void AddCommand(SvgPathCommand cmd) { CommandList.Add(cmd); }
|
||||
|
@ -312,8 +315,10 @@ namespace dezentrale.model.svg
|
|||
/**\short translates all path coordinates by (dx, dy) */
|
||||
public void Translate(double dx, double dy)
|
||||
{
|
||||
#pragma warning disable CS0219 // suppress unused for now, until this method is implemented better
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
#pragma warning restore CS0219
|
||||
foreach (SvgPathCommand cmd in CommandList)
|
||||
{
|
||||
if(!cmd.Relative)
|
||||
|
@ -321,11 +326,12 @@ namespace dezentrale.model.svg
|
|||
//cmd.Translate(dx, dy);
|
||||
}
|
||||
}
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
/**\short scales all path coordinates around the center point (cx,cy) by the factors of (fx, fy) */
|
||||
public void Scale(double cx, double cy, double fx, double fy)
|
||||
{
|
||||
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,25 +15,39 @@ namespace dezentrale.view
|
|||
{
|
||||
return new List<ConfigLVDataHandler>()
|
||||
{
|
||||
new ConfigLVDataHandler()
|
||||
{
|
||||
Name = "number",
|
||||
Display = "#",
|
||||
Width = 40,
|
||||
CustomToString = x => ((MvInvitedMember)x).NumberString,
|
||||
},
|
||||
new ConfigLVDataHandler()
|
||||
{
|
||||
Name = "nickname",
|
||||
Display = "name / nickname",
|
||||
Width = 120,
|
||||
CustomToString = x => ((MvInvitedMember)x).Member?.Nickname,
|
||||
},
|
||||
new ConfigLVDataHandler()
|
||||
{
|
||||
Name = "invited",
|
||||
Display = "Invited",
|
||||
Width = 57, TextAlign = HorizontalAlignment.Right,
|
||||
Width = 48, TextAlign = HorizontalAlignment.Right,
|
||||
CustomToString = ( x => ((MvInvitedMember)x).InvitedString),
|
||||
},
|
||||
new ConfigLVDataHandler()
|
||||
{
|
||||
Name = "date",
|
||||
Display = "Date",
|
||||
Width = 160,
|
||||
CustomToString = ( x => (((MvInvitedMember)x).InvitationDate.ToString()) ),
|
||||
Width = 130,
|
||||
CustomToString = ( x => (((MvInvitedMember)x).InvitationDate.Year > 1 ? ((MvInvitedMember)x).InvitationDate.ToString() : "-") ),
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public LvMvInvitations() : base(Program.config.MemberListColumns, LvMvInvitations_ColumnsChanged) { }
|
||||
public LvMvInvitations() : base(Program.config.MvInvitationsListColumns, LvMvInvitations_ColumnsChanged, false) { }
|
||||
|
||||
private static void LvMvInvitations_ColumnsChanged(object sender, ColumnsChangedArgs e)
|
||||
{
|
||||
|
|
|
@ -251,9 +251,17 @@ namespace dezentrale.view
|
|||
}
|
||||
|
||||
private void lstMv_New(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult res = MessageBox.Show("This will create a new MV and store it in MV list.\n", "Create new MV?", MessageBoxButtons.YesNo);
|
||||
if (res == DialogResult.Yes)
|
||||
{
|
||||
frmMv newMv = new frmMv();
|
||||
Program.mvList.Entries.Add(newMv.mv);
|
||||
Program.mvList.SaveToFile();
|
||||
newMv.ShowDialog();
|
||||
|
||||
Program.mvList.SaveToFile();
|
||||
}
|
||||
//if(newMv.DialogResult == DialogResult.OK)
|
||||
//lstMv.AddEntry(newMv.GetMv());
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace dezentrale.view
|
|||
*/
|
||||
public class frmMv : FormWithActionButtons
|
||||
{
|
||||
private Mv mv;
|
||||
public Mv mv { get; set; }
|
||||
private TabControl tabControl;
|
||||
|
||||
//private TabPage tabInvitationSettings;
|
||||
|
@ -32,8 +32,8 @@ namespace dezentrale.view
|
|||
private TextBox tbInviteHeadline;
|
||||
private TextBox tbInviteBody;
|
||||
//private TabPage tabMemberInvitation;
|
||||
//private ComboBox cbInviteSelection;
|
||||
//List with all members and invited yes|no
|
||||
private LvMvInvitations lvMvInvitations;
|
||||
//Option to invite selected|all members
|
||||
//private TabPage tabRunningMv;
|
||||
//List with invited members with authenticated status
|
||||
|
@ -203,6 +203,11 @@ namespace dezentrale.view
|
|||
//Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom,
|
||||
};
|
||||
split.Panel1.Controls.Add(grpInvitations);
|
||||
|
||||
grpInvitations.Controls.Add(lvMvInvitations = new LvMvInvitations()
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
});
|
||||
GroupBox grpPreview = new GroupBox()
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
|
@ -210,6 +215,7 @@ namespace dezentrale.view
|
|||
Width = 500,
|
||||
//Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom,
|
||||
};
|
||||
|
||||
split.Panel2.Controls.Add(grpPreview);
|
||||
|
||||
grpInvitations.Controls.Add(null);
|
||||
|
@ -290,7 +296,36 @@ namespace dezentrale.view
|
|||
UpdateButtons();
|
||||
programmaticChange = false;
|
||||
RefreshPreview();
|
||||
|
||||
|
||||
//for new MV, we want to keep the member list up-to-date in order
|
||||
//to be able to invite new members even if their membership status
|
||||
//becomes active after MV entry was generated. The other way round,
|
||||
//entries with no (or inactive) member reference will not be
|
||||
//removed (documentation purposes)
|
||||
if (this.mv.Status < Mv.MvStatus.Started)
|
||||
{
|
||||
foreach (Member m in Program.members.Entries)
|
||||
{
|
||||
if (m.Status == Member.eStatus.Active)
|
||||
{
|
||||
//find invitation entry
|
||||
if(this.mv.Invited.Find((x) => x.MemberNumber == m.Number) == null)
|
||||
//if there is none, create one
|
||||
{
|
||||
this.mv.Invited.Add(new MvInvitedMember()
|
||||
{
|
||||
MemberNumber = m.Number,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach(MvInvitedMember mvi in this.mv.Invited)
|
||||
lvMvInvitations.AddEntry(mvi);
|
||||
}
|
||||
|
||||
public frmMv(Mv mv)
|
||||
{
|
||||
this.mv = mv;
|
||||
|
@ -327,9 +362,9 @@ namespace dezentrale.view
|
|||
*/
|
||||
this.Close();
|
||||
}
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
// private void btnCancel_Click(object sender, EventArgs e)
|
||||
// {
|
||||
// this.Close();
|
||||
// }
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue