Exemplo n.º 1
0
        public bool LeggTilBrukerRequest(ProsjektrequestSkjema pReq, string brukernavn)
        {
            int bId    = BrukerId(brukernavn);
            int bIdTil = BrukerId(pReq.TilBruker);
            int pId    = pReq.ProsjektId;

            if (!ErAdmin(brukernavn, pReq.ProsjektId) && !ErEier(brukernavn, pReq.ProsjektId))
            {
                return(false);
            }

            if (bIdTil == 0)
            {
                return(false);
            }
            var nyRequest = new Prosjektrequest()
            {
                BrukerIdFra = bId,
                BrukerIdTil = bIdTil,
                ProsjektId  = pId,
                Akseptert   = false,
                Sendt       = DateTime.Now
            };

            using (var db = new Dbkontekst())
            {
                try
                {
                    db.Prosjektrequester.Add(nyRequest);
                    db.SaveChanges();
                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            }
        }
Exemplo n.º 2
0
        public ProsjektTest()
        {
            // Lager mocks som vi kan gjøre spørringer mot

            var req = new List <Prosjektrequest>()
            {
                new Prosjektrequest()
                {
                    ProsjektId  = 1,
                    BrukerIdFra = 1,
                    BrukerIdTil = 2,
                    MeldingId   = 1,
                    Sendt       = Convert.ToDateTime("22.12.2012 16.43")
                }, new Prosjektrequest()
                {
                    ProsjektId  = 2,
                    BrukerIdFra = 2,
                    BrukerIdTil = 1,
                    MeldingId   = 1,
                    Sendt       = Convert.ToDateTime("22.12.2012 16.43")
                }
            };
            List <dbBruker> bruker = new List <dbBruker>
            {
                new dbBruker
                {
                    BrukerId = 1, Email = "*****@*****.**"
                },
                new dbBruker
                {
                    BrukerId = 2, Email = "*****@*****.**"
                },
                new dbBruker
                {
                    BrukerId = 3, Email = "*****@*****.**"
                }
            };
            List <Prosjekt> prosjekter = new List <Prosjekt>
            {
                new Prosjekt()
                {
                    ProsjektId = 1, EierId = 1
                },
                new Prosjekt()
                {
                    ProsjektId = 2, EierId = 2
                }
            };
            List <Prosjektdeltakelse> deltakelser = new List <Prosjektdeltakelse>
            {
                new Prosjektdeltakelse
                {
                    ProsjektDeltakerId = 1,
                    BrukerId           = 1,
                    ProsjektId         = 1,
                    Admin       = false,
                    Medlemsdato = Convert.ToDateTime("22.12.2012 16.43")
                },
                new Prosjektdeltakelse
                {
                    ProsjektDeltakerId = 2,
                    BrukerId           = 2,
                    ProsjektId         = 1,
                    Admin       = true,
                    Medlemsdato = Convert.ToDateTime("22.12.2012 16.43")
                },
                new Prosjektdeltakelse
                {
                    ProsjektDeltakerId = 3,
                    BrukerId           = 3,
                    ProsjektId         = 1,
                    Admin       = false,
                    Medlemsdato = Convert.ToDateTime("22.12.2012 16.43")
                }
            };
            var reqMelding = new List <ProsjektrequestMelding>()
            {
                new ProsjektrequestMelding()
                {
                    ProsjektId   = 1,
                    FraBruker    = "*****@*****.**",
                    TilBruker    = "*****@*****.**",
                    Melding      = "",
                    Prosjektnavn = "Bunnpris",
                    MeldingId    = 1,
                    Tid          = Convert.ToDateTime("22.12.2012 16.43")
                }
            };

            Mock <InterfaceDbTProsjekt> mockProductRepository = new Mock <InterfaceDbTProsjekt>();



            bool ok = false;

            mockProductRepository.Setup(mr => mr.ErEier(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(
                (string u, int i) =>
            {
                var bId    = this.mockProductRepository.BrukerId(u);
                var TestOk = (from x in prosjekter
                              where x.EierId == bId && x.ProsjektId == i
                              select x.EierId).SingleOrDefault();

                if (TestOk != 0)
                {
                    ok = true;
                    return(ok);
                }
                return(ok);
            });

            mockProductRepository.Setup(mr => mr.ErAdmin(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(
                (string u, int i) =>
            {
                var okAdmin = false;
                var bId     = this.mockProductRepository.BrukerId(u);
                var TestOk  = (from x in deltakelser
                               where x.ProsjektId == i && x.BrukerId == bId
                               select x.Admin).SingleOrDefault();

                if (TestOk != false)
                {
                    okAdmin = true;
                    return(okAdmin);
                }
                return(okAdmin);
            });


            mockProductRepository.Setup(mr => mr.BrukerId(It.IsAny <string>()))
            .Returns(
                (string u) =>
            {
                int userId = (from x in bruker
                              where x.Email == u
                              select x.BrukerId).SingleOrDefault();
                return(userId);
            });

            mockProductRepository.Setup(mr => mr.BrukerNavn(It.IsAny <int>()))
            .Returns(
                (int i) =>
            {
                var brukernavn = (from x in bruker
                                  where x.BrukerId == i
                                  select x.Email).SingleOrDefault();
                return(brukernavn);
            });


            mockProductRepository.Setup(mr => mr.SjekkTilgangProsjekt(It.IsAny <string>()))
            .Returns(
                (string u) =>
            {
                int BrukerId            = this.mockProductRepository.BrukerId(u);
                List <ProsjektVis> pros = (from p in deltakelser
                                           from s in prosjekter
                                           where p.BrukerId == BrukerId && p.ProsjektId == s.ProsjektId
                                           select
                                           new ProsjektVis()
                {
                    Id = p.ProsjektId,
                }).ToList();

                return(pros);
            });

            mockProductRepository.Setup(mr => mr.VisRequesterForProsjekt(It.IsAny <int>(), It.IsAny <string>()))
            .Returns(
                (int i, string u) =>
            {
                var tilganger = this.mockProductRepository.SjekkTilgangProsjekt(u);
                var eventer   = (from k in req
                                 from s in tilganger
                                 where k.ProsjektId == i && k.ProsjektId == s.Id
                                 select new ProsjektrequestMelding
                {
                    MeldingId = k.MeldingId,
                    TilBruker = this.mockProductRepository.BrukerNavn(k.BrukerIdTil),
                    Tid = k.Sendt,
                    ProsjektId = k.ProsjektId
                }).ToList();
                return(eventer);
            });

            mockProductRepository.Setup(mr => mr.VisRequester(It.IsAny <string>()))
            .Returns(
                (string u) =>
            {
                int id = this.mockProductRepository.BrukerId(u);

                List <ProsjektrequestMelding> pros = (from p in req
                                                      from b in bruker
                                                      from s in prosjekter
                                                      where p.BrukerIdTil == id && p.BrukerIdFra == b.BrukerId && p.ProsjektId == s.ProsjektId
                                                      select
                                                      new ProsjektrequestMelding()
                {
                    ProsjektId = p.ProsjektId,
                    FraBruker = b.Email,
                    Melding = " har invitert deg til å bli medlem av: ",
                    Tid = p.Sendt,
                    TilBruker = u
                }).ToList();
                return(pros);
            });

            mockProductRepository.Setup(mr => mr.HentProsjekter(It.IsAny <string>()))
            .Returns(
                (string u) =>
            {
                int id = this.mockProductRepository.BrukerId(u);
                List <ProsjektVis> pros = (from p in deltakelser
                                           from s in prosjekter
                                           where p.BrukerId == id && p.ProsjektId == s.ProsjektId
                                           select
                                           new ProsjektVis()
                {
                    Id = p.ProsjektId,
                    Arbeidsplass = s.Arbeidsplass
                }).ToList();
                return(pros);
            });

            mockProductRepository.Setup(mr => mr.SlettBrukerFraProsjekt(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(
                (string u, int i) =>
            {
                var SlettProsjekt = deltakelser.FirstOrDefault(p => p.ProsjektDeltakerId == i);
                var sjekkEier     = prosjekter.FirstOrDefault(p => p.EierId == SlettProsjekt.BrukerId && p.ProsjektId == SlettProsjekt.ProsjektId);
                if (sjekkEier != null)
                {
                    return(false);    // kan ikke slette eier fra prosjekt
                }
                if (this.mockProductRepository.ErAdmin(u, SlettProsjekt.ProsjektId) == true || this.mockProductRepository.ErEier(u, SlettProsjekt.ProsjektId) == true)
                {
                    try
                    {
                        deltakelser.Remove(SlettProsjekt);
                        return(true);
                    }
                    catch (Exception feil)
                    {
                        return(false);
                    }
                }
                return(false);
            });

            mockProductRepository.Setup(mr => mr.RegistrerProsjekt(It.IsAny <Prosjekt>(), It.IsAny <string>()))
            .Returns(
                (Prosjekt p, string u) =>
            {
                int userId = this.mockProductRepository.BrukerId(u);
                if (p.Arbeidsplass == "" || userId == 0)
                {
                    return(false);
                }
                var nyProsjekt = new Prosjekt()
                {
                    Arbeidsplass = p.Arbeidsplass,
                    EierId       = userId
                };
                var nyProsjektDeltakelse = new Prosjektdeltakelse()
                {
                    BrukerId    = userId,
                    Medlemsdato = DateTime.Now,
                    ProsjektId  = nyProsjekt.ProsjektId
                };

                try
                {
                    prosjekter.Add(nyProsjekt);
                    deltakelser.Add(nyProsjektDeltakelse);

                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            });

            mockProductRepository.Setup(mr => mr.LeggTilBrukerRequest(It.IsAny <ProsjektrequestSkjema>(), It.IsAny <string>()))
            .Returns(
                (ProsjektrequestSkjema p, string u) =>
            {
                int bId    = this.mockProductRepository.BrukerId(u);
                int bIdTil = this.mockProductRepository.BrukerId(p.TilBruker);
                int pId    = p.ProsjektId;

                if (!this.mockProductRepository.ErAdmin(u, p.ProsjektId) && !this.mockProductRepository.ErEier(u, p.ProsjektId))
                {
                    return(false);
                }

                if (bIdTil == 0)
                {
                    return(false);
                }
                var nyRequest = new Prosjektrequest()
                {
                    BrukerIdFra = bId,
                    BrukerIdTil = bIdTil,
                    ProsjektId  = pId,
                    Akseptert   = false,
                    Sendt       = DateTime.Now
                };
                try
                {
                    req.Add(nyRequest);
                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            });


            mockProductRepository.Setup(mr => mr.RegistrerProsjektdeltakelse(It.IsAny <ProsjektrequestMelding>(), It.IsAny <string>()))
            .Returns(
                (ProsjektrequestMelding p, string u) =>
            {
                int id = this.mockProductRepository.BrukerId(u);
                IEnumerable <ProsjektDeltakelseOverforing> prosjektReq = from prosj in req
                                                                         from b in bruker
                                                                         from s in prosjekter
                                                                         where prosj.BrukerIdTil == id && prosj.BrukerIdFra == b.BrukerId && prosj.ProsjektId == p.ProsjektId
                                                                         select new ProsjektDeltakelseOverforing()
                {
                    BrukerId   = prosj.BrukerIdTil,
                    ProsjektId = prosj.ProsjektId
                };
                var prosjektD = new Prosjektdeltakelse();
                foreach (var a in prosjektReq)
                {
                    prosjektD.BrukerId    = a.BrukerId;
                    prosjektD.ProsjektId  = a.ProsjektId;
                    prosjektD.Medlemsdato = DateTime.Now;
                }
                try
                {
                    deltakelser.Add(prosjektD);
                    this.mockProductRepository.SlettRequest(prosjektD.ProsjektId, u);
                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            });


            /*
             *
             *
             */

            this.mockProductRepository = mockProductRepository.Object;
        }