Example #1
0
        public IActionResult MyItems()
        {
            string id   = HttpContext.Session.GetString("Id");
            string role = HttpContext.Session.GetString("role");

            if (id == null || role == "buyer" || role == "seller")
            {
                return(RedirectToAction("login", "login"));
            }
            string Userid = HttpContext.Session.GetString("Id");

            ReviewsContext db = new ReviewsContext();

            List <SellersItems> list            = new List <SellersItems>();
            List <byte[]>       listImageRefund = new List <byte[]>();
            var items = db.PurchasedItems.ToList().Where(x => x.BuyerId.ToString() == Userid).Select(a => a).ToList();


            foreach (var item in items)
            {
                var currentItem = db.SellersItems.ToList().Where(x => x.Id == item.ItemId).Select(x => x).ToList();

                SellersItems itemCurrent = new SellersItems();
                {
                    itemCurrent.Categories     = item.Id.ToString();
                    itemCurrent.CreatedAt      = item.DateOfPurchased;
                    itemCurrent.Description    = item.OrderNumber;
                    itemCurrent.Id             = currentItem[0].Id;
                    itemCurrent.Image          = currentItem[0].Image;
                    itemCurrent.ItemName       = currentItem[0].ItemName;
                    itemCurrent.KeyWords       = item.Status;
                    itemCurrent.Ppfee          = currentItem[0].Ppfee;
                    itemCurrent.Price          = currentItem[0].Price;
                    itemCurrent.RefundDaysTime = currentItem[0].RefundDaysTime;
                    itemCurrent.ReviesNeeded   = currentItem[0].ReviesNeeded;
                    itemCurrent.SellerEmail    = currentItem[0].SellerEmail;
                    itemCurrent.SellerId       = currentItem[0].SellerId;
                    itemCurrent.StoreName      = currentItem[0].StoreName;
                };

                list.Add(itemCurrent);


                if (item.Status == "completed")
                {
                    listImageRefund.Add(item.RefundImage);
                }
                else
                {
                    var oneItem = new byte[] { 0x20 };
                    listImageRefund.Add(oneItem);
                }
            }

            listImageRefund.Reverse();
            list.Reverse();
            ViewBag.listImageRefund = listImageRefund;
            ViewBag.itemsList       = list;
            return(View());
        }
Example #2
0
        public async Task GetItemReturnsItem()
        {
            var options = new DbContextOptionsBuilder <ReviewsContext>()
                          .UseInMemoryDatabase(databaseName: $"ItemsDatabase{Guid.NewGuid()}")
                          .Options;

            using (var context = new ReviewsContext(options))
            {
                context.Items.Add(new Item {
                    Name = "item"
                });
                context.Items.Add(new Item {
                    Name = "item1"
                });
                context.SaveChanges();
            }

            using (var context = new ReviewsContext(options))
            {
                ItemRepository repo        = new ItemRepository(context);
                var            _controller = new ItemsController(repo, _mockLogger.Object);
                var            okResult    = await _controller.GetItem("item") as OkObjectResult;

                Assert.Equal(200, okResult.StatusCode);
            }
        }
        public SellersItemsController(IConfiguration configuration, ReviewsContext context)
        {
            _configuration = configuration;

            connectionString = _configuration.GetConnectionString("DatabaseConnection");
            _context         = context;
        }
Example #4
0
        public IActionResult Login(string login, string password)
        {
            ReviewsContext      db = new ReviewsContext();
            List <UsersAccount> CheckUserCredentials = db.UsersAccount.ToList().Where(a => a.Login == login && a.Password == password)
                                                       .Select(a => a).ToList();

            if (CheckUserCredentials.Count() != 0)
            {
                HttpContext.Session.SetString("Login", login);
                HttpContext.Session.SetString("Email", CheckUserCredentials[0].Email);
                HttpContext.Session.SetString("Id", Convert.ToString(CheckUserCredentials[0].Id));
                HttpContext.Session.SetString("firstName", CheckUserCredentials[0].FirstName);
                HttpContext.Session.SetString("lastName", CheckUserCredentials[0].LastName);
                HttpContext.Session.SetString("role", CheckUserCredentials[0].Role);


                //using (SqlConnection conn = new SqlConnection(connectionString))
                //{

                //    conn.Open();
                //    DateTime loginTime = DateTime.Now;
                //    // 1.  create a command object identifying the stored procedure
                //    SqlCommand cmd = new SqlCommand("Update UsersAccount Set LastLogin VALUES = " + "'" + loginTime + "'" + " Where ID = " + CheckUserCredentials[0].Id + "", conn);
                //    cmd.Parameters.AddWithValue("@value", loginTime);
                //    cmd.Parameters.AddWithValue("@ID", CheckUserCredentials[0].Id);

                //    cmd.ExecuteNonQuery();

                //}
                return(RedirectToAction("Index", "Home"));
            }
            ViewBag.message   = "Login and Password not match, please try again";
            ViewBag.classinfo = "alert alert-danger";
            return(View());
        }
Example #5
0
        public async Task GetReviewsWithLowerRatingReturnsReviews()
        {
            var options = new DbContextOptionsBuilder <ReviewsContext>()
                          .UseInMemoryDatabase(databaseName: $"ItemsDatabase{Guid.NewGuid()}")
                          .Options;

            using (var context = new ReviewsContext(options))
            {
                context.Items.Add(new Item {
                    Name = "item", Reviews = new List <Review>()
                    {
                        new Review {
                            Feedback = "smth", Rating = 3
                        }
                    }
                });
                context.SaveChanges();
            }

            using (var context = new ReviewsContext(options))
            {
                ItemRepository repo        = new ItemRepository(context);
                var            _controller = new ReviewsController(repo, _mockLogger.Object, _mapper.Object);
                var            okResult    = await _controller.GetReviewByAverageRatingLowerThan(2) as OkObjectResult;

                Assert.Equal(200, okResult.StatusCode);
            }
        }
Example #6
0
        public PurchasedItem(IConfiguration configuration, ReviewsContext context)
        {
            _configuration = configuration;

            connectionString = _configuration.GetConnectionString("DatabaseConnection");
            _context         = context;
        }
Example #7
0
        public IActionResult Register(string firstName, string lastName, string login, string password, string email)
        {
            ReviewsContext      db = new ReviewsContext();
            List <UsersAccount> CheckIfAccountAlreadyTaken = db.UsersAccount.ToList().Where(a => a.Login == login)
                                                             .Select(a => a).ToList();

            if (CheckIfAccountAlreadyTaken.Count() == 0)
            {
                string computerName = Environment.MachineName;
                string ip           = "";

                var host = Dns.GetHostEntry(Dns.GetHostName());
                foreach (var Ip in host.AddressList)
                {
                    if (Ip.AddressFamily == AddressFamily.InterNetwork)
                    {
                        ip = Ip.ToString();
                    }
                }
                ;

                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();

                    // 1.  create a command object identifying the stored procedure
                    SqlCommand cmd = new SqlCommand("NewUser", conn);

                    // 2. set the command object so it knows to execute a stored procedure
                    cmd.CommandType = CommandType.StoredProcedure;

                    // 3. add parameter to command, which will be passed to the stored procedure
                    cmd.Parameters.Add(new SqlParameter("@login", login));
                    cmd.Parameters.Add(new SqlParameter("@password", password));
                    cmd.Parameters.Add(new SqlParameter("@email", email));
                    cmd.Parameters.Add(new SqlParameter("@IP", ip));
                    cmd.Parameters.Add(new SqlParameter("@ComputerName", computerName));
                    cmd.Parameters.Add(new SqlParameter("@FirstName", firstName));
                    cmd.Parameters.Add(new SqlParameter("@LastName", lastName));
                    cmd.Parameters.Add(new SqlParameter("@Role", "buyer"));


                    cmd.ExecuteNonQuery();
                }
                ViewBag.message   = "Registration Complete successfully please login.";
                ViewBag.classinfo = "alert alert-success";
            }
            else
            {
                ViewBag.message   = "User with this login already exist please try again.";
                ViewBag.classinfo = "alert alert-danger";
            }


            return(View("Login"));
        }
        public IActionResult ItemsToRefund()
        {
            string idd  = HttpContext.Session.GetString("Id");
            string role = HttpContext.Session.GetString("role");

            if (idd == null || role != "seller")
            {
                return(RedirectToAction("login", "login"));
            }

            ReviewsContext db = new ReviewsContext();

            List <SellersItems> list = new List <SellersItems>();

            string id = HttpContext.Session.GetString("Id");

            var           lists  = db.PurchasedItems.ToList().Where(x => x.SellerId.ToString() == id && x.Status == "reviewLive").Select(x => x).ToList();
            List <byte[]> Image2 = new List <byte[]>();
            List <int>    listID = new List <int>();

            foreach (var item in lists)
            {
                var currentItem = db.SellersItems.ToList().Where(x => x.Id == item.ItemId).Select(x => x).ToList();
                ViewBag.Paypal = item.Ppemail;

                SellersItems itemCurrent = new SellersItems();

                {
                    itemCurrent.Categories     = currentItem[0].Categories;
                    itemCurrent.CreatedAt      = item.DateOfPurchased;
                    itemCurrent.Description    = item.OrderNumber;
                    itemCurrent.Id             = currentItem[0].Id;
                    itemCurrent.Image          = currentItem[0].Image;
                    itemCurrent.ItemName       = currentItem[0].ItemName;
                    itemCurrent.KeyWords       = item.Status;
                    itemCurrent.Ppfee          = currentItem[0].Ppfee;
                    itemCurrent.Price          = currentItem[0].Price;
                    itemCurrent.RefundDaysTime = currentItem[0].RefundDaysTime;
                    itemCurrent.ReviesNeeded   = currentItem[0].ReviesNeeded;
                    itemCurrent.SellerEmail    = currentItem[0].SellerEmail;
                    itemCurrent.SellerId       = currentItem[0].SellerId;
                };
                list.Add(itemCurrent);
                Image2.Add(item.ReviewScreenshot);
                listID.Add(item.Id);
            }
            ViewBag.ImageReviewLive = Image2;
            ViewBag.itemsList       = list;
            ViewBag.listId          = listID;
            return(View());
        }
        public IActionResult Register(string login, string password, string email)
        {
            ReviewsContext      db = new ReviewsContext();
            List <UsersAccount> CheckIfAccountAlreadyTaken = db.UsersAccount.ToList().Where(a => a.Login == login && a.Password == password)
                                                             .Select(a => a).ToList();

            if (CheckIfAccountAlreadyTaken.Count() == 0)
            {
                string computerName = Environment.MachineName;
                string ip           = "";

                var host = Dns.GetHostEntry(Dns.GetHostName());
                foreach (var Ip in host.AddressList)
                {
                    if (Ip.AddressFamily == AddressFamily.InterNetwork)
                    {
                        ip = Ip.ToString();
                    }
                }
                ;

                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();

                    // 1.  create a command object identifying the stored procedure
                    SqlCommand cmd = new SqlCommand("NewUser", conn);

                    // 2. set the command object so it knows to execute a stored procedure
                    cmd.CommandType = CommandType.StoredProcedure;

                    // 3. add parameter to command, which will be passed to the stored procedure
                    cmd.Parameters.Add(new SqlParameter("@login", login));
                    cmd.Parameters.Add(new SqlParameter("@password", password));
                    cmd.Parameters.Add(new SqlParameter("@email", email));
                    cmd.Parameters.Add(new SqlParameter("@IP", ip));
                    cmd.Parameters.Add(new SqlParameter("@ComputerName", computerName));
                    cmd.Parameters.Add(new SqlParameter("@Role", "buyer"));


                    cmd.ExecuteNonQuery();
                }
            }

            ModelState.AddModelError("error", "Student Name already exists.");

            return(View("Login"));;
        }
        public IActionResult MyItems()
        {
            string id   = HttpContext.Session.GetString("Id");
            string role = HttpContext.Session.GetString("role");

            if (id == null || role != "seller")
            {
                return(RedirectToAction("login", "login"));
            }

            string Id = HttpContext.Session.GetString("Id");

            ViewBag.role = HttpContext.Session.GetString("role");
            ReviewsContext db = new ReviewsContext();

            ViewBag.list = db.SellersItems.ToList().Where(x => x.SellerId.ToString() == Id).Select(x => x).ToList();
            return(View());
        }
        public ActionResult FacebookCallback2(fbuser user)
        {
            ReviewsContext db = new ReviewsContext();

            user.id = iduserG;
            db.Users.Attach(user);

            foreach (var item in user.pagelist)
            {
                db.Pages.Attach(item);

                db.Entry(item).State = EntityState.Modified;
            }
            //user.id = 10213618568591702+"";


            db.Entry(user).State = EntityState.Modified;

            fuserG = user;
            db.SaveChanges();
            return(RedirectToAction("FacebookCallback3", "Home"));
        }
        public void ItemExsitsReturnsTrue()
        {
            var options = new DbContextOptionsBuilder <ReviewsContext>()
                          .UseInMemoryDatabase(databaseName: $"ItemsDatabase{Guid.NewGuid()}")
                          .Options;

            using (var context = new ReviewsContext(options))
            {
                context.Items.Add(new Item {
                    Name = "item", Reviews = new List <Review>()
                    {
                        new Review {
                            Feedback = "smth", Rating = 10
                        }
                    }
                });
                context.SaveChanges();
                IItemRepository repo   = new ItemRepository(context);
                var             result = repo.ItemExists("item");
                Assert.True(result);
            }
        }
        public async Task GetReviewByNameReturnsItem()
        {
            var options = new DbContextOptionsBuilder <ReviewsContext>()
                          .UseInMemoryDatabase(databaseName: $"ItemsDatabase{Guid.NewGuid()}")
                          .Options;

            using (var context = new ReviewsContext(options))
            {
                context.Items.Add(new Item {
                    Name = "item", Reviews = new List <Review>()
                    {
                        new Review {
                            Feedback = "smth", Rating = 10
                        }
                    }
                });
                context.SaveChanges();
                IItemRepository repo   = new ItemRepository(context);
                var             result = await repo.GetReviewsByItemNameAsync("item");

                Assert.Single(result);
            }
        }
        public async Task CreatesReviewForItem()
        {
            var options = new DbContextOptionsBuilder <ReviewsContext>()
                          .UseInMemoryDatabase(databaseName: $"ItemsDatabase{Guid.NewGuid()}")
                          .Options;

            using (var context = new ReviewsContext(options))
            {
                var review = new Review {
                    Feedback = "smth", Rating = 10
                };
                context.Items.Add(new Item {
                    Name = "item"
                });
                context.SaveChanges();
                IItemRepository repo = new ItemRepository(context);
                await repo.LeaveReviewAsync("item", review);

                var reviewFromItem = await repo.GetReviewsByItemNameAsync("item");

                Assert.Single(reviewFromItem);
            }
        }
 //private readonly IHttpClientFactory client;
 public FetchReviewsController(ReviewsContext _db)
 {
     db = _db;
     //client =_client;
 }
 public CategoryRepository(ReviewsContext db)
 {
     this.db = db;
 }
        public ActionResult Details(string id)
        {
            var            fb = new FacebookClient();
            ReviewsContext db = new ReviewsContext();
            var            pg = new page();

            pg = db.Pages.Find(id);

            Session["AccessToken"] = pg.access_token;
            fb.AccessToken         = pg.access_token;

            dynamic me1  = fb.Get("https://graph.facebook.com/v3.0/me/ratings");
            var     data = me1["data"].ToString();

            var mm = JsonConvert.DeserializeObject <List <Rating> >(data);

            //  var mm2 = JsonConvert.DeserializeObject<Rating>(data2);
            pg.ratinglist = mm;



            foreach (var item in pg.ratinglist)
            {
                string idReviewer   = "-1";
                string nameReviewer = "Not Assigned";
                if (item.reviewer == null)
                {
                    idReviewer = "-1";
                    Reviewer ii = new Reviewer();
                    ii.id         = "-1";
                    ii.name       = "Not Assigned";
                    item.reviewer = ii;
                }
                else
                {
                    idReviewer   = item.reviewer.id;
                    nameReviewer = item.reviewer.name;
                }

                var sqlR = db.Ratings.SqlQuery(
                    "select * from dbo.Ratings where convert(datetime,created_time) like convert(datetime,'" + item.created_time + "') and page_id like " + pg.id);
                if (sqlR.Count() == 0)
                {
                    var sqlR2 = db.Database.SqlQuery <Rating.Reviewer>(
                        "select * from dbo.Reviewer where id like " + item.reviewer.id);
                    if (sqlR2.Count() == 0)
                    {
                        db.Database.ExecuteSqlCommand("Insert into dbo.Reviewer values" +
                                                      "(@id,@name)",
                                                      new SqlParameter("id", item.reviewer.id),
                                                      new SqlParameter("name", item.reviewer.name)
                                                      );
                    }

                    db.Database.ExecuteSqlCommand("Insert into dbo.Ratings values" +
                                                  "(@time,@rating,@review_text,@reviewer_id,@page_id)",
                                                  //new SqlParameter("id",item.Id),
                                                  new SqlParameter("time", item.created_time),
                                                  new SqlParameter("rating", item.rating),
                                                  new SqlParameter("review_text", item.review_text),
                                                  new SqlParameter("reviewer_id", item.reviewer.id),
                                                  new SqlParameter("page_id", pg.id)
                                                  );



                    /* db.Database.ExecuteSqlCommand(
                     * "UPDATE dbo.Pages SET fbuser_id = " +  + "where id =" + item.id);*/
                }
            }
            return(View(mm));
        }
        public ActionResult FacebookCallback(string code)

        {
            var fb = new FacebookClient();

            dynamic result = fb.Post("oauth/access_token", new

            {
                client_id = "2253354658274452",

                client_secret = "35cf0272817393adb4c8d253f5dbe7ad",

                redirect_uri = RediredtUri.AbsoluteUri,

                code = code
            });

            var     accessToken = result.access_token;
            var     accesToken  = result.access_token;  //short lived acces Token
            dynamic result2     = fb.Get("https://graph.facebook.com/v3.0/oauth/access_token?grant_type=fb_exchange_token&client_id=2253354658274452&client_secret=35cf0272817393adb4c8d253f5dbe7ad&fb_exchange_token=" + accesToken);
            var     accesToken2 = result2.access_token; // long lived acces Token

            Session["AccessToken"] = accesToken2;
            fb.AccessToken         = accesToken2;
            dynamic me1    = fb.Get("me");
            string  iduser = me1.id;

            dynamic result3 = fb.Get(" https://graph.facebook.com/v3.0/me?fields=accounts&access_token" + accesToken2);

            var pages  = result3.accounts.data;
            int length = pages.Count;

            /* string id = string.Empty;
             * for (int i = 0; i < length; i++)
             * {
             *   if (pages[i] != null)
             *   { id = pages[i].id; }
             *
             * }
             *
             *
             * dynamic result4 = fb.Get(" https://graph.facebook.com/v3.0/" + id + "?fields=access_token&access_token=" + accesToken2);
             * var accesTokenPage = result4.access_token; //page acces Token aves expiration=jamais
             * TempData["Page Acces Token"] = accesTokenPage;
             * Session["AccessToken"] = accesTokenPage;
             * fb.AccessToken = accesTokenPage;
             *
             *
             *
             *
             *
             * dynamic mee = fb.Get("me?id");
             * dynamic me = fb.Get("me?id");
             *
             * string email = me.email;
             *
             * TempData["email"] = me;
             */



            var data = result3.accounts["data"].ToString();
            var mm   = JsonConvert.DeserializeObject <List <page> >(data);
            var f1   = new fbuser();

            f1.id       = iduser;
            f1.pagelist = mm;
            iduserG     = iduser;

            /****/
            ReviewsContext db = new ReviewsContext();

            int abc = 0;

            if (db.Users.Find(f1.id) == null)
            {
                db.Users.Add(f1);
                abc = 1;
            }


            foreach (var item in f1.pagelist)
            {
                if (db.Pages.Find(item.id) == null)
                {
                    db.Pages.Add(item);
                    db.SaveChanges();
                    db.Database.ExecuteSqlCommand(
                        "UPDATE dbo.Pages SET fbuser_id = " + iduser + "where id =" + item.id);
                }
            }



            db.SaveChanges();


            /*****/


            f1     = db.Users.Find(f1.id);
            fuserG = f1;

            if (abc == 1)
            {
                return(View(f1));
            }


            return(RedirectToAction("FacebookCallback3", "Home"));
            // return Redirect("~/Home/Index");
        }
        public async Task <IActionResult> PurchaseItemPost(string orderNum, string paypal, int itemId, int sellerId, List <IFormFile> files)
        {
            PurchasedItems currentPurchase = new PurchasedItems();

            currentPurchase.OrderNumber     = orderNum;
            currentPurchase.Ppemail         = paypal;
            currentPurchase.DateOfPurchased = DateTime.Now;
            currentPurchase.ItemId          = itemId;
            currentPurchase.SellerId        = sellerId;
            currentPurchase.BuyerId         = Int32.Parse(HttpContext.Session.GetString("Id"));
            currentPurchase.Status          = "pending";
            if (ModelState.IsValid)
            {
                foreach (var item in files)
                {
                    if (item.Length > 0)
                    {
                        using (var stream = new MemoryStream())
                        {
                            await item.CopyToAsync(stream);

                            currentPurchase.ScreenShoot = stream.ToArray();
                        }
                    }
                }

                _context.Add(currentPurchase);
                await _context.SaveChangesAsync();

                var itemToUpdate = _context.SellersItems.Where(x => x.Id == itemId).Select(x => x);

                int?HowmanyReviews = 0;

                foreach (var item in itemToUpdate)
                {
                    HowmanyReviews = item.ReviesNeeded - 1;
                }

                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();

                    //    1.create a command object identifying the stored procedure
                    SqlCommand cmd = new SqlCommand("ReviewsNeeded", conn);

                    //  2.set the command object so it knows to execute a stored procedure
                    cmd.CommandType = CommandType.StoredProcedure;

                    //  3.add parameter to command, which will be passed to the stored procedure
                    cmd.Parameters.Add(new SqlParameter("@number", HowmanyReviews));

                    cmd.Parameters.Add(new SqlParameter("@Id", itemId));


                    //   execute the command
                    cmd.ExecuteNonQuery();
                }
                ReviewsContext db = new ReviewsContext();

                UsersAccount seller   = db.UsersAccount.ToList().Where(x => x.Id == sellerId).FirstOrDefault();
                SellersItems soldItem = db.SellersItems.ToList().Where(x => x.Id == itemId).FirstOrDefault();


                MailMessage mail   = new MailMessage("*****@*****.**", seller.Email);
                SmtpClient  client = new SmtpClient();
                client.Port                  = 587;
                client.DeliveryMethod        = SmtpDeliveryMethod.Network;
                client.UseDefaultCredentials = true;
                client.Credentials           = new NetworkCredential("*****@*****.**", "Password1234!");
                client.EnableSsl             = true;
                client.Host                  = "smtp.gmail.com";
                mail.To.Add("add more peoples...");
                mail.Subject    = "You have Sold " + soldItem.ItemName + "!";
                mail.IsBodyHtml = true;

                mail.Body = "<h3>Hi " + seller.Email + "</h3><br>" +
                            "<br><p><b>You have sold :</b> " + soldItem.ItemName + "</p>" +
                            "<b>Order number : </b>" + orderNum +
                            "<br><p>we will let you know once review will be live.</p>" +
                            "<br><p>Thank you for using our service<p>" +
                            "<p><b>Reviews Trade Team.</b><p>";
                client.Send(mail);


                return(RedirectToAction("MyItems", "PurchasedItem"));
            }
            return(View());
        }
Example #20
0
 public HomeController(ReviewsContext context)
 {
     _context = context;
 }
Example #21
0
 public ItemRepository(ReviewsContext context)
 {
     _context = context;
 }
Example #22
0
 public ReviewController()
 {
     db = new ReviewsContext();
 }
 public UserReviewRepository(ReviewsContext db)
 {
     this.db = db;
 }