Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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 }));
            }
        }
Ejemplo n.º 5
0
        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 }));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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 }));
        }
Ejemplo n.º 8
0
        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 }));
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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 }));
            }
        }
Ejemplo n.º 11
0
        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 }));
        }
Ejemplo n.º 12
0
        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 }));
            }
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }