コード例 #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            LidType lidType = db.LidTypes.Find(id);

            db.LidTypes.Remove(lidType);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #2
0
 public ActionResult Edit([Bind(Include = "ID,Naam,isActive")] LidType lidType)
 {
     if (ModelState.IsValid)
     {
         db.Entry(lidType).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(lidType));
 }
コード例 #3
0
        public ActionResult Create([Bind(Include = "ID,Naam,isActive")] LidType lidType)
        {
            if (ModelState.IsValid)
            {
                db.LidTypes.Add(lidType);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(lidType));
        }
コード例 #4
0
        // GET: LidType/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LidType lidType = db.LidTypes.Find(id);

            if (lidType == null)
            {
                return(HttpNotFound());
            }
            return(View(lidType));
        }
コード例 #5
0
        private List <LidType> GetLidTypesFromId(int lidId)
        {
            try
            {
                List <LidType> soorten = new List <LidType>();
                using (SqlConnection conn = new SqlConnection(connectie))
                {
                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();

                        using (SqlCommand cmd = new SqlCommand())
                        {
                            cmd.CommandText = "SELECT TypeID, TypeNaam, TypeBestuur, TypeCommissie FROM Type JOIN LidType ON LtTypeId = TypeId JOIN Lid ON LId = LtLidId WHERE LId = @lidId;";
                            cmd.Connection  = conn;

                            cmd.Parameters.AddWithValue("@lidId", lidId);

                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    int    id        = reader.GetInt32(0);
                                    string name      = reader.GetString(1);
                                    bool   bestuur   = reader.GetBoolean(2);
                                    bool   commissie = reader.GetBoolean(3);

                                    LidType soort = new LidType(id, name, bestuur, commissie);
                                    soorten.Add(soort);
                                }
                                return(soorten);
                            }
                        }
                    }
                }
                return(null);
            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
        }
コード例 #6
0
        public List <LidType> GetAllLidTypes()
        {
            try
            {
                List <LidType> soorten = new List <LidType>();
                using (SqlConnection conn = new SqlConnection(connectie))
                {
                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();

                        using (SqlCommand cmd = new SqlCommand())
                        {
                            cmd.CommandText = "SELECT * FROM Type;";
                            cmd.Connection  = conn;

                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    int    id        = reader.GetInt32(0);
                                    string name      = reader.GetString(1);
                                    bool   bestuur   = reader.GetBoolean(2);
                                    bool   commissie = reader.GetBoolean(3);

                                    LidType soort = new LidType(id, name, bestuur, commissie);
                                    soorten.Add(soort);
                                }
                                return(soorten);
                            }
                        }
                    }
                }
                return(null);
            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
        }
コード例 #7
0
        private LidType GetLidTypeFromId(int typeId)
        {
            try
            {
                using (SqlConnection conn = new SqlConnection(connectie))
                {
                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();

                        using (SqlCommand cmd = new SqlCommand())
                        {
                            cmd.CommandText = "SELECT * FROM Type WHERE TypeId = @Id;";
                            cmd.Connection  = conn;

                            cmd.Parameters.AddWithValue("@Id", typeId);

                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    int    id        = reader.GetInt32(0);
                                    string name      = reader.GetString(1);
                                    bool   bestuur   = reader.GetBoolean(2);
                                    bool   commissie = reader.GetBoolean(3);

                                    LidType soort = new LidType(id, name, bestuur, commissie);
                                    return(soort);
                                }
                            }
                        }
                    }
                }
                return(null);
            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
        }
コード例 #8
0
        /// <summary>
        /// Converteert het niveau van een functie naar het lidtype waarop de functie van toepassing is.
        /// </summary>
        /// <param name="niveau">niveau van een functie</param>
        /// <returns>Type van de leden waarop de functie van toepassing kan zijn</returns>
        public LidType NiveauNaarLidType(Niveau niveau)
        {
            LidType resultaat = LidType.Geen;

            if ((niveau & ~Niveau.Groep) != 0)
            {
                resultaat |= LidType.Leiding;
                // voorlopig: als het geen plaatselijke groep is,
                // dan is het een kadergroep, met enkel leiding
            }

            if (niveau.HasFlag(Niveau.LeidingInGroep))
            {
                resultaat |= LidType.Leiding;
            }

            if (niveau.HasFlag(Niveau.LidInGroep))
            {
                resultaat |= LidType.Kind;
            }
            return(resultaat);
        }
コード例 #9
0
        /// <summary>
        /// Converteert een <paramref name="lidType"/> naar een niveau, gegeven het niveau van de
        /// groep (<paramref name="groepsNiveau"/>)
        /// </summary>
        /// <param name="lidType">Leden, Leiding of allebei</param>
        /// <param name="groepsNiveau">Plaatselijke groep, gewestploeg, verbondsploeg, satelliet</param>
        /// <returns>Niveau van het <paramref name="lidType"/> voor een groep met gegeven <paramref name="groepsNiveau"/></returns>
        public Niveau LidTypeNaarMiveau(LidType lidType, Niveau groepsNiveau)
        {
            if ((groepsNiveau & Niveau.Groep) == 0)
            {
                // Geen plaatselijke groep? groepsNiveau is wat we zoeken.
                return(groepsNiveau);
            }

            // Voor een plaastelijke groep is er een onderscheid lid/leiding.

            switch (lidType)
            {
            case LidType.Kind:
                return(Niveau.LidInGroep);

            case LidType.Leiding:
                return(Niveau.LeidingInGroep);

            default:
                return(Niveau.Groep);
            }
        }
コード例 #10
0
        /// <summary>
        /// Maakt een gelieerde persoon <paramref name="gp"/> lid in groepswerkjaar <paramref name="gwj"/>,
        /// met lidtype <paramref name="type"/>, persisteert niet.
        /// </summary>
        /// <param name="gp">
        /// Lid te maken gelieerde persoon, gekoppeld met groep en persoon
        /// </param>
        /// <param name="gwj">
        /// Groepswerkjaar waarin de gelieerde persoon lid moet worden
        /// </param>
        /// <param name="type">
        /// LidType.Kind of LidType.Leiding
        /// </param>
        /// <param name="isJaarOvergang">
        /// Als deze true is, is einde probeerperiode steeds
        /// 15 oktober als het nog geen 15 oktober is
        /// </param>
        /// <remarks>
        /// Private; andere lagen moeten via 'Inschrijven' gaan.
        /// <para>
        /// </para>
        /// Deze method test niet of het groepswerkjaar wel het recentste is.  (Voor de unit tests moeten
        /// we ook leden kunnen maken in oude groepswerkjaren.)
        /// Roep deze method ook niet rechtstreeks aan, maar wel via KindMaken of LeidingMaken
        /// </remarks>
        /// <returns>
        /// Het aangepaste Lid-object
        /// </returns>
        /// <throws>FoutNummerException</throws>
        /// <throws>GeenGavException</throws>
        /// <throws>InvalidOperationException</throws>
        private Lid LidMaken(GelieerdePersoon gp, GroepsWerkJaar gwj, LidType type, bool isJaarOvergang)
        {
            Lid lid;

            switch (type)
            {
            case LidType.Kind:
                lid = new Kind();
                break;

            case LidType.Leiding:
                lid = new Leiding();
                break;

            default:
                lid = new Lid();
                break;
            }

            // GroepsWerkJaar en GelieerdePersoon invullen
            lid.GroepsWerkJaar   = gwj;
            lid.GelieerdePersoon = gp;
            gp.Lid.Add(lid);
            gwj.Lid.Add(lid);

            var stdProbeerPeriode = DateTime.Today.AddDays(Settings.Default.LengteProbeerPeriode);

            var eindeJaarOvergang = Settings.Default.WerkjaarVerplichteOvergang;

            eindeJaarOvergang = new DateTime(gwj.WerkJaar, eindeJaarOvergang.Month, eindeJaarOvergang.Day);

            if ((gp.Groep.Niveau & (Niveau.Gewest | Niveau.Verbond)) != 0)
            {
                lid.EindeInstapPeriode = DateTime.Today;
            }
            else if (!isJaarOvergang)
            {
                // Standaardinstapperiode indien niet in jaarovergang
                lid.EindeInstapPeriode = eindeJaarOvergang >= stdProbeerPeriode
                                             ? eindeJaarOvergang
                                             : stdProbeerPeriode;
            }
            else
            {
                // Voor jaarovergang: vaste deadline (gek idee, maar blijkbaar in de specs)
                lid.EindeInstapPeriode = eindeJaarOvergang >= DateTime.Now
                                             ? eindeJaarOvergang
                                             : stdProbeerPeriode;
            }

            FoutNummer?fout = new LidValidator().FoutNummer(lid);

            if (fout == FoutNummer.GroepsWerkJaarNietVanGroep)
            {
                throw new FoutNummerException(FoutNummer.GroepsWerkJaarNietVanGroep,
                                              Resources.GroepsWerkJaarNietVanGroep);
            }

            // Geboortedatum is verplicht als je lid wilt worden
            if (fout == FoutNummer.GeboorteDatumOntbreekt)
            {
                throw new FoutNummerException(FoutNummer.GeboorteDatumOntbreekt, Resources.GeboorteDatumOntbreekt);
            }

            // Je moet oud genoeg zijn
            if (fout == FoutNummer.LidTeJong)
            {
                throw new FoutNummerException(FoutNummer.LidTeJong, Resources.MinimumLeeftijd);
            }

            // en nog leven ook
            if (fout == FoutNummer.PersoonOverleden)
            {
                throw new FoutNummerException(FoutNummer.PersoonOverleden, Resources.PersoonIsOverleden);
            }


            return(lid);
        }