public ActionResult AddReview(int id, CommentViewModel commentViewModel) { int session_id = int.Parse(this.Session["User_ID"].ToString()); try { this.commentService.GetAll().Where(c => c.productId == id && c.userId == session_id).First(); this.ViewBag.DuplicateMessage = "You have already written a review to this product."; return(this.View()); } catch { commentViewModel.commentId = this.commentService.FindMaxId() + 1; commentViewModel.userId = session_id; commentViewModel.productId = id; int rate_id = this.commentService.FindMaxIdRate() + 1; var rateDTO = new RateDTO(rate_id, id, commentViewModel.rate); var commentDTO = new CommentDTO(commentViewModel.commentId, commentViewModel.productId, commentViewModel.userId, commentViewModel.message); this.commentService.CreateComment(commentDTO); this.commentService.CreateRate(rateDTO); return(this.RedirectToAction($"../Order/History")); } }
/// <summary> /// Записывает кур валюты в базу данных /// </summary> /// <param name="entity">Курс валюты</param> public async void CreateRateAsync(RateDTO entity) { var rate = Mapper.Map <RateDTO, Rate>(entity); await db.Rates.AddAsync(rate); db.SaveChanges(); }
public void UpdateTest() { //Arange RateDTO projectDto = new RateDTO() { Id = "id1", UserId = "userId1", BookId = "bookId1", Value = 1 }; bool isUpdate = false; Mock <IUnitOfWork> unitOfWorkMock = new Mock <IUnitOfWork>(); Mock <IRepository <Rate> > repositoryMock = new Mock <IRepository <Rate> >(); repositoryMock.Setup(repo => repo.Get(It.IsAny <Expression <Func <Rate, bool> > >())) .Returns <Expression <Func <Rate, bool> > >(predicate => _rates.Where(predicate.Compile()).AsQueryable()); repositoryMock.Setup(repo => repo.Update(It.Is <Rate>(entity => (entity.Id == projectDto.Id)))) .Callback(() => isUpdate = true); unitOfWorkMock.Setup(getRepo => getRepo.GetRepository <Rate>()).Returns(repositoryMock.Object); RateService _rateService = new RateService(unitOfWorkMock.Object); //Act _rateService.Update(projectDto); //Assert Assert.True(isUpdate); }
public IActionResult RateBook(RateViewModel rateVM) { if (string.IsNullOrEmpty(rateVM.UserId) && string.IsNullOrEmpty(rateVM.RatedEssenceId) && (rateVM.Value < 1 || rateVM.Value > 5)) { return(RedirectToAction("Error")); } BookDTO bookTORate = _bookService.Get(rateVM.RatedEssenceId); if (bookTORate == null) { return(RedirectToAction("Error")); } RateDTO yourRate = new RateDTO { BookId = rateVM.RatedEssenceId, UserId = rateVM.UserId, Value = rateVM.Value }; List <RateDTO> allRates = _rateService.GetAll().ToList(); if (allRates != null) { bool isFinded = false; foreach (var r in allRates) { if (r.BookId == rateVM.RatedEssenceId && r.UserId == rateVM.UserId) { isFinded = true; yourRate.Id = r.Id; bookTORate.Rate += (yourRate.Value - r.Value) / bookTORate.RatesAmount; _rateService.Update(yourRate); _bookService.Update(bookTORate); break; } } if (!isFinded) { uint amount = bookTORate.RatesAmount; bookTORate.RatesAmount++; bookTORate.Rate = (bookTORate.Rate * amount + yourRate.Value) / bookTORate.RatesAmount; _bookService.Update(bookTORate); _rateService.Add(yourRate); } } else { uint amount = bookTORate.RatesAmount; bookTORate.RatesAmount++; bookTORate.Rate = (bookTORate.Rate * amount + yourRate.Value) / bookTORate.RatesAmount; _bookService.Update(bookTORate); _rateService.Add(yourRate); } return(RedirectToAction("GetBookInfo", "Home", new { id = bookTORate.Id })); }
public void CreateRate(RateDTO o) { Rate d = new Rate { rateID = o.rateID, productId = o.productId, rate1 = o.rate, }; this.Database.Rates.Create(d); this.Database.Save(); }
public void CreateRate(RateDTO r) { Rate rate = new Rate() { rateID = r.rateID, productId = r.productId, rate1 = r.rate }; this.Database.Rates.Create(rate); this.Database.Save(); }
public IActionResult RateBook(string bookId, string userId, decimal rate) { if (string.IsNullOrEmpty(bookId) || string.IsNullOrEmpty(userId) || rate < 1 || rate > 5) { RedirectToAction("Error"); } BookDTO bookTORate = _bookService.Get(bookId); if (bookTORate == null) { return(RedirectToAction("Error")); } RateDTO yourRate = new RateDTO { BookId = bookId, UserId = userId, Value = rate }; List <RateDTO> allRates = _rateService.GetAll().ToList(); if (allRates != null) { bool isFinded = false; foreach (var r in allRates) { if (r.BookId == bookId && r.UserId == userId) { isFinded = true; yourRate.Id = r.Id; bookTORate.Rate = (bookTORate.Rate * bookTORate.RatesAmount - r.Value + rate) / bookTORate.RatesAmount; _rateService.Update(yourRate); _bookService.Update(bookTORate); break; } } if (!isFinded) { uint amount = bookTORate.RatesAmount; bookTORate.RatesAmount++; bookTORate.Rate = (bookTORate.Rate * amount + rate) / bookTORate.RatesAmount; _bookService.Update(bookTORate); _rateService.Add(yourRate); } } else { uint amount = bookTORate.RatesAmount; bookTORate.RatesAmount++; bookTORate.Rate = (bookTORate.Rate * amount + rate) / bookTORate.RatesAmount; _bookService.Update(bookTORate); _rateService.Add(yourRate); } return(RedirectToAction("GetBookInfo", "Home", new { id = bookTORate.Id })); }
/// <summary> /// Обновляет запись курса валюты /// </summary> /// <param name="entity">Курс валюты</param> public async void UpdateRateAsync(RateDTO entity) { var rate = Mapper.Map <RateDTO, Rate>(entity); var rateDB = await db.Rates.FirstOrDefaultAsync(r => r.Id == rate.Id); if (rateDB != null) { rateDB.ConversionPairs = rate.ConversionPairs; rateDB.Rates = rate.Rates; } db.Entry(rateDB).State = EntityState.Modified; db.SaveChanges(); }
public IActionResult RateBook([FromBody] RatePostModel rate) { BookDTO bookToRate = _bookProvider.Get(rate.RatedEssenceId); if (bookToRate == null) { return(BadRequest()); } RateDTO yourRate = new RateDTO { BookId = rate.RatedEssenceId, UserId = rate.UserId, Value = rate.Value }; List <RateDTO> allRates = _provider.GetAll().ToList(); if (allRates.Any()) { bool isFinded = false; foreach (var r in allRates) { if (r.BookId == rate.RatedEssenceId && r.UserId == rate.UserId) { isFinded = true; yourRate.Id = r.Id; bookToRate.Rate += (yourRate.Value - r.Value) / bookToRate.RatesAmount; _dataWriter.Update(yourRate); _bookDataWriter.Update(bookToRate); break; } } if (!isFinded) { uint amount = bookToRate.RatesAmount; bookToRate.RatesAmount++; bookToRate.Rate = (bookToRate.Rate * amount + yourRate.Value) / bookToRate.RatesAmount; _bookDataWriter.Update(bookToRate); _dataWriter.Add(yourRate); } } else { uint amount = bookToRate.RatesAmount; bookToRate.RatesAmount++; bookToRate.Rate = (bookToRate.Rate * amount + yourRate.Value) / bookToRate.RatesAmount; _bookDataWriter.Update(bookToRate); _dataWriter.Add(yourRate); } return(Ok()); }
public OrderShippingInfo CreateShippingInfo(RateDTO rate, long orderId, int shippingNumber, int methodId) { var now = DateHelper.GetAppNowTime(); var shippingInfo = new OrderShippingInfo { OrderId = orderId, ShippingMethodId = methodId, ShippingNumber = shippingNumber, ShippingGroupId = rate.GroupId, ShipmentOfferId = rate.OfferId, ShipmentProviderType = rate.ProviderType, StampsShippingCost = rate.Amount, InsuranceCost = rate.InsuranceCost, SignConfirmationCost = rate.SignConfirmationCost, UpChargeCost = rate.UpChargeCost, PackageLength = rate.PackageLength, PackageWidth = rate.PackageWidth, PackageHeight = rate.PackageHeight, ShippingDate = DateHelper.FitTOSQLDateTime(rate.ShipDate), EstimatedDeliveryDate = DateHelper.FitTOSQLDateTime(rate.DeliveryDate), EarliestDeliveryDate = DateHelper.FitTOSQLDateTime(rate.EarliestDeliveryDate), DeliveryDaysInfo = StringHelper.Substring(rate.DeliveryDaysInfo, 50), DeliveryDays = rate.DeliveryDays, LabelPath = null, LabelPrintPackId = null, NumberInBatch = rate.NumberInBatch, FeedId = null, IsActive = rate.IsDefault, IsVisible = rate.IsVisible, IsFeedSubmitted = false, IsFulfilled = false, MessageIdentifier = 0, TrackingNumber = null, CreateDate = now, UpdateDate = now }; Add(shippingInfo); unitOfWork.Commit(); return(shippingInfo); }
public IHttpActionResult Rate([FromBody] RateDTO rate) { try { tradeService.RateTradingLot(rate, User.Identity.Name); } catch (NotFoundException) { return(NotFound()); } catch (AuctionException ex) { return(BadRequest(ex.Message)); } return(Ok()); }
public void GetByIdTest() { //Arange Mock <IUnitOfWork> unitOfWorkMock = new Mock <IUnitOfWork>(); Mock <IRepository <Rate> > repositoryMock = new Mock <IRepository <Rate> >(); repositoryMock.Setup(repo => repo.Get(It.IsAny <Expression <Func <Rate, bool> > >())) .Returns <Expression <Func <Rate, bool> > >(predicate => _rates.Where(predicate.Compile()).AsQueryable()); unitOfWorkMock.Setup(getRepo => getRepo.GetRepository <Rate>()).Returns(repositoryMock.Object); RateService _rateService = new RateService(unitOfWorkMock.Object); //Act RateDTO _rateDto = _rateService.Get("id1"); //Assert Assert.NotNull(_rateDto); Assert.Equal(1, _rateDto.Value); }
/// <summary> /// Makes rate for trade /// </summary> /// <param name="rate">Rate</param> /// <param name="userName">User name who makes rate</param> public void RateTradingLot(RateDTO rate, string userName) { try { if (!IsTradeExist(rate.TradeId)) { throw new NotFoundException($"Trade with id: {rate.TradeId}"); } if (!UserManager.IsUserWithUserNameExist(userName)) { throw new NotFoundException($"User with user name: {userName}"); } Trade trade = Database.Trades.GetTradeById(rate.TradeId); UserProfile user = Database.UserProfiles.GetProfileByUserName(userName); if (trade.TradingLot.User.Id == user.Id) { throw new AuctionException("This is your lot"); } if (DateTime.Now.CompareTo(trade.TradeEnd) >= 0) { throw new AuctionException("This trade is over"); } if (IsUserAlreadyHaveMaxBet(rate.TradeId, user.Id)) { throw new AuctionException("You already have max bet on this lot"); } bool isNew = user.Trades.All(t => !t.Id.Equals(trade.Id)); if (trade.LastPrice < rate.Sum) { trade.LastPrice = rate.Sum; trade.LastRateUserId = user.Id; if (isNew) { user.Trades.Add(trade); } } else { throw new AuctionException($"Your price should be greater than: {trade.LastPrice}"); } Database.UserProfiles.UpdateProfile(user); Database.Trades.UpdateTrade(trade); } catch (NotFoundException ex) { throw ex; } catch (AuctionException ex) { throw ex; } catch (Exception) { throw new DatabaseException(); } Database.Save(); }