Exemple #1
0
        /// <summary>
        /// Converter
        /// </summary>
        /// <param name="userModel"></param>
        /// <returns></returns>
        public static DTOUserPublic DtoUserToDtoUserPublic(DTOUser userModel)
        {
            DTOUserPublic userPublic = new DTOUserPublic();

            userPublic.Id       = userModel.Id;
            userPublic.Name     = userModel.Name;
            userPublic.UserName = userModel.UserName;
            userPublic.Note     = userModel.Note;
            userPublic.Gender   = userModel.Gender;
            return(userPublic);
        }
        /// <summary>
        /// Show on a View which transaction have been noted
        /// </summary>
        /// <param name="CurrentarticleId"></param>
        /// <param name="sellername"></param>
        /// <returns>View with updated transactions note status</returns>
        public async Task <IActionResult> secondPageManager(long CurrentarticleId, string sellername)
        {
            var email = HttpContext.User.Identity.Name;
            var Buyer = _userRepo.GetUserByEmail(email);

            var transactionList   = new List <DTOArticle>();
            var Seller            = _userRepo.GetUserByUserName(sellername);
            var BuyerTransactions = await _transactionRepo.GetTransactionByUserId(Buyer.Id);

            foreach (var transaction in BuyerTransactions)
            {
                var toInsert       = new DTOArticle();
                var currentArticle = await _articleRepo.GetById(transaction.ArticleId);

                toInsert.Name  = currentArticle.Name;
                toInsert.State = currentArticle.State;
                toInsert.Id    = currentArticle.Id;
                if (toInsert.Transaction == null)
                {
                    toInsert.Transaction = new DTOTransaction();
                }
                var sellerToInsert = new DTOUserPublic();
                sellerToInsert.Name     = Seller.Name;
                sellerToInsert.UserName = Seller.UserName;
                toInsert.User           = sellerToInsert;

                if (currentArticle.Id == CurrentarticleId)
                {
                    toInsert.Transaction = transaction;

                    if (transaction.TransactionState == "sold")
                    {
                        toInsert.Transaction.TransactionState = "Sold and Noted";
                        transaction.TransactionState          = "Sold and Noted";
                    }
                    var upt = await _transactionRepo.Update(transaction);
                }
                else
                {
                    toInsert.Transaction.TransactionState = transaction.TransactionState;
                }

                transactionList.Add(toInsert);
            }

            ViewData["transactionlist"] = transactionList;

            return(View("Profile_secondPage"));
        }
        public async Task <IActionResult> Profile()
        {
            var          email        = HttpContext.User.Identity.Name;
            var          user         = _userRepo.GetUserByEmail(email);
            DTOLoginUser userToReturn = new DTOLoginUser();

            userToReturn.Name     = user.Name;
            userToReturn.Email    = user.Email;
            userToReturn.UserName = user.UserName;
            userToReturn.Address  = user.Address;
            userToReturn.Gender   = user.Gender;
            userToReturn.Note     = user.Note;
            userToReturn.NbNotes  = user.NbNotes;

            var transactionList = new List <DTOArticle>();

            var userTransactions = await _transactionRepo.GetTransactionByUserId(user.Id);

            foreach (var transaction in userTransactions)
            {
                var toInsert = new DTOArticle();
                var article  = await _articleRepo.GetById(transaction.ArticleId);

                toInsert.Name  = article.Name;
                toInsert.State = article.State;
                toInsert.Id    = article.Id;

                if (toInsert.Transaction == null)
                {
                    toInsert.Transaction = new DTOTransaction();
                    toInsert.Transaction.TransactionState = transaction.TransactionState;
                }


                var sellerFromDb = await _userRepo.GetById(article.SellerId);

                var sellerToInsert = new DTOUserPublic();
                sellerToInsert.Name     = sellerFromDb.Name;
                sellerToInsert.UserName = sellerFromDb.UserName;
                toInsert.User           = sellerToInsert;
                transactionList.Add(toInsert);
            }


            ViewData["transactionlist"] = transactionList;
            return(View(userToReturn));
        }
        public async Task <IActionResult> NoteUser()
        {
            var email = HttpContext.User.Identity.Name;
            var Buyer = _userRepo.GetUserByEmail(email);


            var transactionList   = new List <DTOArticle>();
            var SellerName        = Request.Form["id"].ToString();
            var Seller            = _userRepo.GetUserByUserName(SellerName);
            var BuyerTransactions = await _transactionRepo.GetTransactionByUserId(Buyer.Id);

            var articleId = (long)Convert.ToDouble(Request.Form["articleId"].ToString());

            foreach (var transaction in BuyerTransactions)
            {
                var toInsert       = new DTOArticle();
                var currentArticle = await _articleRepo.GetById(transaction.ArticleId);

                toInsert.Name  = currentArticle.Name;
                toInsert.State = currentArticle.State;
                toInsert.Id    = currentArticle.Id;

                if (toInsert.Transaction == null)
                {
                    toInsert.Transaction = new DTOTransaction();
                }
                var sellerToInsert = new DTOUserPublic();
                sellerToInsert.Name     = Seller.Name;
                sellerToInsert.UserName = Seller.UserName;
                toInsert.User           = sellerToInsert;

                if (currentArticle.Id == articleId)
                {
                    toInsert.Transaction = transaction;

                    if (transaction.TransactionState == "sold")
                    {
                        toInsert.Transaction.TransactionState = "Sold and Noted";
                        transaction.TransactionState          = "Sold and Noted";
                    }
                    var upt = await _transactionRepo.Update(transaction);

                    var note = Convert.ToDouble(Request.Form["note"]);
                    Seller.NbNotes += 1;
                    Seller.Note     = FindNoteAverage(note, Seller.NbNotes);
                    var test = await _userRepo.Update(Seller);

                    if (test == null)
                    {
                        View("Cart", "Failed");
                    }
                }
                else
                {
                    toInsert.Transaction.TransactionState = transaction.TransactionState;
                }


                transactionList.Add(toInsert);
            }

            ViewData["transactionlist"] = transactionList;

            return(RedirectToAction("secondPageManager", new { CurrentarticleId = articleId, sellername = SellerName }));
        }