public static void IndsaetXNytMedlem(int X, MedlemsstatusEnum? forceretStatus = null) { using (ArkDatabase db = new ArkDatabase()) { for (int i = 0; i < X; i++) { Medlem medlem = new Medlem() { Adresse = "Adresse" + _nytMedlemsNummer, AdresseBy = "By" + _nytMedlemsNummer, AdressePostNummer = _nytMedlemsNummer.ToString(), ArkID = _nytMedlemsNummer, EMailAdresse = "EMail" + _nytMedlemsNummer, Foedselsdato = new DateTime(1977 + _nytMedlemsNummer, 1, 1), Koen = (_nytMedlemsNummer % 2 == 0 ? KoenEnum.Mand : KoenEnum.Kvinde), MobilNummer = (22220000 + _nytMedlemsNummer).ToString(), Navn = "Navn" + _nytMedlemsNummer, Status = (forceretStatus.HasValue ? forceretStatus.Value : (MedlemsstatusEnum)((_nytMedlemsNummer % 3) + 2)), Rostatistik = new Rostatistik() }; _nytMedlemsNummer++; db.Medlems.Add(medlem); } db.SaveChanges(); } }
public static void OpdaterMedlemStatus(int arkID, MedlemsstatusEnum nyStatus) { using (ArkDatabase db = new ArkDatabase()) { Medlem medlem = db.Medlems.FirstOrDefault(medlemItem => medlemItem.ArkID == arkID); medlem.Status = nyStatus; db.SaveChanges(); } }
public static void IndsaetNRegnskabsmedlemmerIRegnskabsmedlemsManagerOgSynkroniser(RegnskabsmedlemsManagerUnitTest regnskabsmedlemsManager, int N, MedlemsstatusEnum? forceretRegnskabsmedlemStatus = null) { int antalNyeEntiteter = N; for (int i = 0; i < antalNyeEntiteter; i++) { regnskabsmedlemsManager.LavNytRegnskabsmedlem(forceretRegnskabsmedlemStatus); } (new MedlemmerManager()).SynkroniserRegnskabsmedlemmerOgMedlemmer(false); }
public RegnskabsmedlemDTO LavNytRegnskabsmedlem(MedlemsstatusEnum? forceretStatus = null) { RegnskabsmedlemDTO medlem = new RegnskabsmedlemDTO() { Adresse = "Adresse" + _regnskabsmedlemNummer, AdresseBy = "By" + _regnskabsmedlemNummer, AdressePostNummer = _regnskabsmedlemNummer.ToString(), ArkID = _regnskabsmedlemNummer, EMailAdresse = "EMail" + _regnskabsmedlemNummer, Foedselsdato = new DateTime(1977 + _regnskabsmedlemNummer, 1, 1), Koen = (_regnskabsmedlemNummer % 2 == 0 ? KoenEnum.Mand : KoenEnum.Kvinde), MobilNummer = (22220000 + _regnskabsmedlemNummer).ToString(), Navn = "Navn" + _regnskabsmedlemNummer, Status = (forceretStatus.HasValue ? forceretStatus.Value : (MedlemsstatusEnum)((_regnskabsmedlemNummer % 3) + 2)) }; _regnskabsmedlemNummer++; Regnskabsmedlemmer.Add(medlem); return medlem; }
public static void OpdaterMedlemStatusOgNavn(int arkID, MedlemsstatusEnum nyStatus, string nytNavn) { using (ArkDatabase db = new ArkDatabase()) { Medlem medlem = db.Medlems.FirstOrDefault(medlemItem => medlemItem.ArkID == arkID); medlem.Status = nyStatus; medlem.Navn = nytNavn; db.SaveChanges(); } }
public void SynkroniserRegnskabsmedlemmerOgMedlemmer(bool validerLaesteRegnskabsmedlemmer = true) { StringBuilder logBeskedBygger = new StringBuilder(); //¤¤¤ Tegnforklaring //¤¤¤ Tekst som står efter '//¤¤¤' er en kommentar //¤¤¤ Tekst som står efter '//' skal konverteres til kode //¤¤¤ Tre entiteter er vigtige i denne sammenhæng: //¤¤¤ Regnskabsmedlem: Læst direkte i regnskabssystemet //¤¤¤ KendtRegnskabsmedlem: Persisteret data fra siste gang regnskabssystemet leverede et opdateret Regnskabsmedlem //¤¤¤ Medlem: Brugeren (aktiveret eller ej) af websitet. //¤¤¤ //¤¤¤ Disse tre entiteter har datafelter til fælles som defineret i ARK.Website.Common.RegnskabsmedlemDTO //¤¤¤ At to entiteter er ens betyder at datafelterne alle har samme værdi //¤¤¤ Status er vigtig i denne sammenhæng (ARK.Website.Common.Enum.MedlemsstatusEnum) //¤¤¤ Værdi IkkeAktiveret: Bruger som kan tilgå logbog og kan ses på websitet, men som aldrig har været logget på websitet //¤¤¤ Værdi Aktiv: Bruger som kan tilgå logbog og website //¤¤¤ Værdi Inaktiv: Bruger som kan tilgå website men ikke skrive til logbog (kan ikke få lov at ro/padle) //¤¤¤ Værdi Gammel: Bruger som kan tilgå hverken website eller logbog, men som stadig figurerer i rostatistik og website historik List <RegnskabsmedlemDTO> regnskabsmedlemmer = new List <RegnskabsmedlemDTO>(); try { regnskabsmedlemmer = KomponentManager.RegnskabsmedlemsManager.HentRegnskabsmedlemmer(); } catch (Exception exception) { logBeskedBygger.AppendLine("Læsning af regnskabsmedlemmer fejlede: " + exception.ToString() + Environment.NewLine); } //¤¤¤ Valider regnskabsmedlemmer så forfejlede retursvar ikke fortsætter. Kunne eksempelvis være antallet af læste aktive regnskabsmedlemmer int antalAktiveRegnskabsmedlemmer = regnskabsmedlemmer.Count(medlemsItem => medlemsItem.Status == Common.Enum.MedlemsstatusEnum.Aktiv); bool erRegnskabsmedlemmerLaesningValid = true; if (validerLaesteRegnskabsmedlemmer) { ErRegnskabsmedlemmerLaesningValid(regnskabsmedlemmer); } logBeskedBygger.AppendLine("Regnskabsmedlemmer læst: [Valid læsning:" + erRegnskabsmedlemmerLaesningValid + ";Antal:" + regnskabsmedlemmer.Count + ";Medlemsstatus-Aktiv:" + antalAktiveRegnskabsmedlemmer + "]" + Environment.NewLine); StringBuilder opdateretMedlemsbesked = new StringBuilder(); if (erRegnskabsmedlemmerLaesningValid) { using (ARK.Website.EntityFramework.Main.ArkDatabase db = new EntityFramework.Main.ArkDatabase()) { List <Medlem> medlemmer = db.Medlems.ToList(); List <Regnskabsmedlem> kendteRegnskabsmedlemmer = db.Regnskabsmedlems.ToList(); foreach (RegnskabsmedlemDTO regnskabsmedlem in regnskabsmedlemmer) { bool erOpdateret = false; opdateretMedlemsbesked.Clear(); int arkID = regnskabsmedlem.ArkID; opdateretMedlemsbesked.AppendLine("Regnskabsmedlem ArkID = " + arkID); try { Regnskabsmedlem kendtRegnskabsmedlem = kendteRegnskabsmedlemmer.FirstOrDefault(regnskabsmedlemItem => regnskabsmedlemItem.ArkID == arkID); Medlem medlem = medlemmer.FirstOrDefault(medlemItem => medlemItem.ArkID == arkID); if (medlem == null || kendtRegnskabsmedlem == null) { if (medlem != null || kendtRegnskabsmedlem != null) { throw new Exception("Fejl i modellen [ArkID=" + arkID + "]: Medlem = " + (medlem == null ? "Null" : "Not Null") + "; KendtRegnskabsmedlem = " + (kendtRegnskabsmedlem == null ? "Null" : "Not Null")); } } if (medlem != null) { //¤¤¤ Endnu ikke aktiverede medlemmer holdes synkrone med regnskabssystemet //¤¤¤ Gamle medlemmer, som kommmer tilbage i systemet, bliver behandlet som nye MedlemsstatusEnum oprindeligMedlemsstatus = medlem.Status; MedlemsstatusEnum oprindeligKendtRegnskabsmedlemsstatus = kendtRegnskabsmedlem.Status; bool medlemsdataOverskrevet = false; bool kendtRegnskabsmedlemsdataOverskrevet = false; bool regnskabsmedlemDataEns = HarRegnskabsmedlemOgKendtRegnskabsmedlemSammeData(regnskabsmedlem, kendtRegnskabsmedlem); if (!regnskabsmedlemDataEns) { #region Opdatering af eksisterende Medlem og KendtRegnskabsmedlem data switch (regnskabsmedlem.Status) { case MedlemsstatusEnum.Aktiv: { switch (oprindeligMedlemsstatus) { case MedlemsstatusEnum.Aktiv: { //Håndteret af bruger logon } break; case MedlemsstatusEnum.Inaktiv: { //Status i Regnskabsmedlem - tabellen skal opdateres //Resten af ændringer i regnskabsmedlemsdata skal håndteres af bruger logon kendtRegnskabsmedlem.Status = regnskabsmedlem.Status; medlem.Status = regnskabsmedlem.Status; } break; case MedlemsstatusEnum.IkkeAktiveret: case MedlemsstatusEnum.Gammel: { OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, kendtRegnskabsmedlem); OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, medlem); medlem.Status = MedlemsstatusEnum.IkkeAktiveret; medlemsdataOverskrevet = true; kendtRegnskabsmedlemsdataOverskrevet = true; } break; default: { throw new NotSupportedException("Medlem.Status = " + oprindeligMedlemsstatus); } } } break; case MedlemsstatusEnum.Inaktiv: { switch (oprindeligMedlemsstatus) { case MedlemsstatusEnum.Inaktiv: { //Håndteret af bruger logon } break; case MedlemsstatusEnum.Aktiv: { //Status i Regnskabsmedlem - tabellen skal opdateres //Resten af ændringer i regnskabsmedlemsdata skal håndteres af bruger logon kendtRegnskabsmedlem.Status = regnskabsmedlem.Status; medlem.Status = regnskabsmedlem.Status; } break; case MedlemsstatusEnum.IkkeAktiveret: case MedlemsstatusEnum.Gammel: { OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, kendtRegnskabsmedlem); OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, medlem); medlem.Status = MedlemsstatusEnum.IkkeAktiveret; medlemsdataOverskrevet = true; kendtRegnskabsmedlemsdataOverskrevet = true; } break; default: { throw new NotSupportedException("Medlem.Status = " + oprindeligMedlemsstatus); } } } break; case MedlemsstatusEnum.Gammel: { switch (oprindeligMedlemsstatus) { case MedlemsstatusEnum.IkkeAktiveret: { OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, kendtRegnskabsmedlem); OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, medlem); medlemsdataOverskrevet = true; kendtRegnskabsmedlemsdataOverskrevet = true; } break; case MedlemsstatusEnum.Aktiv: case MedlemsstatusEnum.Inaktiv: case MedlemsstatusEnum.Gammel: { OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, kendtRegnskabsmedlem); medlem.Status = regnskabsmedlem.Status; kendtRegnskabsmedlemsdataOverskrevet = true; } break; default: { throw new NotSupportedException("Medlem.Status = " + oprindeligMedlemsstatus); } } } break; default: { throw new NotSupportedException("Regnskabsmedlem.Status = " + regnskabsmedlem.Status); } } #endregion } #region Logbesked generering if (medlemsdataOverskrevet) { opdateretMedlemsbesked.AppendLine("EKSISTERENDE MEDLEM OVERSKREVET FRA REGNSKABSSYSTEMET"); erOpdateret = true; } if (medlem.Status != oprindeligMedlemsstatus) { opdateretMedlemsbesked.AppendLine("MEDLEMSSTATUS ÆNDRET " + oprindeligMedlemsstatus + "=>" + medlem.Status); erOpdateret = true; } if (kendtRegnskabsmedlemsdataOverskrevet) { opdateretMedlemsbesked.AppendLine("KENDT REGNSKABSMEDLEM OVERSKREVET FRA REGNSKABSSYSTEMET"); erOpdateret = true; } if (kendtRegnskabsmedlem.Status != oprindeligKendtRegnskabsmedlemsstatus && !kendtRegnskabsmedlemsdataOverskrevet) { opdateretMedlemsbesked.AppendLine("KENDT REGNSKABSMEDLEM STATUS ÆNDRET " + oprindeligKendtRegnskabsmedlemsstatus + "=>" + kendtRegnskabsmedlem.Status); erOpdateret = true; } #endregion } else { #region Oprettelse af nyt Medlem og tilhørende KendtRegnskabsmedlem medlem = new Medlem(); medlem.Rostatistik = new Rostatistik(); db.Medlems.Add(medlem); kendtRegnskabsmedlem = new Regnskabsmedlem(); db.Regnskabsmedlems.Add(kendtRegnskabsmedlem); OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, medlem); OverskrivMedRegnskabsmedlemsdata(regnskabsmedlem, kendtRegnskabsmedlem); if (regnskabsmedlem.Status != MedlemsstatusEnum.Gammel) { medlem.Status = MedlemsstatusEnum.IkkeAktiveret; } else { medlem.Status = MedlemsstatusEnum.Gammel; } #endregion erOpdateret = true; opdateretMedlemsbesked.AppendLine("NYT MEDLEM - STATUS = " + medlem.Status); } if (erOpdateret) { logBeskedBygger.AppendLine(opdateretMedlemsbesked.ToString()); } db.SaveChanges(); } catch (Exception exception) { logBeskedBygger.AppendLine("Fejl under kørsel af medlem ArkID = " + arkID + Environment.NewLine + exception.ToString() + Environment.NewLine); } } try { //¤¤¤ de medlemmer som ikke længere får returneret et tilhørende regnskabsmedlem overgår til status gammel. foreach (Medlem medlem in medlemmer.Where(medlemItem => medlemItem.Status != MedlemsstatusEnum.Gammel)) { int arkID = medlem.ArkID; RegnskabsmedlemDTO regnskabsmedlem = regnskabsmedlemmer.FirstOrDefault(regnskabsmedlemItem => regnskabsmedlemItem.ArkID == arkID); if (regnskabsmedlem == null) { MedlemsstatusEnum oprindeligMedlemsstatus = medlem.Status; medlem.Status = MedlemsstatusEnum.Gammel; opdateretMedlemsbesked.AppendLine("Regnskabsmedlem ArkID = " + arkID); opdateretMedlemsbesked.AppendLine("Regnskabsmedlem ikke eksisterende"); opdateretMedlemsbesked.AppendLine("MEDLEMSSTATUS ÆNDRET " + oprindeligMedlemsstatus + "=>" + medlem.Status); } } db.SaveChanges(); } catch (Exception exception) { logBeskedBygger.AppendLine("Fejl ved ændring af medlemmer status Gammel ved manglende regnskabsmedlem" + Environment.NewLine + exception.ToString() + Environment.NewLine); } } } KomponentManager.LoggingManager.LogBesked(SYNKRONISERING_REGNSKAB_OG_MEDLEMMER_NOEGLEORD, logBeskedBygger.ToString()); }
private string Synkroniser_TestResultat_ReturnerNotater( int arkID, RegnskabsmedlemDTO regnskabsmedlem, LoggingManagerUnitTest loggingManager, bool medlemOgRegnskabsmeldemNavnSkalVaereEns, bool kendtRegnskabsmedlemOgRegnskabsmedlemNavnSkalVaereEns, MedlemsstatusEnum? medlemstatusHvisForskelligFraRegnskabsmedlemstatus = null) { loggingManager.Clear(); (new MedlemmerManager()).SynkroniserRegnskabsmedlemmerOgMedlemmer(false); string notater = KomponentManager.LoggingManager.ToString(); Assert.IsTrue(!String.IsNullOrEmpty(notater), notater); using (ArkDatabase db = new ArkDatabase()) { Medlem medlem = db.Medlems.First(medlemItem => medlemItem.ArkID == arkID); Regnskabsmedlem kendtRegnskabsmedlem = db.Regnskabsmedlems.First(medlemItem => medlemItem.ArkID == arkID); if (medlemstatusHvisForskelligFraRegnskabsmedlemstatus.HasValue) { Assert.AreEqual(medlemstatusHvisForskelligFraRegnskabsmedlemstatus.Value, medlem.Status); } else { Assert.AreEqual(regnskabsmedlem.Status, medlem.Status); } if (medlemOgRegnskabsmeldemNavnSkalVaereEns) { Assert.AreEqual(regnskabsmedlem.Navn, medlem.Navn); } else { Assert.AreNotEqual(regnskabsmedlem.Navn, medlem.Navn); } Assert.AreEqual(regnskabsmedlem.Status, kendtRegnskabsmedlem.Status); if (kendtRegnskabsmedlemOgRegnskabsmedlemNavnSkalVaereEns) { Assert.AreEqual(regnskabsmedlem.Navn, kendtRegnskabsmedlem.Navn); } else { Assert.AreNotEqual(regnskabsmedlem.Navn, kendtRegnskabsmedlem.Navn); } } return notater; }