public HttpResponseMessage PutAdInappropriate(InappropriateAdModel inappropriateModel) { AdModel adModel; try { if (InappropriateAdExists(inappropriateModel) == null) { adModel = unitOfWork.AdRepository.Get(a => a.Id == inappropriateModel.AdId).Select(x => Mapper.Map <AdModel>(x)).FirstOrDefault(); adModel.InappCounter++; var inappropriate = Mapper.Map <InappropriateAd>(inappropriateModel); unitOfWork.InappropriateAdRepository.Insert(inappropriate); var ad = Mapper.Map <Ad>(adModel); unitOfWork.AdRepository.Update(ad); unitOfWork.Save(); return(Create(inappropriate)); } else { return(Forbidden()); } } catch (ObjectNotFoundException) { return(NotFound("Not Found. There is no Ad")); } catch (Exception ex) { return(InternalServerError("Server Error: Can not set Inappropriate flag for this Ad.", ex)); } }
// helper functions private InappropriateAdModel InappropriateAdExists(InappropriateAdModel inappModel) { try { return(unitOfWork.InappropriateAdRepository.Get(r => r.UserId == inappModel.UserId && r.AdId == inappModel.AdId).Select(x => Mapper.Map <InappropriateAdModel>(x)).First()); } catch { return(null); } }
public void PutAdInappropriate_ShouldNotBeInserted() { int count = inappAds.Count; var inappModel = new InappropriateAdModel { Id = Guid.NewGuid(), Description = "AdDescription", AdId = new Guid("ee4cd8a3-eb0e-453d-a3b5-081b9165942e"), //ad2 UserId = new Guid("fa8849b6-c4b6-47d5-96a0-109b0500047a") //user1 }; var response = controller.PutAdInappropriate(inappModel); Assert.AreEqual(HttpStatusCode.Forbidden, response.StatusCode); Assert.AreEqual(count, inappAds.Count); }
public void PutAdInappropriate_ShouldBeInserted() { int count = inappAds.Count; var inappModel = new InappropriateAdModel { Id = Guid.NewGuid(), Description = "AdDescription", AdId = new Guid("ee4cd8a3-eb0e-453d-a3b5-081b9165942e"), //ad2 UserId = new Guid("39c3a066-78b2-43a3-a04b-28757864114e") //user2 }; var response = controller.PutAdInappropriate(inappModel); Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); Assert.AreEqual(count + 1, inappAds.Count); }