public BLLMethodResult CreateBidWithPositiveResult(BidDTO bidFromView, int userId) { BLLMethodResult result = new BLLMethodResult(); UserService us = new UserService(); UserDTO userDTO = us.Get(userId); userDTO.FrozenBalance = bidFromView.BidPrice; userDTO.Balance = userDTO.Balance - bidFromView.BidPrice; BLLMethodResult addBalanceToDB = us.AddToFrozenBalance(userDTO); Bid bidNew = new Bid(); bidNew.LotId = bidFromView.LotId; bidNew.CreatedBy = userId; bidNew.CreatedDateTime = DateTime.Now; bidNew.BidPrice = bidFromView.BidPrice; efu.Bids.Create(bidNew); result.Result = 0; result.Message = "Your bid is in database"; return(result); }
public BLLMethodResult DeleteLot(int lotId) { BLLMethodResult result = new BLLMethodResult(); try { IEnumerable <BidDTO> bidsForLot = AllBidsForLot(lotId); if (bidsForLot.Count() == 0) { Lot lot = efu.Lots.Get(lotId); efu.Lots.Delete(lot.LotId); result.Result = 0; result.Message = "Your lot has been deleted"; } else { result.Result = 1; result.Message = "The lot has bids. It cannot be deleted."; } } catch (Exception ex) { result.Result = 2; result.Message = ex.Message; } return(result); }
public BLLMethodResult LoginUser(UserDTO authFromView) { BLLMethodResult result = new BLLMethodResult(); try { User user = efu.Users.Find(x => x.Email == authFromView.Email && x.Password == authFromView.Password).FirstOrDefault(); if (user != null) { authFromView.UserId = user.UserId; result.Result = 0; result.Message = "Your login is successful"; } else { result.Result = 2; result.Message = "There is a mistake in login or in password."; } } catch (Exception ex) { result.Result = 1; result.Message = ex.Message; } return(result); }
public ActionResult Login(AuthViewModel authFromView) { UserDTO userDTO = new UserDTO(); UserService us = new UserService(); userDTO.Email = authFromView.Email; userDTO.Password = authFromView.Password; BLLMethodResult result = us.LoginUser(userDTO); if (result.Result == 0) { Response.Cookies["UserId"].Value = userDTO.UserId.ToString(); Response.Cookies["UserId"].Expires = DateTime.Now.AddHours(1); Response.Cookies["Email"].Value = userDTO.Email; Response.Cookies["Email"].Expires = DateTime.Now.AddHours(1); Session["UserEmail"] = userDTO.Email; return(RedirectToAction("AllLots", "Lot")); } else { return(RedirectToAction("Message", "Home", new { str = result.Message })); } }
public ActionResult Balance(BalanceViewModel balanceFromView) { UserService us = new UserService(); var config = new MapperConfiguration(cfg => cfg.CreateMap <BalanceViewModel, BalanceDTO>()); var mapper = new Mapper(config); var balanceDTO = mapper.Map <BalanceDTO>(balanceFromView); BLLMethodResult result = us.AddToBalance(balanceDTO); return(RedirectToAction("Message", "Home", new { str = result.Message })); }
public BLLMethodResult CreateUser(UserDTO userFromView) { BLLMethodResult result = new BLLMethodResult(); bool flag = true; IEnumerable <User> users = efu.Users.GetAll(); foreach (User user in users) { if (user.Email == userFromView.Email) { result.Result = 2; result.Message = "A user with this name is already registered"; flag = false; break; } } if (userFromView.Password != userFromView.ConfirmPassword) { result.Result = 3; result.Message = "Password and confirm password are different."; flag = false; } if (flag) { try { User user = new User(); user.Email = userFromView.Email; user.Password = userFromView.Password; user.Balance = 0; user.FrozenBalance = 0; user.GetLetters = userFromView.GetLetters; user.CreatedBy = 0; user.CreatedDateTime = DateTime.Now; user.ModifiedBy = 0; user.ModifiedDateTime = DateTime.Now; efu.Users.Create(user); result.Result = 0; result.Message = "Your registration is successful"; } catch (ValidationException ex) { result.Result = 1; result.Message = ex.Message; } } return(result); }
public ActionResult Register(UserViewModel userFromView) { UserService us = new UserService(); var config = new MapperConfiguration(cfg => cfg.CreateMap <UserViewModel, UserDTO>()); var mapper = new Mapper(config); var userDTO = mapper.Map <UserDTO>(userFromView); BLLMethodResult result = us.CreateUser(userDTO); return(RedirectToAction("Message", "Home", new { str = result.Message })); }
public ActionResult MakeBid(BidViewModel bidViewModel) { int userId = Convert.ToInt32(Request.Cookies["UserId"].Value); BidService bs = new BidService(); var config = new MapperConfiguration(cfg => cfg.CreateMap <BidViewModel, BidDTO>()); var mapper = new Mapper(config); var bidDTO = mapper.Map <BidDTO>(bidViewModel); BLLMethodResult result = bs.CreateBid(bidDTO, userId); return(RedirectToAction("Message", "Home", new { str = result.Message })); }
public BLLMethodResult UpdateLot(LotDTO lotDTO) { BLLMethodResult result = new BLLMethodResult(); try { IEnumerable <BidDTO> bidsForLot = AllBidsForLot(lotDTO.LotId); if (bidsForLot.Count() == 0) { if (TimeCondition(lotDTO.LotTime)) { Lot lot = efu.Lots.Get(lotDTO.LotId); lot.Name = lotDTO.Name; lot.Description = lotDTO.Description; lot.InitialPrice = lotDTO.InitialPrice; lot.ExpirationTime = DateTime.Now.AddMinutes(lotDTO.LotTime); lot.ModifiedBy = lotDTO.CreatedBy; lot.ModifiedDateTime = DateTime.Now; efu.Lots.Update(lot); efu.Lots.Save(); var config = new MapperConfiguration(cfg => cfg.CreateMap <Lot, LotDTO>()); var mapper = new Mapper(config); LotDTO newlotDTO = mapper.Map <LotDTO>(lot); result.Result = 0; result.Message = "Your lot has been updated"; result.Object = newlotDTO; } else { result.Result = 2; result.Message = "Time is outside the allowable limits."; } } else { result.Result = 1; result.Message = "The lot has bids. It cannot be updated."; } } catch (Exception ex) { result.Result = 2; result.Message = ex.Message; } return(result); }
public ActionResult DeleteLot(int lotId) { LotService ls = new LotService(); BLLMethodResult result = ls.DeleteLot(lotId); if (result.Result == 0) { return(RedirectToAction("LotsOfUser", "Lot")); } else { return(RedirectToAction("Message", "Home", new { str = result.Message })); } }
public ActionResult NewLot(LotViewModel lotFromView) { LotDTO lotDTO = new LotDTO(); LotService ls = new LotService(); lotDTO.Name = lotFromView.Name; lotDTO.Description = lotFromView.Description; lotDTO.InitialPrice = lotFromView.InitialPrice; lotDTO.LotTime = lotFromView.LotTime; int userId = Convert.ToInt32(Request.Cookies["UserId"].Value); BLLMethodResult result = ls.CreateLot(lotDTO, userId); return(RedirectToAction("Message", "Home", new { str = result.Message })); }
public ActionResult UpdateLotPost(LotViewModel lotViewModel) { LotService ls = new LotService(); var config = new MapperConfiguration(cfg => cfg.CreateMap <LotViewModel, LotDTO>()); var mapper = new Mapper(config); var lotDTO = mapper.Map <LotDTO>(lotViewModel); BLLMethodResult result = ls.UpdateLot(lotDTO); if (result.Result == 0) { return(RedirectToAction("LotInformation", "Lot", result.Object)); } else { return(RedirectToAction("Message", "Home", new { str = result.Message })); } }
public BLLMethodResult CreateLot(LotDTO lotFromView, int userId) { BLLMethodResult result = new BLLMethodResult(); try { if (TimeCondition(lotFromView.LotTime)) { Lot lot = new Lot(); lot.Name = lotFromView.Name; lot.Description = lotFromView.Description; lot.InitialPrice = lotFromView.InitialPrice; lot.ExpirationTime = DateTime.Now.AddMinutes(lotFromView.LotTime); lot.CreatedBy = userId; lot.CreatedDateTime = DateTime.Now; lot.ModifiedBy = userId; lot.ModifiedDateTime = DateTime.Now; lot.Status = (int)Enum.LotStatus.Created; efu.Lots.Create(lot); result.Result = 0; result.Message = "Your lot has been added."; } else { result.Result = 2; result.Message = "Time is outside the allowable limits."; } } catch (ValidationException ex) { result.Result = 1; result.Message = ex.Message; } return(result); }
public BLLMethodResult AddToBalance(BalanceDTO balanceDTO) { BLLMethodResult result = new BLLMethodResult(); try { User user = efu.Users.Get(balanceDTO.UserId); user.Balance = user.Balance + balanceDTO.AddMoney; efu.Users.Update(user); efu.Users.Save(); result.Result = 0; result.Message = "Your balance is update"; } catch (Exception ex) { result.Result = 1; result.Message = ex.Message; } return(result); }
public BLLMethodResult AddToFrozenBalance(UserDTO userDTO) { BLLMethodResult result = new BLLMethodResult(); try { User user = efu.Users.Get(userDTO.UserId); user.Balance = userDTO.Balance; user.FrozenBalance = user.FrozenBalance + userDTO.FrozenBalance; efu.Users.Update(user); efu.Users.Save(); result.Result = 0; result.Message = "Your bid has been accepted"; } catch (Exception ex) { result.Result = 1; result.Message = ex.Message; } return(result); }
public BLLMethodResult CreateBid(BidDTO bidFromView, int userId) { BLLMethodResult result = new BLLMethodResult(); try { UserService us = new UserService(); UserDTO userDTO = us.Get(userId); if (bidFromView.BidPrice < userDTO.Balance) { LotService ls = new LotService(); BidDTO lastBid = ls.AllBidsForLot(bidFromView.LotId).OrderByDescending(x => x.CreatedDateTime).FirstOrDefault(); if (bidFromView.BidPrice <= bidFromView.InitialPrice) { result.Result = 1; result.Message = "Your bid is less than initial price."; } else if ((lastBid != null) && (bidFromView.BidPrice <= lastBid.BidPrice)) { result.Result = 2; result.Message = "Your bid is less than previous one."; } else { if (lastBid != null) { int previousUserId = lastBid.CreatedBy; int previousBidId = lastBid.BidId; Bid previousBidForEmail = efu.Bids.Get(previousBidId); var config = new MapperConfiguration(cfg => cfg.CreateMap <Bid, BidDTO>()); var mapper = new Mapper(config); BidDTO previousBidForEmailDTO = mapper.Map <BidDTO>(previousBidForEmail); User previousUser = efu.Users.Get(previousUserId); previousUser.FrozenBalance = previousUser.FrozenBalance - lastBid.BidPrice; previousUser.Balance = previousUser.Balance + lastBid.BidPrice; efu.Users.Update(previousUser); efu.Users.Save(); result = CreateBidWithPositiveResult(bidFromView, userId); SendEmailAboutHigherBid(previousBidForEmailDTO); } else { result = CreateBidWithPositiveResult(bidFromView, userId); } } } else { result.Result = 1; result.Message = "Not enough money in the account. Please top up your account."; } } catch (ValidationException ex) { result.Result = 1; result.Message = ex.Message; } return(result); }