210314PX Started adaption and integration of MvInvitationProcess, created a LogEvent for MV FillDefaults()
This commit is contained in:
parent
dc77c0c4f7
commit
bcfcfa5750
|
@ -33,12 +33,12 @@ namespace dezentrale.core
|
|||
|
||||
public class MvInvitationProcess : BackgroundProcess
|
||||
{
|
||||
private IMvInvitationData data = null;
|
||||
private List<Member> memberList = null;
|
||||
private Mv mv= null;
|
||||
private List<MvInvitedMember> memberList = null;
|
||||
|
||||
public MvInvitationProcess(IMvInvitationData data, List<Member> memberList)
|
||||
public MvInvitationProcess(Mv mv, List<MvInvitedMember> memberList)
|
||||
{
|
||||
this.data = data;
|
||||
this.mv = mv;
|
||||
this.memberList = memberList;
|
||||
|
||||
Caption = "Send MV invitation E-Mails";
|
||||
|
@ -62,13 +62,13 @@ namespace dezentrale.core
|
|||
protected override bool Run()
|
||||
{
|
||||
uint step = 0;
|
||||
foreach (Member m in memberList)
|
||||
foreach (MvInvitedMember m in memberList)
|
||||
{
|
||||
step++;
|
||||
try
|
||||
{
|
||||
LogTarget.LogLine($"Processing member {m.Nickname}...", LogEvent.ELogLevel.Info, "MvInvitationProcess");
|
||||
LogTarget.StepStarted(step, $"Sending mail for member {m.Nickname}");
|
||||
LogTarget.LogLine($"Processing member {m.Member.NumberString} - {m.Member.Nickname}...", LogEvent.ELogLevel.Info, "MvInvitationProcess");
|
||||
LogTarget.StepStarted(step, $"Sending mail for member {m.Member.Nickname}");
|
||||
|
||||
m.StartLogEvent("MvInvitationProcess", LogEvent.eEventType.EMail, Program.config.LocalUser);
|
||||
m.MvAuthenticationCode = RandomString(10);
|
||||
|
|
|
@ -91,6 +91,8 @@ namespace dezentrale.model
|
|||
while (dtSuggested.DayOfWeek != DayOfWeek.Sunday)
|
||||
dtSuggested = dtSuggested.Add(new TimeSpan(1, 0, 0, 0));
|
||||
|
||||
StartLogEvent("MV contents set to its default values", LogEvent.eEventType.DataChange);
|
||||
SuppressLogging = true;
|
||||
Status = MvStatus.InPreparation;
|
||||
EventDate = new DateTime(dtSuggested.Year, dtSuggested.Month, dtSuggested.Day, 15, 0, 0);
|
||||
Place = "Räumlichkeiten des dezentrale e.V., Dreilindenstr. 19, 04177 Leipzig";
|
||||
|
@ -121,6 +123,9 @@ namespace dezentrale.model
|
|||
+ " regulärem Mitglied am Anfang jeder MV. Fördermitglieder stimmen nicht\n"
|
||||
+ " mit ab und fallen daher aus dem Quorum (51%) raus. Der Vorstand kann\n"
|
||||
+ " Auskunft über Deinen Mitgliedsstatus geben.";
|
||||
Members.Clear();
|
||||
SuppressLogging = true;
|
||||
FinishLogEvent();
|
||||
}
|
||||
|
||||
public FormMail GetInvitationMail(Member m = null, string authCode = null)
|
||||
|
|
|
@ -195,8 +195,8 @@ namespace dezentrale.view
|
|||
MemberDir = Program.config.DbDirectory,
|
||||
OutputDir = Program.DmDirectory,
|
||||
};
|
||||
frmProcessWithLog frmImport = new frmProcessWithLog(export, false);
|
||||
frmImport.ShowDialog();
|
||||
frmProcessWithLog frmExport = new frmProcessWithLog(export, false);
|
||||
frmExport.ShowDialog();
|
||||
}
|
||||
|
||||
private void mnuMain_File_Import(object sender, EventArgs e)
|
||||
|
|
|
@ -60,15 +60,19 @@ namespace dezentrale.view
|
|||
TabPage selectedTab = tabControl.SelectedTab;
|
||||
if(selectedTab == tabInvitationSettings)
|
||||
{
|
||||
Button btn =
|
||||
AddButton("Your advert here", null);
|
||||
btn.Enabled = (this.mv.Status == Mv.MvStatus.InPreparation || this.mv.Status == Mv.MvStatus.InvitationSent);
|
||||
|
||||
} else if(selectedTab == tabMemberInvitation)
|
||||
{
|
||||
AddButton("Invite selected", null);
|
||||
Button
|
||||
btn = AddButton("Invite selected", btnInviteSelected_Click);
|
||||
btn = AddButton("Invite all", btnInviteAll_Click);
|
||||
btn.Enabled = (this.mv.Status == Mv.MvStatus.InPreparation || this.mv.Status == Mv.MvStatus.InvitationSent);
|
||||
} else if(selectedTab == tabRunningMv)
|
||||
{
|
||||
|
||||
} else if(selectedTab == tabLog)
|
||||
{
|
||||
|
||||
}
|
||||
AddButton("Close", btnClose_Click);
|
||||
|
||||
|
@ -92,6 +96,67 @@ namespace dezentrale.view
|
|||
}
|
||||
}
|
||||
|
||||
private void DoInvitation(List<MvInvitedMember> mvMembers)
|
||||
{
|
||||
if(mvMembers == null || mvMembers.Count < 1)
|
||||
{
|
||||
MessageBox.Show("No members to invite!");
|
||||
return;
|
||||
}
|
||||
//in order not to overwrite existing data, we're working on a non-deep copy here
|
||||
List<MvInvitedMember> inv = new List<MvInvitedMember>(mvMembers);
|
||||
|
||||
//find non-active members
|
||||
string subListString = "";
|
||||
List<MvInvitedMember> subList = new List<MvInvitedMember>();
|
||||
foreach(MvInvitedMember mvi in inv)
|
||||
{
|
||||
if(mvi.Member.Status != Member.eStatus.Active)
|
||||
{
|
||||
subListString += $"{mvi.Member.NumberString} - {mvi.Member.Nickname}";
|
||||
subList.Add(mvi);
|
||||
}
|
||||
}
|
||||
if(subList.Count > 0)
|
||||
{
|
||||
DialogResult res = MessageBox.Show($"There are {subList.Count} non-active members which will be skipped:\r\n{subListString}\r\n\r\nProceed?", "Skip non-active members?", MessageBoxButtons.OKCancel);
|
||||
if (res == DialogResult.Cancel) return;
|
||||
//I know this iteration is inefficient, but should do the trick for normal eV business.
|
||||
foreach (MvInvitedMember mvi in subList) inv.Remove(mvi);
|
||||
}
|
||||
subListString = "";
|
||||
subList.Clear();
|
||||
foreach(MvInvitedMember mvi in inv)
|
||||
{
|
||||
if(mvi.Invited)
|
||||
{
|
||||
subListString += $"{mvi.Member.NumberString} - {mvi.Member.Nickname}";
|
||||
subList.Add(mvi);
|
||||
}
|
||||
}
|
||||
|
||||
if (subList.Count > 0)
|
||||
{
|
||||
DialogResult res = MessageBox.Show($"There are {subList.Count} already-invited members:\r\n{subListString}\r\n\r\nInvite them again?", "Invite members again?", MessageBoxButtons.YesNoCancel);
|
||||
if (res == DialogResult.Cancel) return;
|
||||
//I know this iteration is inefficient, but should do the trick for normal eV business.
|
||||
if (res == DialogResult.Yes)
|
||||
foreach (MvInvitedMember mvi in subList) inv.Remove(mvi);
|
||||
}
|
||||
|
||||
//Spawn invitation process window and run process
|
||||
MvInvitationProcess invProcess = new MvInvitationProcess(this.mv, inv);
|
||||
frmProcessWithLog frmInvProcess = new frmProcessWithLog(invProcess, true);
|
||||
frmInvProcess.ShowDialog();
|
||||
}
|
||||
private void btnInviteSelected_Click(object sender, EventArgs e)
|
||||
{
|
||||
DoInvitation(lvMvInvitations.GetSelectedItems());
|
||||
}
|
||||
private void btnInviteAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
DoInvitation(this.mv.Members);
|
||||
}
|
||||
private void RefreshPreview()
|
||||
{
|
||||
Console.WriteLine("frmMv.RefreshPreview()");
|
||||
|
@ -402,9 +467,7 @@ namespace dezentrale.view
|
|||
public frmMv()
|
||||
{
|
||||
this.mv = new Mv();
|
||||
this.mv.SuppressLogging = true;
|
||||
this.mv.FillDefaults();
|
||||
this.mv.SuppressLogging = false;
|
||||
Init();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue