示例#1
0
        public void loadprices(string subcatppNR, SubCatkControl parent, Ruimte r)
        {
            LinkedSControl = parent;

            foreach (CustomListItem cli in ListBox.Items)
            {
                var optie    = Inputlist.Where(x => x.GetType() == typeof(OptieKeuze) && (x as OptieKeuze).OptieID == cli.Id).FirstOrDefault() as OptieKeuze;
                var subcatNR = (from scpp in Acumulator.Instance().ctx.SubCatPerPakkets
                                where scpp.SCBP_ID == subcatppNR
                                select scpp.SCB_NR).FirstOrDefault().ToString();
                var meters = (from scpr in Acumulator.Instance().ctx.SubCatPerRuimteDeels
                              join scp in Acumulator.Instance().ctx.SubCats on scpr.SCB_NR equals scp.SCB_ID
                              where scpr.SCB_NR == subcatNR && scpr.R_NR == optie.OptieID && scp.C_NR != "C8"
                              select scpr.meters).FirstOrDefault().ToString();
                if (meters.Length > 0)
                {
                    meters += (from sc in Acumulator.Instance().ctx.SubCats
                               where sc.SCB_ID == subcatNR
                               select sc.eenheidMETERS).FirstOrDefault().ToString();
                }
                var oli = new List <OpbouwItem>();
                oli.Add(new OpbouwItem("", "€" + string.Format("{0:0.00}", optie.getMeerprijs(Acumulator.Instance().ctx, r.GekozenPakket.PakketPrijsgroep_NR)), meters));
                cli.Opbouw = oli;
            }
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Naam,Capacity")] Ruimte ruimte)
        {
            if (id != ruimte.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(ruimte);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RuimteExists(ruimte.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(ruimte));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Lengte,Breedte,Oppervlakte,MaxWerkplekken,Naam,LocatieId")] Ruimte ruimte)
        {
            if (id != ruimte.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid && Functies.maxbezetting(ruimte.Oppervlakte) >= ruimte.MaxWerkplekken)
            {
                try
                {
                    _context.Update(ruimte);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RuimteExists(ruimte.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Details", "Locaties", new { id = ruimte.LocatieId }));
            }
            ViewData["LocatieId"] = new SelectList(_context.Locatie, "Id", "Id", ruimte.LocatieId);
            ViewData["Error"]     = "De maximum aantal werkplekken voor deze ruimte is " + Functies.maxbezetting(ruimte.Oppervlakte);
            return(View(ruimte));
        }
        private PaginaBlok MakeHoekProfielBlok(Ruimte r)
        {
            var pBlok = new PaginaBlok(15);

            pBlok.LinkedRuimteId = r.RuimteID;
            pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
            pBlok.AddRegel(null, "Hoekprofiel", true);
            var        basisRegelFinished = false;
            List <int> accIndexDone       = new List <int>();
            var        nabew = r.qryNabewerkingen(Acumulator.Instance().ctx);

            foreach (var hkprof in r.GekozenProfielen)
            {
                var scppd = nabew.Where(n => n.ID == hkprof.LinkedSubCat).FirstOrDefault() as Classes.SubCatPerPakket;
                if (scppd != null)
                {
                    if (!basisRegelFinished)
                    {
                        var accHprof = r.AanvullendeMeters.FirstOrDefault(x => x.ProdSoort == ExpertControls.Models.ProductSoort.HoekProfiel &&
                                                                          x.LinkedHoekProf.ProfielID == hkprof.ProfielID &&
                                                                          x.RegelIndex == 0);
                        if (accHprof != null) // basis vervangen/aangepast in accent pagina
                        {
                            pBlok.AddRegel(accHprof.Meters + "m", accHprof.LinkedHoekProf.Omschrijving, false);
                            if (!String.IsNullOrEmpty(accHprof.Opmerking))
                            {
                                pBlok.AddRegel(null, accHprof.Opmerking, false);
                            }

                            accIndexDone.Add(accHprof.RegelIndex);
                        }
                        else//basis nog standaard
                        {
                            pBlok.AddRegel(/*hkprof.Meters*/ scppd.TotaalMeters + "m", hkprof.Omschrijving, false);
                        }
                        basisRegelFinished = true;
                    }
                    else
                    {
                        var anvHprof = r.AanvullendeMeters.FirstOrDefault(x => x.ProdSoort == ProductSoort.HoekProfiel &&
                                                                          x.LinkedHoekProf.ProfielID == hkprof.ProfielID &&
                                                                          !accIndexDone.Contains(x.RegelIndex));
                        if (anvHprof != null)
                        {
                            pBlok.AddRegel(anvHprof.Meters + "m", anvHprof.LinkedHoekProf.Omschrijving, false);
                            if (!String.IsNullOrEmpty(anvHprof.Opmerking))
                            {
                                pBlok.AddRegel(null, anvHprof.Opmerking, false);
                            }
                            accIndexDone.Add(anvHprof.RegelIndex);
                            pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                        }
                    }
                }
            }
            pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
            return(pBlok);
        }
        public NabewerkingKeuzeControl(NabewerkingUiRegel dr, Ruimte r)
        {
            DataRegel   = dr;
            DataContext = DataRegel;
            ruimte      = r;
            InitializeComponent();

            loadSave();
        }
        public async Task <IActionResult> Create([Bind("Id,Naam,Capacity")] Ruimte ruimte)
        {
            if (ModelState.IsValid)
            {
                _context.Add(ruimte);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(ruimte));
        }
        private PaginaBlok MakeDorpelBlok(Ruimte r)
        {
            var pBlok = new PaginaBlok(15);

            pBlok.LinkedRuimteId = r.RuimteID;

            var nabew   = r.qryNabewerkingen(Acumulator.Instance().ctx);
            var hasdorp = false;

            foreach (var pDorp in r.GekozenTegels)
            {
                var cat = (from pd in Acumulator.Instance().ctx.Productens
                           where pd.PD_ID == pDorp.ID
                           select pd.PC_NR).FirstOrDefault();
                if (int.Parse(cat) == 3)
                {
                    hasdorp = true;
                    //pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                    //pBlok.AddRegel(null, "Dorpel", true);
                    //var scppd = nabew.Where(n => n.ID == pDorp.LinkedSubCat).FirstOrDefault() as Classes.SubCatPerPakket;
                    //if (scppd != null)
                    //{
                    //    pBlok.AddRegel(scppd.TotaalMeters + "st", pDorp.productcode.TrimStart(' ') + " " + pDorp.Kleur, false);
                    //    pBlok.AddRegel(null, "Verwerken ter plaatse van de douchevloer", false);
                    //}
                }
            }
            if (hasdorp == true)
            {
                pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                pBlok.AddRegel(null, "Dorpel", true);
            }

            foreach (var exDorp in r.AanvullendeMeters.Where(e => e.ProdSoort == ProductSoort.Dorpel))
            {
                // pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                pBlok.AddRegel(exDorp.Meters + "st", exDorp.LinkedProduct.productcode.TrimStart(' ') + " " + exDorp.LinkedProduct.Kleur, false);
                if (String.IsNullOrEmpty(exDorp.Opmerking))
                {
                    // pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                    pBlok.AddRegel(null, "Verwerken ter plaatse van de douchevloer", false);
                }
                else
                {
                    //pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                    pBlok.AddRegel(null, exDorp.Opmerking, false);
                }
                pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
            }
            return(pBlok);
        }
        public async Task <IActionResult> Create([Bind("Id,Lengte,Breedte,Oppervlakte,MaxWerkplekken,Naam,LocatieId")] Ruimte ruimte)
        {
            if (ModelState.IsValid && (int)Math.Round(ruimte.Oppervlakte / 1.95) >= ruimte.MaxWerkplekken)
            {
                ruimte.Id = 0;
                _context.Add(ruimte);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "Locaties", new { id = ruimte.LocatieId }));
            }
            ViewData["LocatieId"] = ruimte.LocatieId;
            ViewData["Error"]     = "De maximum aantal werkplekken voor deze ruimte is " + (int)Math.Round(ruimte.Oppervlakte / 1.95);
            return(View(ruimte));
        }
示例#9
0
 public KeuzeList(Ruimte R, string keuzesoort, string title)
 {
     InitializeComponent();
     RuimteHuidig = R;
     KeuzeSoort   = keuzesoort;
     if (KeuzeSoort == "profiel" || KeuzeSoort == "bewerking")
     {
         OptBorder.BorderThickness = new Thickness(0);
     }
     if (title != null)
     {
         KLtile.Text = title;
     }
 }
        public void ReadXml(XmlReader reader)
        {
            Children.Clear();
            reader.MoveToContent();
            Omschrijving = reader.GetAttribute("Omschrijving");

            reader.Read();
            if (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "Ruimte")
            {
                while (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "Ruimte")
                {
                    Ruimte r = new Ruimte();
                    r.ReadXml(reader);
                    Children.Add(r);
                    reader.Read();
                }
            }
            if (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "CompleetLijst")
            {
                List <string> tmplist = new List <string>();
                int           cntr    = int.Parse(reader.GetAttribute("Count"));
                for (int i = 0; i < cntr; i++)
                {
                    tmplist.Add(reader.GetAttribute("C" + i.ToString()));
                }
                LoadedCompleet = tmplist;
                //if (reader.LocalName == "CompleetLijst")
                //{
                //    reader.ReadEndElement();
                //}
            }
            reader.Read();
            if (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "KortingInfo")
            {
                var kn = new KortingNode();
                kn.ReadXml(reader);
                Korting = kn;
                reader.Read();
            }
        }
示例#11
0
        private bool addHoekLine(AdvancedVervangRegel rgl, bool BasisReplaced)
        {
            var result    = true;
            var ctx       = Acumulator.Instance().ctx;
            var curRuimte = Acumulator.Instance().BB.HuidigRuimte;
            var lsc       = rgl.Status == StatusType.Basis ? InternData.SubCatNR : "Sub4Accent" + Ruimte.GenerateScbNr4Accent(InternData.SubCatNR).SCB_ID;


            var hoekprof = (from prf in ctx.Productens
                            where prf.PD_ID == rgl.GekozenTegel.ProductId
                            select new HoekProfiel()
            {
                ProfielID = prf.PD_ID,
                volgorde = (int)prf.volgorde,
                VerpakkingsToeslag = rgl.GekozenTegel.InstapPrijs,
                LinkedSubCat = lsc,
                Omschrijving = prf.Omschrijving,
                Kleur = (from kleur in ctx.Kleurens
                         where kleur.K_ID == prf.PKC_NR
                         select kleur.Omschrijving).FirstOrDefault().ToString(),
                KleurVolgorde = (from kleur in ctx.Kleurens
                                 where kleur.K_ID == prf.PKC_NR
                                 select(int) kleur.volgorde).FirstOrDefault(),
                KleurCode = prf.PKC_NR,
                Breedte = (int)prf.breedte,
                Lengte = (int)prf.lengte,
                ProfielImg = prf.ImagePath,
                Meters = rgl.VervangInfo.GekozenMeters,
                IsExpertMode = true,
            }).FirstOrDefault();

            if (hoekprof != null)
            {
                if (rgl.Status != StatusType.Basis || BasisReplaced)
                {
                    curRuimte.GekozenProfielen.Add(hoekprof);
                }



                var extMeters = new ExtraMeters
                {
                    LinkedHoekProf   = hoekprof,
                    LinkedSubCat     = InternData.SubCatNR,
                    Meters           = rgl.VervangInfo.GekozenMeters,
                    RegelIndex       = rgl.RegelIndex,
                    NabewerkingSetNR = rgl.GekozenTegel.NSNR,
                    IsBasis          = rgl.Status == StatusType.Basis ? !BasisReplaced : false,
                    Meerprijs        = rgl.GekozenTegel.PrijsPerMeter,
                    Opmerking        = rgl.VervangInfo.Opmerking,
                    ProdSoort        = ProductSoort.HoekProfiel
                };
                curRuimte.AanvullendeMeters.Add(extMeters);
            }

            return(result);
        }
        private PaginaBlok MakeTegelBlok(Ruimte r, string MainCatNr)
        {
            var pBlok = new PaginaBlok(15);
            var ctx   = Acumulator.Instance().ctx;
            var nabew = r.qryNabewerkingen(ctx);

            ///////////////////////////////
            foreach (Product P in r.GekozenTegels)
            {
                if (P.LinkedMainCat == MainCatNr)
                {
                    if (P.Lengte <= 0 && P.Breedte <= 0)
                    {
                        continue;
                    }

                    var scb = (from sc in ctx.SubCatPerPakkets
                               where sc.SCBP_ID == P.LinkedSubCat
                               select sc.SCB_NR).FirstOrDefault().ToString();

                    //var bew = r.GekozenBewerkingen.Where(b => b.LinkedSubcatNr == scb).ToList();
                    var bew = r.GekozenBewerkingen.Where(b => b.Kenmerk != null && b.Kenmerk.StartsWith(P.ID + scb)).ToList();
                    //var prodtoon = false;
                    if (bew.Count > 0)
                    {
                        //prodtoon = true;
                        var scpp = nabew.Where(n => n.ID == P.LinkedSubCat).FirstOrDefault() as Classes.SubCatPerPakket;
                        if (scpp.TotaalMeters > 0)
                        {
                            if (scpp == null)
                            {
                                continue;
                            }

                            var oms = (from c in ctx.Categorieëns
                                       join sbct in ctx.SubCats on c.C_ID equals sbct.C_NR
                                       where sbct.SCB_ID == scpp.SubCatNR
                                       select c.Omschrijving).FirstOrDefault();
                            pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                            pBlok.AddRegel(null, oms, true);
                            var meters  = scpp.TotaalMeters;
                            var eenheid = (from e in ctx.SubCats
                                           where e.SCB_ID == scpp.SubCatNR
                                           select e.eenheidMETERS).FirstOrDefault();

                            pBlok.AddRegel(Math.Round(meters, 2) + eenheid, P.productcode.TrimStart(' ') + " " + P.Kleur + " " + P.Breedte.ToString().Substring(0, 2) + "x" + P.Lengte.ToString().Substring(0, 2) + "cm", false);

                            string lijm = "", verwerking = "", plaatsing = "";
                            foreach (var b in bew)
                            {
                                switch (b.BewerkingCat_NR)
                                {
                                case "NC1":
                                    lijm = b.TextVoorZin;
                                    break;

                                case "NC2":
                                    verwerking = b.Omschrijving;
                                    break;

                                case "NC3":
                                    plaatsing = b.TextVoorZin;
                                    break;
                                }
                            }
                            string zin = "";
                            if (lijm == "" && verwerking == "")
                            {
                                zin = plaatsing;
                            }
                            else
                            {
                                zin = verwerking + " verwerken met " + lijm + " voeg";
                            }
                            if (!String.IsNullOrEmpty(zin))
                            {
                                pBlok.AddRegel(null, zin, false);
                            }
                            // pBlok.AddRegel(null, null, false);
                        }
                        else
                        {
                            var vervangTegel = r.AanvullendeMeters.FirstOrDefault(am => am.LinkedSubCat == scb);
                            if (vervangTegel != null)
                            {
                                var lP  = vervangTegel.LinkedProduct;
                                var oms = (from c in ctx.Categorieëns
                                           join sbct in ctx.SubCats on c.C_ID equals sbct.C_NR
                                           where sbct.SCB_ID == scb
                                           select c.Omschrijving).FirstOrDefault();

                                pBlok.AddRegel(null, oms, true);
                                var meters  = vervangTegel.Meters;
                                var eenheid = (from e in ctx.SubCats
                                               where e.SCB_ID == scpp.SubCatNR
                                               select e.eenheidMETERS).FirstOrDefault();

                                pBlok.AddRegel(Math.Round(meters, 2) + eenheid, lP.productcode.TrimStart(' ') + " " + lP.Kleur + " " + lP.Breedte.ToString().Substring(0, 2) + "x" + lP.Lengte.ToString().Substring(0, 2) + "cm", false);

                                string lijm = "", verwerking = "", plaatsing = "";
                                var    bew_a = r.GekozenBewerkingen.Where(x => x.NabewerkingSetNr == vervangTegel.NabewerkingSetNR);
                                foreach (var b in bew_a)
                                {
                                    switch (b.BewerkingCat_NR)
                                    {
                                    case "NC1":
                                        lijm = b.TextVoorZin;
                                        break;

                                    case "NC2":
                                        verwerking = b.Omschrijving;
                                        break;

                                    case "NC3":
                                        plaatsing = b.TextVoorZin;
                                        break;
                                    }
                                }
                                string zin = "";
                                if (lijm == "" && verwerking == "")
                                {
                                    zin = plaatsing;
                                }
                                else
                                {
                                    zin = verwerking + " verwerken met " + lijm + " voeg";
                                }
                                if (!String.IsNullOrEmpty(zin))
                                {
                                    pBlok.AddRegel(null, zin, false);
                                }
                                if (!String.IsNullOrEmpty(vervangTegel.Opmerking))
                                {
                                    pBlok.AddRegel(null, vervangTegel.Opmerking, false);
                                }

                                //   pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                            }
                        }
                    }
                }
            }
            //////////////////////////////
            return(pBlok);
        }
        //vars

        //hoofd functie voor nabewerking pagina (called per sub cat)
        public void MakeBewerkingMain(List <SubCatPerPakket> nabew, Ruimte r)
        {
            UiRegelCollection = new ObservableCollection <NabewerkingUiRegel>();

            var prodrefs = Acumulator.Instance().ctx.Productens;

            var tegelH = nabew.Where(x => x.SubCatNR == "SCB4").FirstOrDefault();

            if (tegelH != null)
            {
                var plafond = (from b in Acumulator.Instance().ctx.Bron_Ruimtes
                               where b.R_NR == r.RuimteID
                               select b.PLAFONDHOOGTE).FirstOrDefault();
                var hoogte = tegelH.TotaalMeters;
                BewerkingTegelHoogteRegel((int)plafond, hoogte);
            }



            foreach (var product in r.GekozenTegels)
            {
                var prodcat = (from pr in prodrefs
                               where pr.PD_ID == product.ID
                               select pr.PC_NR).FirstOrDefault().ToString();

                if (!String.IsNullOrEmpty(prodcat))
                {
                    var subcat = (from scb in Acumulator.Instance().ctx.SubCatPerPakkets
                                  where scb.SCBP_ID == product.LinkedSubCat
                                  select scb.SCB_NR).FirstOrDefault();

                    var scpp = nabew.Where(x => x.SubCatNR == subcat).FirstOrDefault();
                    switch (prodcat)
                    {
                    case "1":    //tegel
                        var accentMatchT = r.AanvullendeMeters.Where(x => (x as ExtraMeters).ProdSoort == ExpertControls.Models.ProductSoort.Tegel &&
                                                                     (x as ExtraMeters).LinkedProduct == product).FirstOrDefault();
                        if (scpp != null || accentMatchT != null)
                        {
                            BewerkingTegelRegel(scpp, product, accentMatchT);
                        }
                        break;

                    case "2":    //profiel
                        //geen hoekprofielen hier
                        //BewerkingHoekprofielRegel(nabew, xxxx);
                        break;

                    case "3":    //dorpel
                        var accentMatchD = r.AanvullendeMeters.Where(x => (x as ExtraMeters).ProdSoort == ExpertControls.Models.ProductSoort.Dorpel &&
                                                                     (x as ExtraMeters).LinkedProduct == product).FirstOrDefault();
                        if (scpp != null || accentMatchD != null)
                        {
                            BewerkingDorpelRegel(scpp, product, accentMatchD);
                        }

                        break;
                    }
                }
            }

            foreach (var accent in r.GekozenAccenten)
            {
                var prodcat = (from pr in prodrefs
                               where pr.PD_ID == accent.ID
                               select pr.PC_NR).FirstOrDefault().ToString();


                if (!String.IsNullOrEmpty(prodcat))
                {
                    switch (prodcat)
                    {
                    case "1":    //tegel
                        var accentMatchT = r.AanvullendeMeters.Where(x => (x as ExtraMeters).ProdSoort == ExpertControls.Models.ProductSoort.Tegel &&
                                                                     (x as ExtraMeters).LinkedProduct.ID == accent.ID).FirstOrDefault();
                        BewerkingTegelRegelAccent(accent, accentMatchT);
                        break;

                    case "2":    //profiel
                        //geen hoekprofiel hier >> profiel != product
                        break;

                    case "3":    //dorpel
                        var accentMatchD = r.AanvullendeMeters.Where(x => (x as ExtraMeters).ProdSoort == ExpertControls.Models.ProductSoort.Dorpel &&
                                                                     (x as ExtraMeters).LinkedProduct.ID == accent.ID).FirstOrDefault();
                        BewerkingDorpelRegelAccent(accent, accentMatchD);
                        break;
                    }
                }
            }

            foreach (var profiel in r.GekozenProfielen)
            {
                var subcat = (from scb in Acumulator.Instance().ctx.SubCatPerPakkets
                              where scb.SCBP_ID == profiel.LinkedSubCat
                              select scb.SCB_NR).FirstOrDefault();

                var scpp = nabew.Where(x => x.SubCatNR == subcat).FirstOrDefault();

                var accentMatch = r.AanvullendeMeters.Where(x => (x as ExtraMeters).ProdSoort == ExpertControls.Models.ProductSoort.HoekProfiel &&
                                                            (x as ExtraMeters).LinkedHoekProf.ProfielID == profiel.ProfielID).FirstOrDefault();

                if (scpp != null)
                {
                    BewerkingHoekprofielRegel(scpp, profiel, accentMatch);
                }
                else if (accentMatch != null)
                {
                    BewerkingHoekprofielRegelAccent(profiel, accentMatch);
                }
            }
        }
示例#14
0
        private bool addTegelLine(AdvancedVervangRegel rgl, bool BasisReplaced)
        {
            var result    = true;
            var ctx       = Acumulator.Instance().ctx;
            var curRuimte = Acumulator.Instance().BB.HuidigRuimte;
            var lsc       = rgl.Status == StatusType.Basis ? InternData.SubCatNR : "Sub4Accent" + Ruimte.GenerateScbNr4Accent(InternData.SubCatNR).SCB_ID;

            var product = (from prdct in ctx.Productens
                           where prdct.PD_ID == rgl.GekozenTegel.ProductId
                           select new Product()
            {
                ID = prdct.PD_ID,
                volgorde = (int)prdct.volgorde,
                VerpakkingsToeslag = rgl.GekozenTegel.InstapPrijs,               //(double)prdct.verpakkingstoeslag,
                LinkedSubCat = lsc,
                LinkedMainCat = InternData.HCNR,
                Omschrijving = prdct.Omschrijving,
                Kleur = (from kleur in ctx.Kleurens
                         where kleur.K_ID == prdct.PKC_NR
                         select kleur.Omschrijving).FirstOrDefault().ToString(),
                kleurVolgorde = (from kleur in ctx.Kleurens
                                 where kleur.K_ID == prdct.PKC_NR
                                 select(int) kleur.volgorde).FirstOrDefault(),
                KleurCode = prdct.PKC_NR,
                Breedte = (int)prdct.breedte,
                Lengte = (int)prdct.lengte,
                ImgPath = prdct.ImagePath,
                productcode = prdct.productcode
            }).FirstOrDefault();

            if (product != null)
            {
                if (rgl.Status != StatusType.Basis || BasisReplaced)
                {
                    curRuimte.GekozenAccenten.Add(product);
                }

                var extMeters = new ExtraMeters
                {
                    LinkedProduct    = product,
                    LinkedSubCat     = InternData.SubCatNR,
                    Meters           = rgl.VervangInfo.GekozenMeters,
                    RegelIndex       = rgl.RegelIndex,
                    NabewerkingSetNR = rgl.GekozenTegel.NSNR,
                    IsBasis          = rgl.Status == StatusType.Basis ? !BasisReplaced : false,
                    Meerprijs        = rgl.GekozenTegel.PrijsPerMeter,
                    Opmerking        = rgl.VervangInfo.Opmerking,
                    ProdSoort        = ProductSoort.Tegel
                };

                curRuimte.AanvullendeMeters.Add(extMeters);
            }

            return(result);
        }
        public async Task Initialize()
        {
            await _context.Database.MigrateAsync();

            if (_context.Maxima.Any())
            {
                return;   // DB has been seeded
            }

            var maxima = new List <Maxima>();

            maxima.Add(new Maxima {
                MaxRDW = 200, MaxNonRDW = 50
            });
            _context.Maxima.AddRange(maxima);

            var tijdvakken = new List <Tijdvak>();
            var tv0        = new Tijdvak {
                Start = "09:00", Einde = "09:45", Order = 1
            };

            tijdvakken.Add(tv0);
            var tv1 = new Tijdvak {
                Start = "10:00", Einde = "11:00", Order = 2
            };

            tijdvakken.Add(tv1);
            var tv2 = new Tijdvak {
                Start = "11:15", Einde = "12:15", Order = 3
            };

            tijdvakken.Add(tv2);
            var tv3 = new Tijdvak {
                Start = "13:15", Einde = "14:15", Order = 4
            };

            tijdvakken.Add(tv3);
            var tv4 = new Tijdvak {
                Start = "14:30", Einde = "15:30", Order = 5
            };

            tijdvakken.Add(tv4);
            var tv5 = new Tijdvak {
                Start = "15:45", Einde = "16:30", Order = 6
            };

            tijdvakken.Add(tv5);

            _context.Tijdvakken.AddRange(tijdvakken);

            // check if roles table populated, if not -> populate
            if (_roleManager.Roles.Select(r => new SelectListItem {
                Text = r.Name, Value = r.Id
            }).ToList().Count == 0)
            {
                // insert basis roles
                await _roleManager.CreateAsync(new IdentityRole { Name = "User" });

                await _roleManager.CreateAsync(new IdentityRole { Name = "Admin" });
            }

            // check if basic admin account from Azure environment is present, if not create it and give or restore admin rights
            var userid   = _configuration["adminuser:email"];
            var password = _configuration["adminuser:password"];
            var user     = await _userManager.Users.SingleOrDefaultAsync <ApplicationUser>(u => u.Email == userid);

            if (user == null)
            {
                ApplicationUser appuser = new ApplicationUser {
                    UserName = userid, Email = userid, EmailConfirmed = true, Name = userid, Organisation = "RdwTechday"
                };
                // add admin user
                await appuser.AddTijdvakkenAsync(_context);

                IdentityResult result = await _userManager.CreateAsync(appuser, password);

                if (!result.Succeeded)
                {
                    string msg = "";
                    foreach (IdentityError err in result.Errors)
                    {
                        msg = msg + err.Description;
                    }
                    throw new System.InvalidOperationException("Error creating standard admin user" + msg);
                }
                user = await _userManager.Users.SingleOrDefaultAsync <ApplicationUser>(u => u.Email == userid);

                await _userManager.AddToRoleAsync(user, "User");
            }
            var roles = await _userManager.GetRolesAsync(user);

            if (!roles.Contains("Admin"))
            {
                IdentityResult roleResult = await _userManager.AddToRoleAsync(user, "Admin");

                if (!roleResult.Succeeded)
                {
                    string msg = "";
                    foreach (IdentityError err in roleResult.Errors)
                    {
                        msg = msg + err.Description;
                    }
                    throw new System.InvalidOperationException("Error creating standard admin user" + msg);
                }
            }
            await _context.SaveChangesAsync();

            var ruimtes = new List <Ruimte>();
            var room250 = new Ruimte {
                Naam = "Grote zaal", Capacity = 250
            };

            ruimtes.Add(room250);
            var roomGrn = new Ruimte {
                Naam = "Groningen", Capacity = 70
            };

            ruimtes.Add(roomGrn);
            var roomAms = new Ruimte {
                Naam = "Amsterdam", Capacity = 70
            };

            ruimtes.Add(roomAms);
            var roomRdm = new Ruimte {
                Naam = "Rotterdam", Capacity = 70
            };

            ruimtes.Add(roomRdm);
            var roomUtr = new Ruimte {
                Naam = "Utrecht", Capacity = 70
            };

            ruimtes.Add(roomUtr);
            var roomNij = new Ruimte {
                Naam = "Nijmegen", Capacity = 22
            };

            ruimtes.Add(roomNij);
            var roomLei = new Ruimte {
                Naam = "Leiden", Capacity = 22
            };

            ruimtes.Add(roomLei);
            var roomDel = new Ruimte {
                Naam = "Delft", Capacity = 22
            };

            ruimtes.Add(roomDel);
            _context.Ruimtes.AddRange(ruimtes);


            var tracks = new List <Track>();

            var track0 = new Track {
                Naam = "Keynote", Rgb = "B9CA8A", BadgeCode = "KN"
            }; tracks.Add(track0);
            var track1 = new Track {
                Naam = "Infra", Rgb = "FFC548", BadgeCode = "IF"
            }; tracks.Add(track1);
            var track2 = new Track {
                Naam = "Apps", Rgb = "B0A0C5", BadgeCode = "AP"
            }; tracks.Add(track2);
            var track3 = new Track {
                Naam = "Collaboratie", Rgb = "9CD2E0", BadgeCode = "CO"
            }; tracks.Add(track3);
            var track4 = new Track {
                Naam = "Inspiratie", Rgb = "FFAC59", BadgeCode = "IS"
            }; tracks.Add(track4);
            var track5 = new Track {
                Naam = "Workshops I", Rgb = "D99690", BadgeCode = "W1"
            }; tracks.Add(track5);
            var track6 = new Track {
                Naam = "Workshops II", Rgb = "D99690", BadgeCode = "W2"
            }; tracks.Add(track6);
            var track7 = new Track {
                Naam = "Closing Note", Rgb = "B9CA8A", BadgeCode = "CN"
            }; tracks.Add(track7);

            _context.Tracks.AddRange(tracks);

            var initresult = await _context.SaveChangesAsync();
        }
        private PaginaBlok MakeAccentBlok(Ruimte r, string MainCatNr)
        {
            var pBlok = new PaginaBlok(15);
            ///////////////
            var ctx   = Acumulator.Instance().ctx;
            var nabew = r.qryNabewerkingen(Acumulator.Instance().ctx);

            foreach (var ac in r.GekozenAccenten.Where(x => x.LinkedSubCat.StartsWith("Sub4Accent")))
            {
                if (MainCatNr == ac.LinkedMainCat)
                {
                    if (r.AanvullendeMeters.Count(x => x.LinkedProduct != null && x.LinkedProduct.ID == ac.ID && x.IsBasis == false) > 0)
                    {
                        var scb_ax_s = (from sc in ctx.SubCatPerPakkets
                                        where sc.SCBP_ID == ac.LinkedSubCat
                                        select sc.SCB_NR).FirstOrDefault();//

                        var scb_ax = "";
                        var foo    = "";

                        if (scb_ax_s != null)
                        {
                            scb_ax = scb_ax_s.ToString();
                            foo    = ac.LinkedSubCat;
                        }
                        else
                        {
                            scb_ax = ac.LinkedSubCat.StartsWith("Sub4Accent") ? ac.LinkedSubCat : "Sub4Accent" + Ruimte.GenerateScbNr4Accent(ac.LinkedSubCat).SCB_ID;
                            foo    = scb_ax;
                        }
                        //var bew_ax = r.GekozenBewerkingen.Where(b => b.LinkedSubcatNr == scb_ax).ToList();
                        var bew_ax = r.GekozenBewerkingen.Where(b => b.Kenmerk != null && b.Kenmerk.StartsWith(ac.ID + NabewerkingHandler.TranslateSubCat(scb_ax))).ToList();
                        if (bew_ax.Count == 0)
                        {
                            bew_ax = r.GekozenBewerkingen.Where(b => b.LinkedSubcatNr == NabewerkingHandler.TranslateSubCat(scb_ax)).ToList();
                        }
                        if (bew_ax.Count > 0)
                        {
                            var scpp_ax = nabew.Where(n => n.ID == foo).FirstOrDefault() as Classes.SubCatPerPakket;
                            var vExM    = r.AanvullendeMeters.FirstOrDefault(x => x.LinkedProduct != null && x.LinkedProduct.ID == ac.ID);

                            var    vAccTgl    = vExM.LinkedProduct;
                            string oms_ax     = "";
                            var    eenheid_ax = "m²";
                            if (scpp_ax != null)
                            {
                                oms_ax = (from c in ctx.Categorieëns
                                          join sbct in ctx.SubCats on c.C_ID equals sbct.C_NR
                                          where sbct.SCB_ID == scpp_ax.SubCatNR
                                          select c.Omschrijving).FirstOrDefault();

                                eenheid_ax = (from e in ctx.SubCats
                                              where e.SCB_ID == scpp_ax.SubCatNR
                                              select e.eenheidMETERS).FirstOrDefault();
                            }

                            if (oms_ax.ToLower().StartsWith("accent") == false)
                            {
                                pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                                pBlok.AddRegel(null, oms_ax, true);
                            }
                            var meters_ax = vExM.Meters;
                            pBlok.AddRegel(Math.Round(meters_ax, 2) + eenheid_ax, vAccTgl.productcode.TrimStart(' ') + " " + vAccTgl.Kleur + " " + vAccTgl.Breedte.ToString().Substring(0, 2) + "x" + vAccTgl.Lengte.ToString().Substring(0, 2) + "cm", false);
                            string lijm_ax = "", verwerking_ax = "";

                            foreach (var b in bew_ax.Where(x => x.NabewerkingSetNr == vExM.NabewerkingSetNR))
                            {
                                if (lijm_ax == "")
                                {
                                    lijm_ax = b.TextVoorZin;
                                }
                                else
                                {
                                    verwerking_ax = b.Omschrijving;
                                }
                            }
                            if (String.IsNullOrEmpty(lijm_ax))
                            {
                                var b = bew_ax.Where(x => x.BewerkingCat_NR == "NC1").FirstOrDefault();
                                if (b != null)
                                {
                                    lijm_ax = b.TextVoorZin;
                                }
                            }
                            if (String.IsNullOrEmpty(verwerking_ax))
                            {
                                var b = bew_ax.Where(x => x.BewerkingCat_NR != "NC1").FirstOrDefault();
                                if (b != null)
                                {
                                    verwerking_ax = b.Omschrijving;
                                }
                            }
                            string zin_ax = verwerking_ax + " verwerken met " + lijm_ax + " voeg";

                            pBlok.AddRegel(null, zin_ax, false);
                            var OpmText = vExM.Opmerking;
                            if (OpmText != null && OpmText.Count() > 45)
                            {
                                var za = OpmText.Substring(0, OpmText.IndexOf(' ', 45));
                                var zb = OpmText.Substring(za.Length + 1, OpmText.Length - za.Length - 1);
                                if (!String.IsNullOrEmpty(za))
                                {
                                    pBlok.AddRegel(null, za, false);
                                }
                                if (!String.IsNullOrEmpty(zb))
                                {
                                    pBlok.AddRegel(null, zb, false);
                                }
                            }
                            else
                            {
                                if (!String.IsNullOrEmpty(vExM.Opmerking))
                                {
                                    pBlok.AddRegel(null, vExM.Opmerking, false);
                                }
                            }
                        }
                    }
                }
            }
            //////////////
            return(pBlok);
        }
示例#17
0
        public bool InitNewRuimte(int ruimteCntr, Ruimte r)
        {
            var ctx   = Acumulator.Instance().ctx;
            var nabew = r.qryNabewerkingen(ctx);

            ArticleRowCounter++;
            ContentGrid.RowDefinitions.Add(new RowDefinition {
                Height = GridLength.Auto
            });
            var secndlinetext = "";

            if (nabew.Count == 0)
            {
                return(false);
                //skip if empty
                //secndlinetext = "Geen tegelwerk";
                //MessageBox.Show("geentegelwerk");
            }
            else
            {
                var tbP = new TextBlock // product text
                {
                    FontFamily          = new FontFamily("Lucida Grande"),
                    FontSize            = 14,
                    FontWeight          = FontWeights.Bold,
                    TextWrapping        = TextWrapping.Wrap,
                    HorizontalAlignment = System.Windows.HorizontalAlignment.Left,
                    VerticalAlignment   = System.Windows.VerticalAlignment.Top,
                    Margin = new Thickness(45, 15, 0, 15),
                    Text   = Acumulator.Instance().MaakStartZin(r.Omschrijving)
                };
                tbP.SetValue(Grid.ColumnProperty, 0);
                tbP.SetValue(Grid.RowProperty, ArticleRowCounter);
                ContentGrid.Children.Add(tbP);



                //tegel hoogte
                var tegelh = (from h in r.Children
                              where h.GetType() == typeof(Classes.SubCatPerRuimteDeel) &&
                              (h as Classes.SubCatPerRuimteDeel).SubCatNR == "SCB4"
                              select(h as Classes.SubCatPerRuimteDeel).Meters).Sum();
                if (r.PlafondHoogte == tegelh)
                {
                    secndlinetext = "Betegelen tot plafond";
                }
                else if (tegelh > 0)
                {
                    secndlinetext = "Betegelen tot " + tegelh + "mm";
                }
                else
                {
                    var ruimtenaam = (from br in ctx.Bron_Ruimtes
                                      where br.R_NR == r.RuimteID
                                      select br.RuimteNaam).FirstOrDefault();
                    secndlinetext = "Betegelen " + ruimtenaam;
                }
                ArticleRowCounter++;
                ContentGrid.RowDefinitions.Add(new RowDefinition {
                    Height = GridLength.Auto
                });
                var tb0 = new TextBlock
                {
                    FontFamily          = new FontFamily("Lucida Grande"),
                    FontSize            = 12,
                    FontWeight          = FontWeights.Bold,
                    TextWrapping        = TextWrapping.Wrap,
                    HorizontalAlignment = System.Windows.HorizontalAlignment.Left,
                    VerticalAlignment   = System.Windows.VerticalAlignment.Top,
                    Margin = new Thickness(0, 0, 45, 0),
                    Text   = "Info"
                };
                tb0.SetValue(Grid.ColumnProperty, 1);
                tb0.SetValue(Grid.RowProperty, ArticleRowCounter);
                ContentGrid.Children.Add(tb0);
            }

            ArticleRowCounter++;
            ContentGrid.RowDefinitions.Add(new RowDefinition {
                Height = GridLength.Auto
            });
            var tb1 = new TextBlock // product text
            {
                FontFamily = new FontFamily("Lucida Grande"),
                FontSize   = 12,
                //FontWeight = FontWeights.Bold,
                TextWrapping        = TextWrapping.Wrap,
                HorizontalAlignment = System.Windows.HorizontalAlignment.Left,
                VerticalAlignment   = System.Windows.VerticalAlignment.Top,
                Margin = new Thickness(0, 0, 45, 0),
                Text   = secndlinetext,
            };

            tb1.SetValue(Grid.ColumnProperty, 1);
            tb1.SetValue(Grid.RowProperty, ArticleRowCounter);
            ContentGrid.Children.Add(tb1);

            ArticleRowCounter++;
            return(true);
        }