public async Task <ActionResult <MakerTag> > PostMakerTag(MakerTag makerTag)
        {
            _context.MakerTags.Add(makerTag);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetMakerTag", new { id = makerTag.Id }, makerTag));
        }
Esempio n. 2
0
        public async Task <IActionResult> PutMakerTag(long id, MakerTag makerTag)
        {
            if (id != makerTag.MakerTagID)
            {
                return(BadRequest());
            }

            _context.Entry(makerTag).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MakerTagExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> PutMakerTag(long id, MakerTag makerTag)
        {
            var makerTags = await _context.MakerTags.Where(o => o.MakerId == id).Include(t => t.Tag).ToListAsync();

            if (makerTags == null)
            {
                return(NotFound());
            }
            foreach (var vmakerTag in makerTags)
            {
                _context.MakerTags.Remove(vmakerTag);
            }



            //_context.Add(new MakerTag({ }))

            return(NoContent());
        }
        public async Task <ActionResult <UserLogin> > EditLoginMaker(long id, MakerWithLogin data)
        {
            UserLogin userLogin = data.userlogin;
            Maker     maker     = data.maker;

            string[] tags = data.tags;

            userLogin.UserTypeId = 2;

            var userLoginOld = _context.UserLogins.Find(id);
            var makerOld     = _context.Makers.Find(userLoginOld.MakerId);

            if (userLoginOld == null)
            {
                return(NotFound());
            }

            if (_context.UserLogins.Where(x => (x.Email == userLogin.Email) && (x.Id != id)).SingleOrDefault() != null)
            {
                return(Ok("Email"));
            }

            if (_context.UserLogins.Where(x => x.Username == userLogin.Username && (x.Id != id)).SingleOrDefault() != null)
            {
                return(Ok("Username"));
            }

            maker.Id = makerOld.Id;

            _context.Entry(makerOld).State = EntityState.Detached;

            _context.Entry(maker).State = EntityState.Modified;

            await _context.SaveChangesAsync();

            var makerTagsOld = await _context.MakerTags.Where(x => x.MakerId == maker.Id).ToListAsync();

            if (makerTagsOld != null)
            {
                foreach (MakerTag makerTag in makerTagsOld)
                {
                    _context.Entry(makerTag).State = EntityState.Detached;
                    makerTag.SelfSet = false;
                    _context.Entry(makerTag).State = EntityState.Modified;
                }
            }

            await _context.SaveChangesAsync();

            if (tags != null)
            {
                foreach (string tag in tags)
                {
                    Tag tagObject = await _context.Tags.Where(x => x.Naam.ToLower() == tag.ToLower()).SingleOrDefaultAsync();

                    if (tagObject == null)
                    {
                        tagObject      = new Tag();
                        tagObject.Naam = tag;

                        _context.Tags.Add(tagObject);
                    }

                    var makerTag = await _context.MakerTags.Where(x => (x.TagId == tagObject.Id) && (x.MakerId == maker.Id)).SingleOrDefaultAsync();

                    if (makerTag == null)
                    {
                        MakerTag makertag = new MakerTag();
                        makertag.MakerId  = maker.Id;
                        makertag.Interest = 1;
                        makertag.TagId    = tagObject.Id;
                        makertag.SelfSet  = true;
                        _context.MakerTags.Add(makertag);
                    }
                    else
                    {
                        _context.Entry(makerTag).State = EntityState.Detached;
                        makerTag.SelfSet = true;
                        _context.Entry(makerTag).State = EntityState.Modified;
                    }
                }
            }

            userLogin.MakerId = maker.Id;

            if (userLogin.Password == null)
            {
                userLogin.Password = userLoginOld.Password;
            }
            else
            {
                userLogin.Password = HashPassword(userLogin.Password);
            }

            _context.Entry(userLoginOld).State = EntityState.Detached;

            _context.Entry(userLogin).State = EntityState.Modified;
            await _context.SaveChangesAsync();


            return(CreatedAtAction("GetUserLogin", new { id = userLogin.Id }, userLogin));
        }
        public async Task <ActionResult <UserLogin> > AddLoginMaker(MakerWithLogin data)
        {
            UserLogin userLogin = data.userlogin;
            Maker     maker     = data.maker;

            string[] tags = data.tags;

            userLogin.UserTypeId = 2;

            if (_context.UserLogins.Where(x => x.Email == userLogin.Email).SingleOrDefault() != null)
            {
                return(Ok("Email"));
            }

            if (_context.UserLogins.Where(x => x.Username == userLogin.Username).SingleOrDefault() != null)
            {
                return(Ok("Username"));
            }

            _context.Makers.Add(maker);
            await _context.SaveChangesAsync();

            if (tags != null)
            {
                foreach (string tag in tags)
                {
                    Tag tagObject = await _context.Tags.Where(x => x.Naam.ToLower() == tag.ToLower()).SingleOrDefaultAsync();

                    if (tagObject == null)
                    {
                        tagObject      = new Tag();
                        tagObject.Naam = tag;

                        _context.Tags.Add(tagObject);
                    }

                    MakerTag makertag = new MakerTag();
                    makertag.MakerId  = maker.Id;
                    makertag.Interest = 1;
                    makertag.TagId    = tagObject.Id;
                    makertag.SelfSet  = true;
                    _context.MakerTags.Add(makertag);
                }
            }

            userLogin.MakerId  = maker.Id;
            userLogin.Password = HashPassword(userLogin.Password);

            _context.UserLogins.Add(userLogin);
            await _context.SaveChangesAsync();

            if (userLogin.Verified == false)
            {
                MailAddress to   = new MailAddress(userLogin.Email);
                MailAddress from = new MailAddress("*****@*****.**");

                MailMessage message = new MailMessage(from, to);
                message.Subject = "Bevestig je account bij Centask";
                message.Body    = "" +
                                  "<h1>Welkom bij Centask!</h1>" +
                                  "<p>Gelieve je account te bevestigen: " +
                                  "<a href='" + "http://localhost:4200/verifyUser?userLoginId=" + userLogin.Id + "'>Klik hier om te bevestigen</a>";

                message.IsBodyHtml = true;

                var client = new SmtpClient("smtp.mailtrap.io", 2525)
                {
                    Credentials = new NetworkCredential("9533f03187ee7c", "3058369c7f2f3b"),
                    EnableSsl   = true
                };

                try
                {
                    client.Send(message);
                }
                catch (SmtpException ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }

            return(CreatedAtAction("GetUserLogin", new { id = userLogin.Id }, userLogin));
        }
        public async Task <ActionResult <IEnumerable <Opdracht> > > GetOpdrachtenByTitleAndTags(string title)

        {
            var userId = User.Claims.FirstOrDefault(c => c.Type == "GebruikerId").Value;

            // ADDING INTEREST TO TAG IF FOUND
            var tag = _context.Tags.Where(x => x.Naam == title.ToLower()).SingleOrDefault();

            if (tag != null)
            {
                var makerTag = _context.MakerTags.Where(x => (x.TagId == tag.Id) && (x.MakerId == Convert.ToInt64(userId))).SingleOrDefault();
                if (makerTag != null)
                {
                    if (makerTag.SelfSet == false)
                    {
                        _context.Entry(makerTag).State = EntityState.Modified;
                        makerTag.Interest = (makerTag.Interest + (makerTag.Interest / 10 * 3));
                    }
                }
                else
                {
                    makerTag          = new MakerTag();
                    makerTag.MakerId  = Convert.ToInt64(userId);
                    makerTag.TagId    = tag.Id;
                    makerTag.Interest = 0.3;
                    makerTag.SelfSet  = false;
                    _context.Add(makerTag);
                }
                await _context.SaveChangesAsync();
            }
            var opdrachten = await _context.Opdrachten.Include(o => o.Bedrijf).Where(o => o.Titel.ToLower().Contains(title.ToLower()) || o.Bedrijf.Naam.ToLower().Contains(title.ToLower())).Include(x => x.Tags).ThenInclude(y => y.Tag).ToListAsync();

            var opdrachtenTags = await _context.Opdrachten.Include(o => o.Bedrijf).Include(x => x.Tags).ThenInclude(y => y.Tag).ToListAsync();

            var userTags = await _context.MakerTags.Where(x => x.MakerId == Convert.ToInt64(userId)).ToListAsync();

            foreach (var opdracht in opdrachtenTags)
            {
                foreach (var tagY in opdracht.Tags)
                {
                    if (tagY.Tag != null)
                    {
                        if (tagY.Tag.Naam.ToLower().Contains(title.ToLower()) && !opdrachten.Contains(opdracht))
                        {
                            opdrachten.Add(opdracht);
                        }
                    }
                }
            }


            // ADDING INTEREST AMOUNT TO EVERY TASK
            foreach (var opdracht in opdrachten)
            {
                double interest = 0;
                foreach (var tagY in opdracht.Tags)
                {
                    foreach (var userTag in userTags)
                    {
                        if (tagY.TagId == userTag.TagId)
                        {
                            interest = interest + userTag.Interest;
                        }
                    }
                }
                opdracht.Interest = interest;
            }

            if (opdrachten == null)
            {
                return(NotFound());
            }

            return(opdrachten);
        }