public HttpResponseMessage Post(ProsjektrequestSkjema reqInn)
 {
     string UserName = User.Identity.Name;
     if (ModelState.IsValid)
     {
         bool ok = _ProsjektBLL.LeggTilBrukerRequest(reqInn, UserName);
         if (ok)
         {
             var response = Request.CreateResponse(HttpStatusCode.Created, reqInn);
             string uri = Url.Link("DefaultApi", null);
             response.Headers.Location = new Uri(uri);
             return response;
         }
         return new HttpResponseMessage()
         {
             StatusCode = HttpStatusCode.NotFound,
             Content = new StringContent("Kunne ikke sende melding")
         };
     }
     return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
 }
        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;
                    }
                }
            
        }     
示例#3
0
 public bool LeggTilBrukerRequest(ProsjektrequestSkjema pReq, string brukernavn)
 {
     return _repository.LeggTilBrukerRequest(pReq, brukernavn);
 }
示例#4
0
        public void Legg_Til_Bruker_Request_OK_Admin()
        {
            ProsjektrequestSkjema p = new ProsjektrequestSkjema();
            p.ProsjektId = 1;
            p.TilBruker = "*****@*****.**";
            bool testProduct = this.mockProductRepository.LeggTilBrukerRequest(p, "*****@*****.**");

            Assert.IsTrue(testProduct);
        }
示例#5
0
        public void Legg_Til_Bruker_Request_False_Bruker_finnesIkke()
        {
            ProsjektrequestSkjema p = new ProsjektrequestSkjema();
            p.ProsjektId = 1;
            p.TilBruker = "*****@*****.**";
            bool testProduct = this.mockProductRepository.LeggTilBrukerRequest(p, "*****@*****.**");

            Assert.IsFalse(testProduct);
        }
 public void Post_RegistrerProsjektReq_bad_request()
 {
     var commandBus = new Mock<IProsjektLogikk>();
     commandBus.Setup(c => c.LeggTilBrukerRequest(It.IsAny<ProsjektrequestSkjema>(), It.IsAny<string>())).Returns(true);
     // Mapper.CreateMap<CategoryFormModel, CreateOrUpdateCategoryCommand>();
     var httpConfiguration = new HttpConfiguration();
     WebApiConfig.Register(httpConfiguration);
     var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"],
         new HttpRouteValueDictionary { { "controller", "ProsjektreqApi" } });
     var controller = new ProsjektreqApiController(commandBus.Object)
     {
         Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/ProsjektreqApi/")
         {
             Properties =
     {
         { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
         { HttpPropertyKeys.HttpRouteDataKey, httpRouteData }
     }
         }
     };
     // Act
     var pros = new ProsjektrequestSkjema();
     pros.TilBruker = "";
     // The ASP.NET pipeline doesn't run, so validation don't run. 
     controller.ModelState.AddModelError("TilBruker", "mock error message");
     var response = controller.Post(pros);
     // Assert
     Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
 }
        public void Post_RegistrerProsjektReq_NOT_FOUND()
        {
            ProsjektrequestSkjema nyReq = new ProsjektrequestSkjema()
            {
                ProsjektId = 1,
                TilBruker = "*****@*****.**"
            };
            ProsjektrequestSkjema nyReq1 = new ProsjektrequestSkjema()
            {
                ProsjektId = 1,
                TilBruker = "*****@*****.**"
            };
            var commandBus = new Mock<IProsjektLogikk>();
            commandBus.Setup(c => c.LeggTilBrukerRequest(nyReq, It.IsAny<string>())).Returns(true);
            // Mapper.CreateMap<CategoryFormModel, CreateOrUpdateCategoryCommand>();
            var httpConfiguration = new HttpConfiguration();
            WebApiConfig.Register(httpConfiguration);
            var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"],
                new HttpRouteValueDictionary { { "controller", "ProsjektreqApi" } });
            var controller = new ProsjektreqApiController(commandBus.Object)
            {
                Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/ProsjektreqApi/")
                {
                    Properties =
            {
                { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
                { HttpPropertyKeys.HttpRouteDataKey, httpRouteData }
            }
                }
            };

            // Act
            var response = controller.Post(nyReq1);
            // Assert
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);         
        }
 public void Post_RegistrerProsjektReq_Ok()
 {
     ProsjektrequestSkjema nyReq = new ProsjektrequestSkjema()
     {
         ProsjektId = 1,
         TilBruker = "*****@*****.**"
     };
     var commandBus = new Mock<IProsjektLogikk>();
     commandBus.Setup(c => c.LeggTilBrukerRequest(It.IsAny<ProsjektrequestSkjema>(), It.IsAny<string>())).Returns(true);
     // Mapper.CreateMap<CategoryFormModel, CreateOrUpdateCategoryCommand>();
     var httpConfiguration = new HttpConfiguration();
     WebApiConfig.Register(httpConfiguration);
     var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"],
         new HttpRouteValueDictionary { { "controller", "ProsjektreqApi" } });
     var controller = new ProsjektreqApiController(commandBus.Object)
     {
         Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/ProsjektreqApi/")
         {
             Properties =
     {
         { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
         { HttpPropertyKeys.HttpRouteDataKey, httpRouteData }
     }
         }
     };
     // Act
     var response = controller.Post(nyReq);
     // Assert
     Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
     // var newCategory = JsonConvert.DeserializeObject<CategoryModel>(response.Content.ReadAsStringAsync().Result);
     Assert.AreEqual(string.Format("http://localhost/api/ProsjektreqApi"), response.Headers.Location.ToString());
 }